本文主要是介绍hadoop心跳机制(转),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
转自:https://blog.csdn.net/lb812913059/article/details/78713523
主节点和从节点之间的通信是通过心跳机制(心跳实际上是一个RPC函数)实现的
所谓“心跳”是一种形象化描述,指的是持续的按照一定频率在运行,类似于心脏在永无休止的跳动。
心跳机制:
1) master启动的时候,会开启一个RPC server
2) slave启动时进行连接master,并每隔3秒钟主动向master发送一个“心跳”
将自己的状态信息告诉master,然后master通过这个心跳的返回值,向slave节点传达指令。
HDFS:
DataNode----->NameNode 3s 本地磁盘上block块的使用情况 1h block的report
当长时间(10分钟)没有发送心跳时,NameNode就判断DataNode的连接已经中断,不能继续工作了
就把他定性为”dead node”。NameNode会检查dead node中的副本数据,复制到其他的data node中。
YARN:
NodeManager----->ResourceManager 3s 本节点上cpu 内存.....
ApplicationMaster----->ResourceManager 申请资源,返还资源 ?????????ApplicationMaster目前还没有遇到
MapReduce:
TaskTracker----->JobTracker 汇报节点和任务运行状态信息
1、判断Tasktracker是否活着
2、及时让Jobtracker获取各个节点上的资源使用情况和任务运行状态
3、为Tasktracker分配任务
注意:
Jobtracker与Tasktracker之间采用了Pull(拉)而不是Push(推)模型 (由client进行推送)
Jobtracker不会主动向Tasktracker发送任何信息,而是由Tasktracker主动通过心跳领取属于自己的信息
Jobtracker只能通过心跳应答的形式为各个Tasktracker分配任务
Tasktracker周期性的调用RPC函数heartbeat向Jobtracker汇报信息和领取任务
这篇关于hadoop心跳机制(转)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!