首页 > 技术文章 > Hadoop的架构

lianyl 2014-09-22 14:42 原文

Hadoop的架构:

 

 

Hadoop MapReduce采用Master/Slave结构。

一、  Master:是整个集群的唯一的全局管理者,功能包括:作业管理、状态监控和任务调度等,即MapReduce中的JobTracker。(NameNode,secondary NameNode,Jobtracker,浏览器,其他的Hadoop工具)

二、  Slave:负责任务的执行和任务状态的回报,即MapReduce中的TaskTracker。(TaskTracker,DataNode)

三、  Master不是唯一的

Namenode:

一、  管理文件系统文件(HDFS)的元数据信息(包括文件名称、大小、位置、属性、创建时间、修改时间等等),HDFS的守护程序

二、  维护文件到块的对应关系和块到节点的对应关系,记录文件如何分割成数据块的,以及数据块存储在哪个节点

三、  维护用户对文件的操作信息(文件的增删改查),对内存I/O进行集中管理

四、  单节点发生故障会导致集群崩溃

Secondary Namenode

是用来保存namenode中对HDFS metadata的信息的备份,并减少namenode重启的时间

一、  监控HDFS状态的辅助后台程序

二、  每个集群都有一个

三、  与NameNode进行通讯定期保存HDFS的元数据快照

四、  当NameNode发生故障时可作为NameNode的备份程序使用

JobTracker

一、  用于处理作业(用户提交的代码)的后台程序

二、  决定由那些任务参与处理,然后切割task(任务)并分配节点

三、  监控task,重启失败的的task(于不同节点)

四、  每个集群只有唯一一个JobTracker,位于Master节点

TaskTracker

一、  位于Slave节点上,与DataNode结合(代码与数据一起的原则)

二、  管理各自节点上的task(个节点的任务由Jobtracker分配)

三、  每个节点只有一个TaskTracker,但是一个TaskTracker可以启动多个JVM,用于并行执行map或reduce任务

四、  与JobTracker交互(TaskTracker是JobTracker和Task之间的桥梁:一方面,从JobTracker接收并执行各种命令:运行任务、提交任务、杀死任务等;另一方面,将本地节点上各个任务的状态通过心跳周期性汇报给JobTracker。TaskTracker与JobTracker和Task之间采用了RPC协议进行通信。

1.汇报心跳:Tracker周期性将所有节点上各种信息通过心跳机制汇报给JobTracker。这些信息包括两部分:

*机器级别信息:节点健康情况、资源使用情况等。

*任务级别信息:任务执行进度、任务运行状态等。

2.执行命令:JobTracker会给TaskTracker下达各种命令,主要包括:启动任务(LaunchTaskAction)、提交任务(CommitTaskAction)、杀死任务(KillTaskAction)、杀死作业(KillJobAction)和重新初始化(TaskTrackerReinitAction)。)

DataNode

一、  每个从服务器都运行一个

二、  负责把HDFS数据块读写到本地文件系统

Hadoop:思想

 

推荐阅读