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

来源:互联网 发布:考研英语网络间谍 编辑:程序博客网 时间:2024/05/18 00:05
《Hadoop技术内幕:深入解析Hadoop Common和HDFS架构设计与实现原理》
基本信息
作者: 蔡斌    陈湘萍   
出版社:机械工业出版社
ISBN:9787111417668
上架时间:2013-4-22
出版日期:2013 年4月
开本:16开
页码:1
版次:1-1
所属分类:计算机 > 软件与程序设计 > 分布式系统设计
更多关于 》》》《Hadoop技术内幕:深入解析Hadoop Common和HDFS架构设计与实现原理》
内容简介
    书籍
    计算机书籍
  “hadoop技术内幕”共两册,分别从源代码的角度对“common+hdfs”和mapreduce的架构设计与实现原理进行了极为详细的分析。《hadoop技术内幕:深入解析hadoop common和hdfs架构设计与实现原理》由腾讯数据平台的资深hadoop专家、x-rime的作者亲自执笔,对common和hdfs的源代码进行了分析,旨在为hadoop的优化、定制和扩展提供原理性的指导。除此之外,本书还从源代码实现中对分布式技术的精髓、分布式系统设计的优秀思想和方法,以及java语言的编码技巧、编程规范和对设计模式的精妙运用进行了总结和分析,对提高读者的分布式技术能力和java编程能力都非常有帮助。本书适合hadoop的二次开发人员、应用开发工程师、运维工程师阅读。
   《hadoop技术内幕:深入解析hadoop common和hdfs架构设计与实现原理》共9章,分为三部分:第一部分(第1章)主要介绍了hadoop源代码的获取和源代码阅读环境的搭建;第二部分(第2~5章)对hadoop公共工具common的架构设计和实现原理进行了深入分析,包含hadoop的配置信息处理、面向海量数据处理的序列化和压缩机制、hadoop的远程过程调用,以及满足hadoop上各类应用访问数据的hadoop抽象文件系统和部分具体文件系统等内容;第三部分(第6~9章)对hadoop的分布式文件系统hdfs的架构设计和实现原理进行了详细的分析,这部分内容采用了总分总的结构,第6章对hdfs的各个实体和实体间接口进行了分析;第7章和第8章分别详细地研究了数据节点和名字节点的实现原理,并通过第9章对客户端的解析,回顾了hdfs各节点间的配合,完整地介绍了一个大规模数据存储系统的实现。
目录
《hadoop技术内幕:深入解析hadoop common和hdfs架构设计与实现原理》 
前 言 
第一部分 环境准备 
第1章 源代码环境准备/ 2 
1.1 什么是hadoop / 2 
1.1.1 hadoop简史/ 2 
1.1.2 hadoop的优势/ 3 
1.1.3 hadoop生态系统/ 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.3 hadoop源代码组织/ 18 
1.4 小结/ 19 
第二部分 common的实现 
第2章 hadoop配置信息处理/ 22 
.2.1 配置文件简介/ 22 
2.1.1 windows操作系统的配置文件/ 22 
2.1.2 java配置文件/ 23 
2.2 hadoop configuration详解/ 24 
2.2.1 hadoop配置文件的格式/ 24 
2.2.2 configuration的成员变量/ 26 
2.2.3 资源加载/ 27 
2.2.4 使用get*和set*访问/设置配置项/ 32 
2.3 configurable接口/ 34 
2.4 小结/ 35 
第3章 序列化与压缩/ 36 
3.1 序列化/ 36 
3.1.1 java内建序列化机制/ 36 
3.1.2 hadoop序列化机制/ 38 
3.1.3 hadoop序列化机制的特征/ 39 
3.1.4 hadoop writable机制/ 39 
3.1.5 典型的writable类详解/ 41 
3.1.6 hadoop序列化框架/ 48 
3.2 压缩/ 49 
3.2.1 hadoop压缩简介/ 50 
3.2.2 hadoop压缩api应用实例/ 51 
3.2.3 hadoop压缩框架/ 52 
3.2.4 java本地方法/ 61 
3.2.5 支持snappy压缩/ 65 
3.3 小结/ 69 
第4章 hadoop远程过程调用/ 70 
4.1 远程过程调用基础知识/ 70 
4.1.1 rpc原理/ 70 
4.1.2 rpc机制的实现/ 72 
4.1.3 java远程方法调用/ 73 
4.2 java动态代理/ 78 
4.2.1 创建代理接口/ 78 
4.2.2 调用转发/ 80 
4.2.3 动态代理实例/ 81 
4.3 java nio/ 84 
4.3.1 java基本套接字/ 84 
4.3.2 java nio基础/ 86 
4.3.3 java nio实例:回显服务器/ 93 
4.4 hadoop中的远程过程调用/ 96 
4.4.1 利用hadoop ipc构建简单的分布式系统/ 96 
4.4.2 hadoop ipc的代码结构/ 100 
4.5 hadoop ipc连接相关过程/ 104 
4.5.1 ipc连接成员变量/ 104 
4.5.2 建立ipc连接/ 106 
4.5.3 数据分帧和读写/ 111 
4.5.4 维护ipc连接/ 114 
4.5.5 关闭ipc连接/ 116 
4.6 hadoop ipc方法调用相关过程/ 118 
4.6.1 java接口与接口体/ 119 
4.6.2 ipc方法调用成员变量/ 121 
4.6.3 客户端方法调用过程/ 123 
4.6.4 服务器端方法调用过程/ 126 
4.7 hadoop ipc上的其他辅助过程/ 135 
4.7.1 rpc.getproxy()和rpc.stopproxy() / 136 
4.7.2 rpc.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.2 linux文件系统/ 150 
5.2.1 linux本地文件系统/ 150 
5.2.2 虚拟文件系统/ 153 
5.2.3 linux文件保护机制/ 154 
5.2.4 linux文件系统api/ 155 
5.3 分布式文件系统/ 159 
5.3.1 分布式文件系统的特性/ 159 
5.3.2 基本nfs体系结构/ 160 
5.3.3 nfs支持的文件操作/ 160 
5.4 java文件系统/ 162 
5.4.1 java文件系统api / 162 
5.4.2 uri和url / 164 
5.4.3 java输入/输出流/ 166 
5.4.4 随机存取文件/ 169 
5.5 hadoop抽象文件系统/ 170 
5.5.1 hadoop文件系统api / 170 
5.5.2 hadoop输入/输出流/ 175 
5.5.3 hadoop文件系统中的权限/ 179 
5.5.4 抽象文件系统中的静态方法/ 180 
5.5.5 hadoop文件系统中的协议处理器/ 184 
5.6 hadoop具体文件系统/ 188 
5.6.1 filesystem层次结构/ 189 
5.6.2 rawlocalfilesystem的实现/ 191 
5.6.3 checksumfilesystem的实现/ 196 
5.6.4 rawinmemoryfilesystem的实现/ 210 
5.7 小结/ 213 
第三部分 hadoop分布式文件系统 
第6章 hdfs概述/ 216 
6.1 初识hdfs / 216 
6.1.1 hdfs主要特性/ 216 
6.1.2 hdfs体系结构/ 217 
6.1.3 hdfs源代码结构/ 221 
6.2 基于远程过程调用的接口/ 223 
6.2.1 与客户端相关的接口/ 224 
6.2.2 hdfs各服务器间的接口/ 236 
6.3 非远程过程调用接口/ 244 
6.3.1 数据节点上的非ipc接口/ 245 
6.3.2 名字节点和第二名字节点上的非ipc接口/ 252 
6.4 hdfs主要流程/ 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.1 dataxceiverserver和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.4 fsdirectory的实现/ 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.1 dfsclient的构造和关闭/ 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.4 distributedfilesystem的实现/ 506 
9.5 hdfs常用工具/ 508 
9.5.1 fsshell / 508 
9.5.2 dfsadmin / 510 
9.6 小结/ 511

本图书信息来源:中国互动出版网