zoukankan      html  css  js  c++  java
  • hadoop架构

    HADOOP中可以分为两个大的模块,存储模块和计算模块。HDFS作为存储模块,JobTracker,TaskTracker构成计算模块。
     
    1.HADOOP的文件是以HDFS格式存储的
     
    HDFS是一种文件系统,专为大规模分布式数据处理而设计的,我们可以把一个很大的数据集,在HDFS中存储为单个文件。HDFS中采取的是master/slave的结构,其中master我们称为NameNode,slave我们称为DataNode。HDFS中包括以下三个构件,NameNode,DataNode,Secondary NameNode.
     
    NameNode:NameNode位于HDFS的主端,它指导从端的DataNode执行底层的I/O任务,它跟中文件如何被分割成文件块,而这些块又被哪些节点存储,以及分布式文件系统的整体运行状态是否正常。
     
    DataNode:NameNode告知客户端每个数据块驻留在哪个DataNode,客户端直接与DataNode守护进行通讯,来处理与数据块相对应的本地本件,而后,DataNode会与其他DataNode进行通讯,复制这些数据块以实现冗余。
     
    Secondary NameNode: Secondary NameNode是一个用来监控HDFS状态的辅助后台程序。就想NameNode一样,每个集群都有一个Secondary NameNode,并且部署在一个单独的服务器上。Secondary NameNode不同于NameNode,它不接受或者记录任何实时的数据变化,但是,它会与NameNode进行通信,以便定期地保存HDFS元数据的快照。由于NameNode是单点的,通过Secondary NameNode的快照功能,可以将NameNode的宕机时间和数据损失降低到最小。同时,如果NameNode发生问题,Secondary NameNode可以及时地作为备用NameNode使用。
     

    2.计算模块由JobTracker,TaskTracker组成:

     

    JobTracker:JobTracker后台程序用来连接应用程序与Hadoop。用户代码提交到集群以后,由JobTracker决定哪个文件将被处理,并且为不同的task分配节点。同时,它还监控所有的task,一旦某个task失败了,JobTracker就会自动重新开启这个task,在大多数情况下这个task会被放在不用的节点上。每个Hadoop集群只有一个JobTracker,一般运行在集群的Master节点上。

    TaskTracker:TaskTracker与负责存储数据的DataNode相结合,其处理结构上也遵循主/从架构。JobTracker位于主节点,统领MapReduce工作;而TaskTrackers位于从节点,独立管理各自的task。每个TaskTracker负责独立执行具体的task,而JobTracker负责分配task。虽然每个从节点仅有一个唯一的一个TaskTracker,但是每个TaskTracker可以产生多个java虚拟机(JVM),用于并行处理多个map以及reduce任务。TaskTracker的一个重要职责就是与JobTracker交互。如果JobTracker无法准时地获取TaskTracker提交的信息,JobTracker就判定TaskTracker已经崩溃,并将任务分配给其他节点处理。

     
  • 相关阅读:
    【POJ 2406】Power Strings(KMP循环节)
    【HDU 3746】Simpsons’ Hidden Talents(KMP求循环节)
    【CodeForces 672B】Different is Good
    【UVALive 4642】Malfatti Circles(圆,二分)
    【POJ 1269】判断两直线相交
    【POJ 2503】Babelfish(字符串)
    ZOJ 2676 Network Wars[01分数规划]
    A1261. happiness(吴确)[二元组暴力最小割建模]
    poj3469 Dual Core CPU
    2154: Crash的数字表格
  • 原文地址:https://www.cnblogs.com/niurougan/p/4324651.html
Copyright © 2011-2022 走看看