zoukankan      html  css  js  c++  java
  • Hadoop初识

    Hadoop的构造模块

    NameNode(名字节点)

    DataNode(数据节点)

    Secondary NameNode(次名字节点)

    JobTracker(作业跟踪节点)

    TaskTracker(任务跟踪节点)

    NameNode:

    Hadoop在分布式计算和分布式存储中都采用了主/从(master/slave)结构。分布式存储系统被称为Hadoop文件系统,或简称HDFS。NameNode位于HDFS的主端,它指导丛端的DataNode执行底层的I/O任务。NameNode跟踪文件如何被分割成文件块,而这些块又被那些节点存储,以及分布式文件系统的整体运行状态是否正常。

    运行NameNode消耗大量的内存和I/O资源。因此,为了减轻机器的负载,驻留NameNode的服务器通常不会存储用户数据或者执行MapReduce程序的计算任务。这意味着NameNode服务器不会同时是DataNode或者TaskTracker。

    DataNode:

    每个集群上的从节点都会驻留一个DataNode守护进程,来执行分布式文件系统的繁重工作——将HDFS数据块读取或者写入到本地文件系统的实际文件中。当希望对HDFS文件进行读写时,文件被分割为多个块,由NameNode告知客户端每个数据驻留在那个DataNode。客户端直接与DataNode守护进程通信,来处理与数据块相对应的本地文件。而后,DataNode会与其他DataNode进行通信,复制这些数据块以实现冗余。

    Secondary NameNode:

    Secondary NameNode(SNN)是一个用于监测HDFS集群状态的辅助守护进程。像NameNode一样每个集群有一个SNN,它通常独占一台服务器,该服务器不会运行其他的DataNode或TaskTracker守护进程。SNN与NameNode的不同在于它不接收或记录任何HDFS的实时变化。相反它与NameNode通信,根据集群所配置的时间间隔获取HDFS元数据的快照。

    JobTarcker:

    JobTracker守护进程是应用程和Hadoop之间的纽带。一旦提交代码到集群上,JobTracker就会确定执行计划,包括确定处理哪些文件,为不同的任务分配节点以及监控所有任务的运行。如果任务执行失败,JobTracker将自动重启任务,但所分配的节点可能会不同,同时受预定义的重试次数限制。每个Hadoop只有一个JobTracker守护进程。它通常运行在集群的主节点上。

    TaskTracker:

    与存储进程一样,计算的守护进程也遵从主/从架构:JobTracker作为主节点,监测MapReduce作业的整个执行过程,同时,TaskTracker管理各个任务在每个从节点的执行情况。每个TaskTracker负责执行有JobTracker分配的单项任务。虽然每个从节点只有一个TaskTracker,但每个TaskTracker可以生成多个JVM来并行地处理许多map或reduce任务。

    TaskTracker的一个职责是持续不间断地与JobTracker通信。如果JobTracker在指定时间内没有收到来自TaskTracker的“心跳”,它会假定TaskTracker已经崩溃,进而重新提交相应的任务到集群的其他节点中。

    image

    上图:JobTracker和TaskTracker的交互,当客户调用JobTracker来启动一个数据处理作业时,JobTracker会将工作切分,并分配不同的map和reduce任务到集群中的每个TaskTracker上

    image

    上图:典型的Hadoop集群拓扑图

  • 相关阅读:
    Android应用开发之避免内存泄露
    史上最经典的数据库面试题之二
    某大型银行深化系统之二十一:Log4j执行性能
    ruby支持批量数组的定义
    为VIM提供python代码提示功能
    使用win7登陆远程机器时自动保存密码
    安装Beanstalk
    在linux下安装或者卸载nginx
    python的数据类型
    使Ruby自动定位查找本地路径
  • 原文地址:https://www.cnblogs.com/ruanzhao/p/3063861.html
Copyright © 2011-2022 走看看