𝔖 Scriptorium
✦   LIBER   ✦

📁

Hadoop 2.X HDFS源码剖析

✍ Scribed by 徐鹏


Publisher
电子工业出版社
Year
2016
Tongue
Chinese
Leaves
565
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Synopsis


《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语言技巧以及编程规范等。这些对于读者全面提高自己的技术水平有很大的帮助。

✦ Table of Contents


扉页.pdf
版权页.pdf
献给.pdf
前言.pdf
目录.pdf
第1章 HDFS
1.1 HDFS 概述
1.1.1 HDFS 体系结构
1.1.2 HDFS 基本概念
1.2 HDFS 通信协议
1.2.1 Hadoop RPC 接口
1.2.2 流式接口
1.3 HDFS 主要流程
1.3.1 HDFS 客户端读流程
1.3.2 HDFS 客户端写流程
1.3.3 HDFS 客户端追加写流程
1.3.4 Datanode 启动、心跳以及执行名字节点指令流程
1.3.5 HA 切换流程
第2章 Hadoop RPC
2.1 概述
2.1.1 RPC 框架概述
2.1.2 Hadoop RPC 框架概述
2.2 Hadoop RPC 的使用
2.2.1 Hadoop RPC 使用概述
2.2.2 定义RPC 协议
2.2.3 客户端获取Proxy 对象
2.2.4 服务器获取Server 对象
2.3 Hadoop RPC 实现
2.3.1 RPC 类实现
2.3.2 Client 类实现
2.3.3 Server 类实现
第3章 Namenode(名字节点)
3.1 文件系统目录树
3.1.1 INode 相关类
3.1.2 Feature 相关类
3.1.3 FSEditLog 类
3.1.4 FSImage 类
3.1.5 FSDirectory 类
3.2 数据块管理
3.2.1 Block、Replica、BlocksMap
3.2.2 数据块副本状态
3.2.3 BlockManager 类(done)
3.3 数据节点管理
3.3.1 DatanodeDescriptor
3.3.2 DatanodeStorageInfo
3.3.3 DatanodeManager
3.4 租约管理
3.4.1 LeaseManager.Lease
3.4.2 LeaseManager
3.5 缓存管理
3.5.1 缓存概念
3.5.2 缓存管理命令
3.5.3 HDFS 集中式缓存架构
3.5.4 CacheManager 类实现
3.5.5 CacheReplicationMonitor
3.6 ClientProtocol 实现
3.6.1 创建文件
3.6.2 追加写文件
3.6.3 创建新的数据块
3.6.4 放弃数据块
3.6.5 关闭文件
3.7 Namenode 的启动和停止
3.7.1 安全模式
3.7.2 HDFS High Availability
3.7.3 名字节点的启动
3.7.4 名字节点的停止
第4章 Datanode(数据节点)
4.1 Datanode 逻辑结构
4.1.1 HDFS 1.X 架构
4.1.2 HDFS Federation
4.1.3 Datanode 逻辑结构
4.2 Datanode 存储
4.2.1 Datanode 升级机制
4.2.2 Datanode 磁盘存储结构
4.2.3 DataStorage 实现
4.3 文件系统数据集
4.3.1 Datanode 上数据块副本的状态
4.3.2 BlockPoolSlice 实现
4.3.3 FsVolumeImpl 实现
4.3.4 FsVolumeList 实现
4.3.5 FsDatasetImpl 实现
4.4 BlockPoolManager
4.4.1 BPServiceActor 实现
4.4.2 BPOfferService 实现
4.4.3 BlockPoolManager 实现
4.5 流式接口
4.5.1 DataTransferProtocol 定义
4.5.2 Sender 和Receiver
4.5.3 DataXceiverServer
4.5.4 DataXceiver
4.5.5 读数据
4.5.6 写数据(done)
4.5.7 数据块替换、数据块拷贝和读数据块校验
4.5.8 短路读操作
4.6 数据块扫描器
4.6.1 DataBlockScanner 实现
4.6.2 BlockPoolSliceScanner 实现
4.7 DirectoryScanner
4.8 DataNode 类的实现
4.8.1 DataNode 的启动
4.8.2 DataNode 的关闭
第5章 HDFS客户端
5.1 DFSClient 实现
5.1.1 构造方法
5.1.2 关闭方法
5.1.3 文件系统管理与配置方法
5.1.4 HDFS 文件与目录操作方法
5.1.5 HDFS 文件读写方法
5.2 文件读操作与输入流
5.2.1 打开文件
5.2.2 读操作——DFSInputStream 实现
5.3 文件短路读操作
5.3.1 短路读共享内存
5.3.2 DataTransferProtocol
5.3.3 DFSClient 短路读操作流程
5.3.4 Datanode 短路读操作流程
5.4 文件写操作与输出流
5.4.1 创建文件
5.4.2 写操作——DFSOutputStream 实现
5.4.3 追加写操作
5.4.4 租约相关
5.4.5 关闭输出流
5.5 HDFS 常用工具
5.5.1 FsShell 实现
5.5.2 DFSAdmin 实现
06参考文献.pdf


📜 SIMILAR VOLUMES


STL源码剖析
✍ 侯捷 📂 Library 📅 2002 🏛 华中科技大学出版社 🌐 Chinese

学习编程的人都知道,阅读、剖析名家代码乃是提高水平的捷径。源码之前,了无秘密。大师们的缜密思维、经验结晶、技术思路、独到风格,都原原本本体现在源码之中。 这本书所呈现的源码,使读者看到vector的实现、list的实现、heap的实现、deque的实现、Red Black tree的实现、hash table的实现、set/map的实现;看到各种算法(排序、查找、排列组合、数据移动与复制技术)的实现;甚至还能够看到底层的memory pool和高阶抽象的traits机制的实现。

Linux内核源码剖析 TCP/IP实现 上
✍ 樊东东; 莫澜 📂 Library 📅 2011 🏛 机械工业出版社 🌐 Chinese

本书详细论述了Linux内核2.6.20版本中TCP/IP的实现。书中给出了大量的源代码,通过对源代码的详细注释,帮助读者掌握TCP/IP的实现。本书根据协议栈层次,从驱动层逐步论述到传输层,包括驱动的实现、接口层的输入输出、IP层的输入输出以及IP选项的处理、邻居子系统、路由、套接口及传输层等内容,全书基本涵盖了网络体系架构全部的知识点。特别是TCP,包括TCP连接的建立和终止、输入与输出,以及拥塞控制的实现。