Datanode 源码剖析


DatanodeProtocol namenode = null;//与NN通信的ipc客户端类
FSDatasetInterface data = null;//管理一系列的数据块,所有和数据块相关的操作,都在FSDataset相关的类中进行处理。
DatanodeRegistration dnRegistration = null;//DN向NN的注册信息,包含名字(dn机名:dfs.datanode.address口),info的http端口,ipc的端口等

LinkedList<Block> receivedBlockList = new LinkedList<Block>();//已经接收的数据块,定期通知namenode接收完毕时,会移除
Map<Block, Block> ongoingRecovery = new HashMap<Block, Block>();//在其他DataNode的数据块副本损坏或丢失时会使用
LinkedList<String> delHints = new LinkedList<String>(); //需要删除的块,在定期通知nn后,会移除

Daemon dataXceiverServer = null;//用于读写数据的服务器,接收客户端和其他DN的请求,端口是dfs.datanode.address
Server ipcServer; //内部dn调用的ipc服务器,用于客户端,端口是dfs.datanode.ipc.address
long blockReportInterval;//数据块报告周期,默认是60*60秒,即一个小时
long lastBlockReport = 0;//记录最近的数据块报告时间,与blockReportInterval联合使用

long lastHeartbeat = 0;//记录最近和namenode的心跳时间
long heartBeatInterval;//和namenode的心跳周期,默认是3s
DataStorage storage = null;//DataStorage提供了format方法,用于创建DataNode上的Storage,还有如下操作:doUpgrade/doRollback/doFinalize。同时,利用StorageDirectory,DataStorage管理存储系统的状态。
HttpServer infoServer = null;//查看DataNode状态信息的http服务器,端口是dfs.datanode.http.address
DataBlockScanner blockScanner = null;//检测它所管理的所有Block数据块的一致性

Daemon blockScannerThread = null;
 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值