HDFS --- DataNode startup service initialize

Overview

DataNode HDFS中存储数据Block的地方, 每个HDFS的布署可以有一个或多个Datanode, DataNode是一个逻辑节点,一台物理机器可以布署一个DataNode节点,也可以布署多个。 每个Datanode只与一个NameNode通信,同时Datanode也可与与其它的Datanode或客户端直接通信,与其它的Datanode通信主要是做数据的Replication, 与在客户端通信主要是为客户端提供数据服务。DataNode维护一张表,Block -->Stream of Bytes( of  BLOCK_SIZE or less),  这张表存楮在本地存储介质上, DataNode在启动的时以及后续的操作过程中会向Namenode报告 这张表中的信息,Namenode不可以直接向Datanode发送操作信息,所以 Datanode一旦启动,会一直向NameNode 发送Heartbeat消息,并根据Namenode的响应执行相应的操作。

DataNode主要启动了以下几个服务线程:

DataXceiver:这是一个TCP Socket server 线程,用来接收客户端的对数据读写的请求;

IndoServer:这是一个HTTP Server,用来 查看当前DataNode的状态 信息;

IpcServer:  实现了InterDatanodeProtocol 和 ClientDatanodeProtocol 的一个RPC Server。


DataNode 初始化

Datanode初始化主要完成以下几个任务:
  • 读取DataNode的存储目录信息;
  • 获取本地系统的内存信息;
  • 初始化DataStorage 对像;
  • 启动DataXceiver服务器;
  • 启动infoServer 服务器;
  • 启动IPC服务器;
  • 初始化BlockPoolManager对像;
  • 初始化ReadaheadPool信息。

启动DataXceiver 服务器


该服务主要是用来处理对于Block的读写操作,为了实现高效,在这里使用流方式读写文件系统。

启动IPC服务


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值