读书人

Hadoop DataNode总结

发布时间: 2013-08-10 21:14:06 作者: rapoo

Hadoop DataNode小结

?

在分析DataNode时,?因为DataNode上保存的是数据块,?因此DataNode主要是对数据块进行操作.?

**A.?DataNode的主要工作流程:**??

1.?客户端和DataNode的通信:?客户端向DataNode的`数据块读写`,?采用TCP/IP流接口(DataXceiver)进行数据传输??

2.?客户端在检测到DataNode异常,?主动发起的`数据块恢复`,?客户端会通过ClientDatanodeProtocol接口采用RPC调用的方式和DataNode通信.??

3.?`数据块替换和拷贝`,?由负载均衡器Balancer发起的,?是发生在DataNode之间.?也是通过DataXceiver进行数据传输??

4.?DataNode在启动后会向NameNode分别完成:?`握手,?注册,?心跳,?块报告`.??

5.?NameNode根据DataNode的块报告和心跳,?会返回给DataNode`指令`.?通过这种方式NameNode间接地和DataNode进行通信.??

??实际上NameNode作为Server端,?是不会主动去联系DataNode的,?只有作为客户端的DataNode才会去联系NameNode.??

??DataNode在接收到NameNode的指令信息,?被要求去做:?重新向NameNode注册,?数据块传输,?恢复等.??

6.?NameNode检测到数据块的副本个数不足.?要求DN执行`数据块传输`(DNA_TRANSFERBLOCK),?DataNode使用DataTransfer也是基于DataXceiver流接口.???

7.?NameNode发起的数据块恢复(DNA_RECOVERBLOCK),?是检测到客户端/租约错误,?恢复策略是选取参与到恢复过程中的数据块的最小长度.??

8.?不管是客户端错误会被NN返回数据块恢复命令给DN执行恢复操作,?还是DN错误由客户端主动触发的数据块恢复操作.?都会使用到??

??InterdatanodeProtocol的两个数据块恢复方法(startBlockRecovery和updateBlock).??

??因为数据块恢复实际上是在DN之间根据恢复策略恢复到数据块正常的状态.?而且恢复时不像写数据没有数据来源.?所以是在DN之间进行通信.???

**B.?从DataNode的功能来看:**??

1.?DataNode实现的两个接口ClientDatanodeProtocol和InterDatanodeProtocol都用于数据块恢复.??

2.?数据块的其他操作使用TCP/IP流式接口来完成:?DataXceiver(读写,?替换,?复制)和DataTransfer(传输).??

**C.?从DataNode的通信来看:**??

1.?客户端可以向DataNode发起读写数据块请求,?主动发起数据块恢复.??

2.?DataNode向NameNode握手,?注册,?心跳,?块报告.?并接收NameNode的指令.

?


Hadoop DataNode总结
?

读书人网 >互联网

热点推荐