HDFS源码阅读(2)--DataNode实现
来源:互联网 发布:linux进入编辑模式 编辑:程序博客网 时间:2024/05/27 06:12
DatanodeID
DatanodeID用于唯一标识一个Datanode节点
DatanodeInfo
DatanodeInfo存储了一个Datanode的相关状态信息,主要用于Datanode和client之间的相互通信
BlockSender
BlockSender用于向接收端发送数据。
数据的大小关系:Block->Packet->Chunk
BlockReceiver
BlockReceiver是Datanode节点上的数据块接收器
DataBlockScanner
DataBlockScanner用于保证Datanode上数据块的完整性,定期扫描Datanode磁盘上存储的所有块,防止造成数据损坏
FSDataset
FSDataset主要用于管理Datanode上的Block,所有与Block相关的操作都在FSDataset相关的类中处理。
Block对应着两个文件,一个存数据,一个存元数据信息,如blk_2356和blk_2356.meta
Datanode上存储结构的大小依次是卷FSVolume,目录FSDir,文件Block和元数据
FSVolume
FSVolume类对应着是某一个Storage。数据块文件,detach文件和临时文件都是通过FSVolume来管理
FSVolumeSet
FSVolumeSet对所有的FSVolume对象进行管理,实际就是对所有的存储路径进行管理,主要为Datanode进程提供存储数据块选择一个存储路径(分区),就是为该数据块创建一个对应的本地磁盘文件,同时也负责统计它的存储空间的状态信息和收集所有的数据块信息
DataXceiverServer
DataXceiverServer用于创建一个ServerSocket来接受请求,每接受一个连接,就创建一个DataXceiver用于处理请求,并将Socket存在一个名为childSockets的Map中。
此外还创建一个BlockBalanceThrottler对象用来控制DataXceiver的数目以及流量均衡。
DataXceiver
在Datanode中,块数据的接收和发送主要是通过tcp连接,而不是rpc
Datanode
Datanode实现了InterDatanodeProtocol接口用来和Client交互,实现ClientDatanodeProtocol用来和Datanode交互
- HDFS源码阅读(2)--DataNode实现
- HDFS datanode源码分析
- HDFS源码阅读(1)--NameNode实现
- HDFS DataNode 设计实现解析
- 【2-3】HDFS之DataNode
- HDFS-DataNode
- HDFS源码分析心跳汇报之DataNode注册
- Hadoop2源码分析-HDFS datanode核心模块分析
- 《Hadoop 2.X HDFS源码剖析》读书笔记(DataNode)
- HDFS------datanode的初始化
- HDFS------datanode的初始化
- HDFS:NameNode、DataNode、SecondaryNameNode
- HDFS:NameNode、DataNode、SecondaryNameNode
- hdfs datanode 启动失败
- hdfs集群启动——datanode注册(2)
- HDFS源码解析(0)-----源码阅读技巧
- HDFS源码分析(5):datanode数据块的读与写DataXceiver
- Hadoop-2.4.1源码分析--HDFS HeartBeat(心跳检测)之DataNode端数据块增量汇报
- 浅谈checkbox的一些操作
- mysql开远程
- 解密回声消除技术之二(应用篇)
- paip.提升性能--多核编程中的java .net php c++最佳实践 v2.0 cah
- GIT和SVN之间的五个基本区别
- HDFS源码阅读(2)--DataNode实现
- 别把自己太当回事 - 职场须知
- js控制文本框只能输入中文、英文、数字与指定特殊符号.
- Improved logging in Objective-C
- 关于emca创建EM时的DBSNMP用户与SYSMAN用户问题
- JavaScript利用ZeroClipboard 复制到剪贴板。
- Android之高仿墨迹天气桌面组件(AppWidgetProvider) .
- android混淆
- C++为什么读不出这个游戏