Hadoop 2.X HDFS源码剖析

内容简介:

《Hadoop 2.X HDFS源码剖析》以Hadoop 2.6.0源码为基础,深入剖析了HDFS 2.X中各个模块的实现细节,包括RPC框架实现、Namenode实现、Datanode实现以及HDFS客户端实现等。《Hadoop 2.X HDFS源码剖析》一共有5章,其中第1章从总体上介绍了HDFS的组件、概念以及典型的流程,同时详细介绍了HDFS各个组件间RPC接口的定义。第2章介绍了Hadoop RPC框架的实现,Hadoop RPC是HDFS各个组件间通信所依赖的底层框架,可以理解为HDFS的神经系统。第3~5章分别介绍了Namenode、Datanode以及HDFS客户端这三个组件的实现细节,同时穿插介绍了HDFS 2.X的新特性,例如Namenode HA、Federation Namenode等。

阅读《Hadoop 2.X HDFS源码剖析》可以帮助读者从架构设计与源码实现角度了解HDFS 2.X,同时还能学习HDFS 2.X框架中优秀的设计思想、设计模式、Java语言技巧以及编程规范等。这些对于读者全面提高自己的技术水平有很大的帮助。

资源目录:

第1章 HDFS 1

1.1 HDFS概述 1

1.1.1 HDFS体系结构 1

1.1.2 HDFS基本概念 2

1.2 HDFS通信协议 4

1.2.1 Hadoop RPC接口 4

1.2.2 流式接口 20

1.3 HDFS主要流程 22

1.3.1 HDFS客户端读流程 22

1.3.2 HDFS客户端写流程 24

1.3.3 HDFS客户端追加写流程 25

1.3.4 Datanode启动、心跳以及执行名字节点指令流程 26

1.3.5 HA切换流程 27

第2章 Hadoop RPC 29

2.1 概述 29

2.1.1 RPC框架概述 29

2.1.2 Hadoop RPC框架概述 30

2.2 Hadoop RPC的使用 36

2.2.1 Hadoop RPC使用概述 36

2.2.2 定义RPC协议 40

2.2.3 客户端获取Proxy对象 45

2.2.4 服务器获取Server对象 54

2.3 Hadoop RPC实现 63

2.3.1 RPC类实现 63

2.3.2 Client类实现 64

2.3.3 Server类实现 76

第3章 Namenode(名字节点) 88

3.1 文件系统目录树 88

3.1.1 INode相关类 89

3.1.2 Feature相关类 102

3.1.3 FSEditLog类 117

3.1.4 FSImage类 138

3.1.5 FSDirectory类 158

3.2 数据块管理 162

3.2.1 Block、Replica、BlocksMap 162

3.2.2 数据块副本状态 167

3.2.3 BlockManager类(done) 177

3.3 数据节点管理 211

3.3.1 DatanodeDescriptor 212

3.3.2 DatanodeStorageInfo 214

3.3.3 DatanodeManager 217

3.4 租约管理 233

3.4.1 LeaseManager.Lease 233

3.4.2 LeaseManager 234

3.5 缓存管理 246

3.5.1 缓存概念 247

3.5.2 缓存管理命令 247

3.5.3 HDFS集中式缓存架构 247

3.5.4 CacheManager类实现 248

3.5.5 CacheReplicationMonitor 250

3.6 ClientProtocol实现 251

3.6.1 创建文件 251

3.6.2 追加写文件 254

3.6.3 创建新的数据块 257

3.6.4 放弃数据块 265

3.6.5 关闭文件 266

3.7 Namenode的启动和停止 268

3.7.1 安全模式 268

3.7.2 HDFS High Availability 276

3.7.3 名字节点的启动 301

3.7.4 名字节点的停止 306

第4章 Datanode(数据节点) 307

4.1 Datanode逻辑结构 307

4.1.1 HDFS 1.X架构 307

4.1.2 HDFS Federation 308

4.1.3 Datanode逻辑结构 310

4.2 Datanode存储 312

4.2.1 Datanode升级机制 312

4.2.2 Datanode磁盘存储结构 315

4.2.3 DataStorage实现 317

4.3 文件系统数据集 334

4.3.1 Datanode上数据块副本的状态 335

4.3.2 BlockPoolSlice实现 335

4.3.3 FsVolumeImpl实现 342

4.3.4 FsVolumeList实现 345

4.3.5 FsDatasetImpl实现 348

4.4 BlockPoolManager 375

4.4.1 BPServiceActor实现 376

4.4.2 BPOfferService实现 389

4.4.3 BlockPoolManager实现 396

4.5 流式接口 398

4.5.1 DataTransferProtocol定义 398

4.5.2 Sender和Receiver 399

4.5.3 DataXceiverServer 403

4.5.4 DataXceiver 406

4.5.5 读数据 408

4.5.6 写数据(done) 423

4.5.7 数据块替换、数据块拷贝和读数据块校验 437

4.5.8 短路读操作 437

4.6 数据块扫描器 437

4.6.1 DataBlockScanner实现 438

4.6.2 BlockPoolSliceScanner实现 439

4.7 DirectoryScanner 442

4.8 DataNode类的实现 443

4.8.1 DataNode的启动 444

4.8.2 DataNode的关闭 446

第5章 HDFS客户端 447

5.1 DFSClient实现 447

5.1.1 构造方法 448

5.1.2 关闭方法 449

5.1.3 文件系统管理与配置方法 450

5.1.4 HDFS文件与目录操作方法 451

5.1.5 HDFS文件读写方法 452

5.2 文件读操作与输入流 452

5.2.1 打开文件 452

5.2.2 读操作——DFSInputStream实现 461

5.3 文件短路读操作 481

5.3.1 短路读共享内存 482

5.3.2 DataTransferProtocol 484

5.3.3 DFSClient短路读操作流程 488

5.3.4 Datanode短路读操作流程 509

5.4 文件写操作与输出流 512

5.4.1 创建文件 512

5.4.2 写操作——DFSOutputStream实现 516

5.4.3 追加写操作 543

5.4.4 租约相关 546

5.4.5 关闭输出流 548

5.5 HDFS常用工具 549

5.5.1 FsShell实现 550

5.5.2 DFSAdmin实现 552

截图:

Hadoop 2.X HDFS源码剖析

本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。

最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或联络我们。

对于会员专享、整站源码、程序插件、网站模板、网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。

如果您已经成功付款但是网站没有弹出成功提示,请联系站长提供付款信息为您处理