当前位置:主页 > 书籍配套资源 > Hadoop配套资源
《Hadoop技术内幕:深入解析Hadoop Common和HDFS架构设计与实现原理》源代码

《Hadoop技术内幕:深入解析Hadoop Common和HDFS架构设计与实现原理》源代码

  • 更新:2022-05-10
  • 大小:6.6 MB
  • 类别:Hadoop
  • 作者:蔡斌、陈湘萍
  • 出版:机械工业出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

“Hadoop技术内幕”共两册,分别从源代码的角度对“Common+HDFS”和MapReduce的架构设计和实现原理进行了极为详细的分析。本书由腾讯数据平台的资深Hadoop专家、X-RIME的作者亲自执笔,对Common和HDFS的源代码进行了分析,旨在为Hadoop的优化、定制和扩展提供原理性的指导。除此之外,本书还从源代码实现中对分布式技术的精髓、分布式系统设计的优秀思想和方法,以及Java语言的编码技巧、编程规范和对设计模式的精妙运用进行了总结和分析,对提高读者的分布式技术能力和Java编程能力都非常有帮助。本书适合Hadoop的二次开发人员、应用开发工程师、运维工程师阅读。

全书9章,共分为三个部分:第一部分(第1章)主要介绍了Hadoop源代码的获取和源代码阅读环境的搭建;第二部分(第2~5章)对Hadoop公共工具Common的架构设计和实现原理进行了深入分析,包含Hadoop的配置信息处理、面向海量数据处理的序列化和压缩机制、Hadoop的远程过程调用,以及满足Hadoop上各类应用访问数据的Hadoop抽象文件系统和部分具体文件系统等内容;第三部分(第6~9章)对Hadoop的分布式文件系统HDFS的架构设计和实现原理进行了详细的分析,这部分内容采用了总分总的结构,第6章对HDFS的各个实体和实体间接口进行了分析;第7章和第8章分别详细地研究了数据节点和名字节点的实现原理,并通过第9章对客户端的解析,回顾了HDFS各节点间的配合,完整地介绍了一个大规模数据存储系统的实现。

封面图

目录

  • 前言
  • 第一部分环境准备
  • 第1章源代码环境准备/ 2
  • 1.1什么是Hadoop / 2
  • 1.1.1Hadoop简史/ 2
  • 1.1.2Hadoop的优势/ 3
  • 1.1.3Hadoop生态系统/ 4
  • 1.2准备源代码阅读环境/ 8
  • 1.2.1安装与配置JDK / 8
  • 1.2.2安装Eclipse / 9
  • 1.2.3安装辅助工具Ant/ 12
  • 1.2.4安装类UNIX Shell环境Cygwin / 13
  • 1.3准备Hadoop源代码/ 15
  • 1.3.1下载Hadoop / 15
  • 1.3.2创建Eclipse项目/ 16
  • 1.3.3Hadoop源代码组织/ 18
  • 1.4小结/ 19
  • 第二部分Common的实现
  • 第2章Hadoop配置信息处理/ 22
  • 2.1配置文件简介/ 22
  • 2.1.1Windows操作系统的配置文件/ 22
  • 2.1.2Java配置文件/ 23
  • 2.2Hadoop Configuration详解/ 24
  • 2.2.1Hadoop配置文件的格式/ 24
  • 2.2.2Configuration的成员变量/ 26
  • 2.2.3资源加载/ 27
  • 2.2.4使用get*和set*访问/设置配置项/ 32
  • 2.3Configurable接口/ 34
  • 2.4小结/ 35
  • 第3章序列化与压缩/ 36
  • 3.1序列化/ 36
  • 3.1.1Java内建序列化机制/ 36
  • 3.1.2Hadoop序列化机制/ 38
  • 3.1.3Hadoop序列化机制的特征/ 39
  • 3.1.4Hadoop Writable机制/ 39
  • 3.1.5典型的Writable类详解/ 41
  • 3.1.6Hadoop序列化框架/ 48
  • 3.2压缩/ 49
  • 3.2.1Hadoop压缩简介/ 50
  • 3.2.2Hadoop压缩API应用实例/ 51
  • 3.2.3Hadoop压缩框架/ 52
  • 3.2.4Java本地方法/ 61
  • 3.2.5支持Snappy压缩/ 65
  • 3.3小结/ 69
  • 第4章Hadoop远程过程调用/ 70
  • 4.1远程过程调用基础知识/ 70
  • 4.1.1RPC原理/ 70
  • 4.1.2RPC机制的实现/ 72
  • 4.1.3Java远程方法调用/ 73
  • 4.2Java动态代理/ 78
  • 4.2.1创建代理接口/ 78
  • 4.2.2调用转发/ 80
  • 4.2.3动态代理实例/ 81
  • 4.3Java NIO/ 84
  • 4.3.1Java基本套接字/ 84
  • 4.3.2Java NIO基础/ 86
  • 4.3.3Java NIO实例:回显服务器/ 93
  • 4.4Hadoop中的远程过程调用/ 96
  • 4.4.1利用Hadoop IPC构建简单的分布式系统/ 96
  • 4.4.2Hadoop IPC的代码结构/ 100
  • 4.5Hadoop IPC连接相关过程/ 104
  • 4.5.1IPC连接成员变量/ 104
  • 4.5.2建立IPC连接/ 106
  • 4.5.3数据分帧和读写/ 111
  • 4.5.4维护IPC连接/ 114
  • 4.5.5关闭IPC连接/ 116
  • 4.6Hadoop IPC方法调用相关过程/ 118
  • 4.6.1Java接口与接口体/ 119
  • 4.6.2IPC方法调用成员变量/ 121
  • 4.6.3客户端方法调用过程/ 123
  • 4.6.4服务器端方法调用过程/ 126
  • 4.7Hadoop IPC上的其他辅助过程/ 135
  • 4.7.1RPC.getProxy()和RPC.stopProxy() / 136
  • 4.7.2RPC.getServer()和Server的启停/ 138
  • 4.8小结/ 141
  • 第5章Hadoop文件系统/ 142
  • 5.1文件系统/ 142
  • 5.1.1文件系统的用户界面/ 142
  • 5.1.2文件系统的实现/ 145
  • 5.1.3文件系统的保护控制/ 147
  • 5.2Linux文件系统/ 150
  • 5.2.1Linux本地文件系统/ 150
  • 5.2.2虚拟文件系统/ 153
  • 5.2.3Linux文件保护机制/ 154
  • 5.2.4Linux文件系统API/ 155
  • 5.3分布式文件系统/ 159
  • 5.3.1分布式文件系统的特性/ 159
  • 5.3.2基本NFS体系结构/ 160
  • 5.3.3NFS支持的文件操作/ 160
  • 5.4Java文件系统/ 162
  • 5.4.1Java文件系统API / 162
  • 5.4.2URI和URL / 164
  • 5.4.3Java输入/输出流/ 166
  • 5.4.4随机存取文件/ 169
  • 5.5Hadoop抽象文件系统/ 170
  • 5.5.1Hadoop文件系统API / 170
  • 5.5.2Hadoop输入/输出流/ 175
  • 5.5.3Hadoop文件系统中的权限/ 179
  • 5.5.4抽象文件系统中的静态方法/ 180
  • 5.5.5Hadoop文件系统中的协议处理器/ 184
  • 5.6Hadoop具体文件系统/ 188
  • 5.6.1FileSystem层次结构/ 189
  • 5.6.2RawLocalFileSystem的实现/ 191
  • 5.6.3ChecksumFileSystem的实现/ 196
  • 5.6.4RawInMemoryFileSystem的实现/ 210
  • 5.7小结/ 213
  • 第三部分Hadoop分布式文件系统
  • 第6章HDFS概述/ 216
  • 6.1初识HDFS / 216
  • 6.1.1HDFS主要特性/ 216
  • 6.1.2HDFS体系结构/ 217
  • 6.1.3HDFS源代码结构/ 221
  • 6.2基于远程过程调用的接口/ 223
  • 6.2.1与客户端相关的接口/ 224
  • 6.2.2HDFS各服务器间的接口/ 236
  • 6.3非远程过程调用接口/ 244
  • 6.3.1数据节点上的非IPC接口/ 245
  • 6.3.2名字节点和第二名字节点上的非IPC接口/ 252
  • 6.4HDFS主要流程/ 254
  • 6.4.1客户端到名字节点的文件与目录操作/ 254
  • 6.4.2客户端读文件/ 256
  • 6.4.3客户端写文件/ 257
  • 6.4.4数据节点的启动和心跳/ 258
  • 6.4.5第二名字节点合并元数据/ 259
  • 6.5小结/ 261
  • 第7章数据节点实现/ 263
  • 7.1数据块存储/ 263
  • 7.1.1数据节点的磁盘目录文件结构/ 263
  • 7.1.2数据节点存储的实现/ 266
  • 7.1.3数据节点升级/ 269
  • 7.1.4文件系统数据集的工作机制/ 276
  • 7.2流式接口的实现/ 285
  • 7.2.1DataXceiverServer和DataXceiver / 286
  • 7.2.2读数据/ 289
  • 7.2.3写数据/ 298
  • 7.2.4数据块替换、数据块拷贝和读数据块检验信息/ 313
  • 7.3作为整体的数据节点/ 314
  • 7.3.1数据节点和名字节点的交互/ 314
  • 7.3.2数据块扫描器/ 319
  • 7.3.3数据节点的启停/ 321
  • 7.4小结/ 326
  • 第8章名字节点实现/ 327
  • 8.1文件系统的目录树/ 327
  • 8.1.1从i-node到INode/ 327
  • 8.1.2命名空间镜像和编辑日志/ 333
  • 8.1.3第二名字节点/ 351
  • 8.1.4FSDirectory的实现/ 361
  • 8.2数据块和数据节点管理/ 365
  • 8.2.1数据结构/ 366
  • 8.2.2数据节点管理/ 378
  • 8.2.3数据块管理/ 392
  • 8.3远程接口ClientProtocol的实现/ 412
  • 8.3.1文件和目录相关事务/ 412
  • 8.3.2读数据使用的方法/ 415
  • 8.3.3写数据使用的方法/ 419
  • 8.3.4工具dfsadmin依赖的方法/ 443
  • 8.4名字节点的启动和停止/ 444
  • 8.4.1安全模式/ 444
  • 8.4.2名字节点的启动/ 449
  • 8.4.3名字节点的停止/ 454
  • 8.5小结/ 454
  • 第9章HDFS客户端/ 455
  • 9.1认识DFSClient / 455
  • 9.1.1DFSClient的构造和关闭/ 455
  • 9.1.2文件和目录、系统管理相关事务/ 457
  • 9.1.3删除HDFS文件/目录的流程/ 459
  • 9.2输入流/ 461
  • 9.2.1读数据前的准备:打开文件/ 463
  • 9.2.2读数据/ 465
  • 9.2.3关闭输入流/ 475
  • 9.2.4读取HDFS文件数据的流程/ 475
  • 9.3输出流/ 478
  • 9.3.1写数据前的准备:创建文件/ 481
  • 9.3.2写数据:数据流管道的建立/ 482
  • 9.3.3写数据:数据包的发送/ 486
  • 9.3.4写数据:数据流管道出错处理/ 493
  • 9.3.5写数据:租约更新/ 496
  • 9.3.6写数据:DFSOutputStream.sync()的作用/ 497
  • 9.3.7关闭输出流/ 499
  • 9.3.8向HDFS文件写入数据的流程/ 500
  • 9.4DistributedFileSystem的实现/ 506
  • 9.5HDFS常用工具/ 508
  • 9.5.1FsShell / 508
  • 9.5.2DFSAdmin / 510
  • 9.6小结/ 511

资源下载

资源下载地址1:https://pan.baidu.com/s/1mrNm02Gv3N2FPQ6AVg0GCA

相关资源

网友留言