本章主要描述NameNode如何与DataNode进行配合工作
心跳机制.png
工作原理
- NamNode(Master)启动的时候,直接启动一个ipc server进行服务监听。主要负责管理数据库的复制,它周期性地从集群中的每个Datanode接收心跳信号和块状态报告(包含了一个该 Datanode上所有数据块的列表),收到信号,说明该DataNode节点工作正常
- DataNode(Slave)启动的时候,向NameNode注册,通过后,周期性(1小时)的向 NameNode上报所有的块的列表以及每3秒向NamNode发一次心跳请求。
- NameNode会通过这个心跳返回值,对DataNode 进行命令传达(如复制块数据到另一台机器,或删除某个数据块),如果NameNode超过10分钟没有收到某个DataNode 的心跳,则认为该节点不可用
补充一点
集群刚开始启动时,会先进入到安全模式(只读模式),如果DataNode上报的block个数达到了元数据记录的block个数的0.999倍(dfs.safemode.threshold.pct)才可以离开安全模式
这里就是用到心跳机制进行状态汇报