Mapreduce计算框架涉及的技术(3)--以多视图方式看mapreduce

时间:2021-02-23 18:23:13

Mapreduce计算框架涉及的技术(3)--以多视图方式看mapreduce


图 1 节点复用型MapReduce集群(上图)和节点分离型MapReduce集群(下图)

一 两种常见的MapReduce集群架构

    图1,是两种常见的MapReduce集群,前一种可以更节点复用型集群的优点是(1)节约资源(2)提供更高的性能,调度器会根据数据的分布进行任务调度,尽量满足任务和对应的数据在同一物理节点,节点内的数据传输会比节点间的数据传输高。

    后一种集群架构的优势是(1)维护方便,分布式存储系统与计算集群分离,各自维护(2)安全性高,采用集中式的存储在多租户的环境下可以较好的进行访问控制。

二 MapReduce集群中节点分类的问题

    阅读英文文献或资料的过程中,我们总是会遇到以下这样一些概念,如master,slave,datanode,namenode,jobtrackerandtasktracker.  我们究竟该如何更好的理解这些基础性的概念,在这里很有必要采用多视图的方法。

    在同一个集群内,对节点的分类可以遵循以下三个主要方式:

    A 按并行计算框架(MapReduce)分类,节点包含obtracker and tasktracker.

    B 按分布式文件系统(HDFS)分类,节点包含datanode and namenode

        B 按节点所处的角色分类,负责任务调度的master和负责执行任务(slave)

    Hadoop中新采用了新MapReduce框架Yarn,其对jobtracker节点的功能进行了进一步划分。


三 MapReduce程序运行过程中涉及的主要进程

   要想深入了解mapreduce工作机制,就必须很清楚的了解其工作过程中涉及的全部组件(进程),以图中复用式架构为例,

   A 在slave计算节点上存在 (1)datanode 进程,HDFS在数据节点的和守护进程;(2)tasktracker进程,MapReduce框架在计算节点的守护进程;(3)Child进程,具体执行任务的进程,每个Map和Reduce 任务均对应一个这样的进程。

   B 在master计算节点上存在 (1)namenode 进程,HDFS元数据服务器上的守护进程;(2)secondarynamenode HDFS 备份元数据服务器上的守护进程;(3)jobtracker进程,MapReduce框架在任务调度节点上的的守护进程;

   C 提交任务的Client进程,其主要作用是提交并控制工作任务,查看任务进度。

   另外,我们必须更进一步的意识到更细粒度的划分,功能模块。单个进程往往以多线程方式实现,单个或多个线程对应一个功能模块,例如位于TaskTracker内部的http服务器jetty,reduce任务通过http协议与jetty交互获取map输出数据。