Hadoop 的守五个护进程

2018-01-30 10:41:28来源:http://zhuxin.tech/2018/01/29/Hadoop 的守五个护进程/作者:Batman's Wayne House人点击

分享
第七城市th7cn


Hadoop 在正常启动后有五个重要的 JVM 进程,分别是NameNode
,SecondaryNameNode
,DataNode
,JobTracker
,TaskTracker
。这五个进程肩负着 HDFS 在存储和计算上的各项任务。


NameNode

NameNode 是集群中的管理节点,只有一个。管理 HDFS 文件系统的命名空间,维护着文件系统树及整棵树内所有文件和目录。也记录着每个文件中各个块所在的数据节点信息。


SecondaryNameNode

它不是 NameNode 的冗余守护进程,而是提供周期检查点和清理任务。



出于对可扩展性和容错性等考虑,我们一般将SecondaryNameNode
运行在一台非NameNode
的机器上。


DataNode

DataNode 是文件系统中的工作节点,可以有多个。它们根据需要存储并检索数据块(受客户端或者 NameNode 调度),并且定期向 NameNode 发送它们所存储的块的列表。


应用程序访问文件系统时,先由 NameNode 提供数据块的位置,然后程序去访问对应的 DataNode。


JobTracker

每个集群有一个 jobtracker,它负责调度 datanode 上的工作。每个 datanode 有一个 tasktracker,它们执行实际工作。jobtracker 和 tasktracker 采用主-从形式,jobtracker 跨 datanode 分发工作,而 tasktracker 执行任务。jobtracker 还检查请求的工作,如果一个 datanode 由于某种原因失败,jobtracker 会重新调度以前的任务。


1)应用程序将 Job 交给 JobTracker;


2)JobTracker 通知 NameNode,让其确定数据块的位置;


3)JobTracker 确定 TaskTacker 节点,将 work 提交给确定好的 TaskTracker;


4)TaskTracker 一直被 JobTracker 监控着,如果不按时返回心跳信号或者主动返回失败,则认为是执行失败,将会转向其他 TaskTracker;


5)当 work 顺利执行完毕,JobTracker 更新状态;


6)应用程序可以轮询 JobTracker 的状态。


TaskTracker


task 指的是Map/Reduce/Shuffle
操作。


每个 TaskTracker 都有一个 slot 集来标记这个 TaskTracker 所能接受的 task 的个数。当 JobTracker 要分配一个 task 时,会在 DataNode 的就近节点中找一个空的slot,把 task 分配给对应的 TaskTracker。当 TaskTracker 要处理一个 task 时,会产生一个新的进程来执行它。在执行期间不断向 JobTracker 发回心跳信号,执行完毕返回结果。


第七城市th7cn

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台