HDFS (二) DataNode

DataNode:

DirectoryScanner:

主要作用:block数据路径扫描

BlockScanner:

主要作用:block文件扫描,文件内容crc校验

 

BlockPoolManager:

成员:

startAll():启动所有BPServiceActor线程。

List<BPOfferService> offerServices:保存所有BPOfferService對象,每個對象對應一個BlockPoolId(namespace),每個BlockPoolId對應一個Active NameData服務。

BPOfferService:

成员:

BPServiceActor bpServiceToActive: 一个namespace只有一个Active的NameNode,此BPServiceActor 与对应的active NameNode通讯

List<BPServiceActor> bpServices:保存一个BPServiceActor与Active NameNode和多个standby NameNode。

BPServiceActor:

主要作用:保持和對應NameNode之間的心跳。

成員:

DatanodeProtocolClientSideTranslatorPB:與NameNode通信的RPC實現。

connectToNNAndHandshake():建立與NameNode的鏈接

Scheduler:用來調度心跳和blockReport的發送,heartbeatIntervalMs(心跳間隔),lifelineIntervalMs(),blockReportIntervalMs(block報告間隔),outliersReportIntervalMs();

blockReport():向對應BlockPoolId 活躍的NameNode發送一串block報文。并返回NameNode給DataNode的命令.  調用棧run->offerService->blockReport。發送内容StorageBlockReport

sendHeartBeat():向對應BlockPoolId 活躍的NameNode發送心跳包。 調用棧run->offerService->sendHeartBeat().  發送的心跳内容StorageReport。

StorageReport{

private final DatanodeStorage storage;

private final boolean failed;

private final long capacity;

private final long dfsUsed;

private final long nonDfsUsed;

private final long remaining;

private final long blockPoolUsed;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值