MapReduce, 大数据处理的基石 ================================= :keywords: hadoop MapReduce 为什么我们需要 MapReduce ? ------------------------------- | 每当我看见长城时,总不免心生感慨,这得需要多少人多少年才能完成这么大的工程啊! | 然而,长城建造伊始,并不是一开始就连起来的,而是一小段一小段的拼接而成。 | 这种分而治之的思想,在我们学习归并排序的时候,就应熟稔于心。 | 同样的,在每一刻,对互联网企业(现在还有什么面向终端消费者的企业没有搭上互联网呢?)来说,客户都会产生大量的数据。而且是非结构化的,不是一般 Excel 小能手就能解决的。 | 这时候,我们就需要一个并行的,批处理的数据处理。 | MapReduce 应运而生。 Hadoop 的 MapReduce 是怎么 Work 的 ? --------------------------------------- | 上篇说到,Hdfs 是大数据的基石(存储)。而 MapReduce 则是运行其上的灵魂,是从无序中建造有序。 | 那 Hadoop 是怎么完成这一任务的? | 欢迎来到大数据汉堡结构的倒数第二层,数据处理层。 | 让我们一起看看 Yarn (Yet Another Resource Negotiator) 的齿轮是如何运转的吧。 | Yarn 的设计理念,在于把资源管理和任务管理分开。相当于一个公司,有管理部门和业务部门。 | 所以业务部门是任劳任怨的,管理部门有分配不公的可能性。 | Yarn 资源管理节点是 Resource Manager, 业务管理节点是 NodeManager 。 | 举个例子来说明 Yarn 是如何工作的吧。 | 假如,现在股东(公司在资本市场都是为股东工作的),要求公司提高业绩。这个时候管理(Resource Manager)部门,也就是一群拍脑袋的家伙,算出需要多少资源,分配给了业务部门。 | 业务管理部门(Node Manager)也是有小老板的,小老板立刻招了几个实习生成立了项目组(Application Master) 。 | 项目组再规划出完成这件事,需要先切分成几个小任务(Task),分配给几个临时工。等这个项目完成了。项目组解散了。连五险一金都不用交,真是万事大吉。 | 来看个高清大图吧: .. image:: /_static/yarn_archi.png :height: 450px :width: 450px Yarn 启动 --------------------- | 鉴于俺的电脑内存有限,没有闲钱加大我的内存,加大带宽。只能把 3 台虚拟机 改成 2 台了。 | Yarn 有两个节点,分别是 `Resource Manager`: 10.10.10.1 , `Node Manager`: 10.10.10.2 。 | Resource Manager 节点用默认配置,不需要改东西。 | Node Manager 需要 配置 yarn-site.xml 和 mapred-site.xml 。 **Node Manager**:: yarn-site.xml (需要指定一下 resource manager 的主机) yarn.resourcemanager.hostname hadoop-1 mapred-site.xml (只需要设置调度框架为 yarn) mapreduce.framework.name yarn | 在 hadoop-1 节点启动 Resource Manager : `yarn resourcemanager` | 在 hadoop-2 节点启动 Node Manager : `yarn nodemanager` 现在来运行你的第一个数字数的程序吧! --------------------------------------- | 代码在 https://hadoop.apache.org/docs/r2.8.0/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html **Reference**: Hadoop:The Definitive Guide, 4th Edition .. feed-entry:: :author: yowenter :date: 2017-05-05