您好,欢迎访问代理记账网站
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

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;
}

 


分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进