Hadoop技术内幕:深入解析Hadoop Common和HDFS架构设计与实现原理
?前言
第一部分 环境准备
第1章 源代码环境准备
1.1什么是Hadoop
1.1.1Hadoop简史
1.1.2Hadoop的优势
1.1.3Hadoop生态系统
1.2准备源代码阅读环境
1.2.1安装与配置JDK
1.2.2安装Eclipse
查看完整
第一部分 环境准备
第1章 源代码环境准备
1.1什么是Hadoop
1.1.1Hadoop简史
1.1.2Hadoop的优势
1.1.3Hadoop生态系统
1.2准备源代码阅读环境
1.2.1安装与配置JDK
1.2.2安装Eclipse
查看完整
蔡斌,资深Hadoop技术专家,基于Hadoop的开源项目X-RIME的作者之一。国内Hadoop应用和源代码研究领域的先驱之一,有10余年开发经验,先后任职于朗讯科技、IBM中国研究院等国内外知名企业,目前担任腾讯数据平台部的高级工程师,从事Hadoop相关技术的研究、应用和实施,实战经验非常丰富。对分布式计算、电信增值业务、网络管理等领域有深刻的认识和理解,拥有近10项发明专利,其中两项为美国专利,大部分与海量数据处理相关。近期关注海量数据的流式处理、Hadoop上的大数据应用与挖掘等。
陈湘萍,北京大学计算机系博士,目前就职于中山大学,专注于Hadoop、云计算、软件中间件、模型驱动的软件工程等技术的研究和实践。拥有发明专利5项,参与1项国家电子行业标准的制定,发表学术论文10余篇。
陈湘萍,北京大学计算机系博士,目前就职于中山大学,专注于Hadoop、云计算、软件中间件、模型驱动的软件工程等技术的研究和实践。拥有发明专利5项,参与1项国家电子行业标准的制定,发表学术论文10余篇。
“Hadoop技术内幕”共两册,分别从源代码的角度对“Common+HDFS”和MapReduce的架构设计和实现原理进行了极为详细的分析。《Hadoop技术内幕:深入解析Hadoop Common和HDFS架构设计与实现原理》由腾讯数据平台的资深Hadoop专家、X-RIME的作者亲自执笔,对Common和HDFS的源代码进行了分析,旨在为Hadoop的优化、定制和扩展提供原理性的指导。除此之外,本书还从源代码实现中对分布式技术的精髓、分布式系统设计的优秀思想和方法,以及Java语言的编码技巧、编程规范和对设计模式的精妙运用进行了总结和分析,对提高读者的分布式技术能力和Java编程能力都非常有帮助。本书适合Hadoop的二次开发人员、应用开发工程师、运维工程师阅读。
全书9章,共分为三个部分:第一部分(第1章)主要介绍了Hadoop源代码的获取和源代码阅读环境的搭建;第二部分(第2~5章)对Hadoop公共工具Common…
查看完整
全书9章,共分为三个部分:第一部分(第1章)主要介绍了Hadoop源代码的获取和源代码阅读环境的搭建;第二部分(第2~5章)对Hadoop公共工具Common…
查看完整
?前言
第一部分 环境准备
第1章 源代码环境准备
1.1什么是Hadoop
1.1.1Hadoop简史
1.1.2Hadoop的优势
1.1.3Hadoop生态系统
1.2准备源代码阅读环境
1.2.1安装与配置JDK
1.2.2安装Eclipse
1.2.3安装辅助工具Ant
1.2.4安装类UNIXShell环境Cygwin
1.3准备Hadoop源代码
1.3.1下载Hadoop
1.3.2创建Eclipse项目
1.3.3Hadoop源代码组织
1.4小结
第二部分 Common的实现
第2章 Hadoop配置信息处理
2.1配置文件简介
2.1.1Windows操作系统的配置文件
2.1.2Java配置文件
2.2HadoopConfiguration详解
2.2.1Hadoop配置文件的格式
2.2.2Configuration的成员变量
2.2.3资源加载
2.2.4使用get*和set*访问 设置配置项
2.3Configurable接口
2.4小结
第3章 序列化与压缩
3.1序列化
3.1.1Java内建序列化机制
3.1.2Hadoop序列化机制
3.1.3Hadoop序列化机制的特征
3.1.4HadoopWritable机制
3.1.5典型的Writable类详解
3.1.6Hadoop序列化框架
3.2压缩
3.2.1Hadoop压缩简介
3.2.2Hadoop压缩API应用实例
3.2.3Hadoop压缩框架
3.2.4Java本地方法
3.2.5支持Snappy压缩
3.3小结
第4章 Hadoop远程过程调用
4.1远程过程调用基础知识
4.1.1RPC原理
4.1.2RPC机制的实现
4.1.3Java远程方法调用
4.2Java动态代理
4.2.1创建代理接口
4.2.2调用转发
4.2.3动态代理实例
4.3JavaNIO
4.3.1Java基本套接字
4.3.2JavaNIO基础
4.3.3JavaNIO实例:回显服务器
4.4Hadoop中的远程过程调用
4.4.1利用HadoopIPC构建简单的分布式系统
4.4.2HadoopIPC的代码结构
4.5HadoopIPC连接相关过程
4.5.1IPC连接成员变量
4.5.2建立IPC连接
4.5.3数据分帧和读写
4.5.4维护IPC连接
4.5.5关闭IPC连接
4.6HadoopIPC方法调用相关过程
4.6.1Java接口与接口体
4.6.2IPC方法调用成员变量
4.6.3客户端方法调用过程
4.6.4服务器端方法调用过程
4.7HadoopIPC上的其他辅助过程
4.7.1RPC.getProxy()和RPC.stopProxy()
4.7.2RPC.getServer()和Server的启停
4.8小结
第5章 Hadoop文件系统
5.1文件系统
5.1.1文件系统的用户界面
5.1.2文件系统的实现
5.1.3文件系统的保护控制
5.2Linux文件系统
5.2.1Linux本地文件系统
5.2.2虚拟文件系统
5.2.3Linux文件保护机制
5.2.4Linux文件系统API
5.3分布式文件系统
5.3.1分布式文件系统的特性
5.3.2基本NFS体系结构
5.3.3NFS支持的文件操作
5.4Java文件系统
5.4.1Java文件系统API
5.4.2URI和URL
5.4.3Java输入 输出流
5.4.4随机存取文件
5.5Hadoop抽象文件系统
5.5.1Hadoop文件系统API
5.5.2Hadoop输入 输出流
5.5.3Hadoop文件系统中的权限
5.5.4抽象文件系统中的静态方法
5.5.5Hadoop文件系统中的协议处理器
5.6Hadoop具体文件系统
5.6.1FileSystem层次结构
5.6.2RawLocalFileSystem的实现
5.6.3ChecksumFileSystem的实现
5.6.4RawInMemoryFileSystem的实现
5.7小结
第三部分 Hadoop分布式文件系统
第6章 HDFS概述
6.1初识HDFS
6.1.1HDFS主要特性
6.1.2HDFS体系结构
6.1.3HDFS源代码结构
6.2基于远程过程调用的接口
6.2.1与客户端相关的接口
6.2.2HDFS各服务器间的接口
6.3非远程过程调用接口
6.3.1数据节点上的非IPC接口
6.3.2名字节点和第二名字节点上的非IPC接口
6.4HDFS主要流程
6.4.1客户端到名字节点的文件与目录操作
6.4.2客户端读文件
6.4.3客户端写文件
6.4.4数据节点的启动和心跳
6.4.5第二名字节点合并元数据
6.5小结
第7章 数据节点实现
7.1数据块存储
7.1.1数据节点的磁盘目录文件结构
7.1.2数据节点存储的实现
7.1.3数据节点升级
7.1.4文件系统数据集的工作机制
7.2流式接口的实现
7.2.1DataXceiverServer和DataXceiver
7.2.2读数据
7.2.3写数据
7.2.4数据块替换、数据块拷贝和读数据块检验信息
7.3作为整体的数据节点
7.3.1数据节点和名字节点的交互
7.3.2数据块扫描器
7.3.3数据节点的启停
7.4小结
第8章 名字节点实现
8.1文件系统的目录树
8.1.1从i-node到INode
8.1.2命名空间镜像和编辑日志
8.1.3第二名字节点
8.1.4FSDirectory的实现
8.2数据块和数据节点管理
8.2.1数据结构
8.2.2数据节点管理
8.2.3数据块管理
8.3远程接口ClientProtocol的实现
8.3.1文件和目录相关事务
8.3.2读数据使用的方法
8.3.3写数据使用的方法
8.3.4工具dfsadmin依赖的方法
8.4名字节点的启动和停止
8.4.1安全模式
8.4.2名字节点的启动
8.4.3名字节点的停止
8.5小结
第9章 HDFS客户端
9.1认识DFSClient
9.1.1DFSClient的构造和关闭
9.1.2文件和目录、系统管理相关事务
9.1.3删除HDFS文件 目录的流程
9.2输入流
9.2.1读数据前的准备:打开文件
9.2.2读数据
9.2.3关闭输入流
9.2.4读取HDFS文件数据的流程
9.3输出流
9.3.1写数据前的准备:创建文件
9.3.2写数据:数据流管道的建立
9.3.3写数据:数据包的发送
9.3.4写数据:数据流管道出错处理
9.3.5写数据:租约更新
9.3.6写数据:DFSOutputStream.sync()的作用
9.3.7关闭输出流
9.3.8向HDFS文件写入数据的流程
9.4DistributedFileSystem的实现
9.5HDFS常用工具
9.5.1FsShell
9.5.2DFSAdmin
9.6小结
^ 收 起
第一部分 环境准备
第1章 源代码环境准备
1.1什么是Hadoop
1.1.1Hadoop简史
1.1.2Hadoop的优势
1.1.3Hadoop生态系统
1.2准备源代码阅读环境
1.2.1安装与配置JDK
1.2.2安装Eclipse
1.2.3安装辅助工具Ant
1.2.4安装类UNIXShell环境Cygwin
1.3准备Hadoop源代码
1.3.1下载Hadoop
1.3.2创建Eclipse项目
1.3.3Hadoop源代码组织
1.4小结
第二部分 Common的实现
第2章 Hadoop配置信息处理
2.1配置文件简介
2.1.1Windows操作系统的配置文件
2.1.2Java配置文件
2.2HadoopConfiguration详解
2.2.1Hadoop配置文件的格式
2.2.2Configuration的成员变量
2.2.3资源加载
2.2.4使用get*和set*访问 设置配置项
2.3Configurable接口
2.4小结
第3章 序列化与压缩
3.1序列化
3.1.1Java内建序列化机制
3.1.2Hadoop序列化机制
3.1.3Hadoop序列化机制的特征
3.1.4HadoopWritable机制
3.1.5典型的Writable类详解
3.1.6Hadoop序列化框架
3.2压缩
3.2.1Hadoop压缩简介
3.2.2Hadoop压缩API应用实例
3.2.3Hadoop压缩框架
3.2.4Java本地方法
3.2.5支持Snappy压缩
3.3小结
第4章 Hadoop远程过程调用
4.1远程过程调用基础知识
4.1.1RPC原理
4.1.2RPC机制的实现
4.1.3Java远程方法调用
4.2Java动态代理
4.2.1创建代理接口
4.2.2调用转发
4.2.3动态代理实例
4.3JavaNIO
4.3.1Java基本套接字
4.3.2JavaNIO基础
4.3.3JavaNIO实例:回显服务器
4.4Hadoop中的远程过程调用
4.4.1利用HadoopIPC构建简单的分布式系统
4.4.2HadoopIPC的代码结构
4.5HadoopIPC连接相关过程
4.5.1IPC连接成员变量
4.5.2建立IPC连接
4.5.3数据分帧和读写
4.5.4维护IPC连接
4.5.5关闭IPC连接
4.6HadoopIPC方法调用相关过程
4.6.1Java接口与接口体
4.6.2IPC方法调用成员变量
4.6.3客户端方法调用过程
4.6.4服务器端方法调用过程
4.7HadoopIPC上的其他辅助过程
4.7.1RPC.getProxy()和RPC.stopProxy()
4.7.2RPC.getServer()和Server的启停
4.8小结
第5章 Hadoop文件系统
5.1文件系统
5.1.1文件系统的用户界面
5.1.2文件系统的实现
5.1.3文件系统的保护控制
5.2Linux文件系统
5.2.1Linux本地文件系统
5.2.2虚拟文件系统
5.2.3Linux文件保护机制
5.2.4Linux文件系统API
5.3分布式文件系统
5.3.1分布式文件系统的特性
5.3.2基本NFS体系结构
5.3.3NFS支持的文件操作
5.4Java文件系统
5.4.1Java文件系统API
5.4.2URI和URL
5.4.3Java输入 输出流
5.4.4随机存取文件
5.5Hadoop抽象文件系统
5.5.1Hadoop文件系统API
5.5.2Hadoop输入 输出流
5.5.3Hadoop文件系统中的权限
5.5.4抽象文件系统中的静态方法
5.5.5Hadoop文件系统中的协议处理器
5.6Hadoop具体文件系统
5.6.1FileSystem层次结构
5.6.2RawLocalFileSystem的实现
5.6.3ChecksumFileSystem的实现
5.6.4RawInMemoryFileSystem的实现
5.7小结
第三部分 Hadoop分布式文件系统
第6章 HDFS概述
6.1初识HDFS
6.1.1HDFS主要特性
6.1.2HDFS体系结构
6.1.3HDFS源代码结构
6.2基于远程过程调用的接口
6.2.1与客户端相关的接口
6.2.2HDFS各服务器间的接口
6.3非远程过程调用接口
6.3.1数据节点上的非IPC接口
6.3.2名字节点和第二名字节点上的非IPC接口
6.4HDFS主要流程
6.4.1客户端到名字节点的文件与目录操作
6.4.2客户端读文件
6.4.3客户端写文件
6.4.4数据节点的启动和心跳
6.4.5第二名字节点合并元数据
6.5小结
第7章 数据节点实现
7.1数据块存储
7.1.1数据节点的磁盘目录文件结构
7.1.2数据节点存储的实现
7.1.3数据节点升级
7.1.4文件系统数据集的工作机制
7.2流式接口的实现
7.2.1DataXceiverServer和DataXceiver
7.2.2读数据
7.2.3写数据
7.2.4数据块替换、数据块拷贝和读数据块检验信息
7.3作为整体的数据节点
7.3.1数据节点和名字节点的交互
7.3.2数据块扫描器
7.3.3数据节点的启停
7.4小结
第8章 名字节点实现
8.1文件系统的目录树
8.1.1从i-node到INode
8.1.2命名空间镜像和编辑日志
8.1.3第二名字节点
8.1.4FSDirectory的实现
8.2数据块和数据节点管理
8.2.1数据结构
8.2.2数据节点管理
8.2.3数据块管理
8.3远程接口ClientProtocol的实现
8.3.1文件和目录相关事务
8.3.2读数据使用的方法
8.3.3写数据使用的方法
8.3.4工具dfsadmin依赖的方法
8.4名字节点的启动和停止
8.4.1安全模式
8.4.2名字节点的启动
8.4.3名字节点的停止
8.5小结
第9章 HDFS客户端
9.1认识DFSClient
9.1.1DFSClient的构造和关闭
9.1.2文件和目录、系统管理相关事务
9.1.3删除HDFS文件 目录的流程
9.2输入流
9.2.1读数据前的准备:打开文件
9.2.2读数据
9.2.3关闭输入流
9.2.4读取HDFS文件数据的流程
9.3输出流
9.3.1写数据前的准备:创建文件
9.3.2写数据:数据流管道的建立
9.3.3写数据:数据包的发送
9.3.4写数据:数据流管道出错处理
9.3.5写数据:租约更新
9.3.6写数据:DFSOutputStream.sync()的作用
9.3.7关闭输出流
9.3.8向HDFS文件写入数据的流程
9.4DistributedFileSystem的实现
9.5HDFS常用工具
9.5.1FsShell
9.5.2DFSAdmin
9.6小结
^ 收 起
蔡斌,资深Hadoop技术专家,基于Hadoop的开源项目X-RIME的作者之一。国内Hadoop应用和源代码研究领域的先驱之一,有10余年开发经验,先后任职于朗讯科技、IBM中国研究院等国内外知名企业,目前担任腾讯数据平台部的高级工程师,从事Hadoop相关技术的研究、应用和实施,实战经验非常丰富。对分布式计算、电信增值业务、网络管理等领域有深刻的认识和理解,拥有近10项发明专利,其中两项为美国专利,大部分与海量数据处理相关。近期关注海量数据的流式处理、Hadoop上的大数据应用与挖掘等。
陈湘萍,北京大学计算机系博士,目前就职于中山大学,专注于Hadoop、云计算、软件中间件、模型驱动的软件工程等技术的研究和实践。拥有发明专利5项,参与1项国家电子行业标准的制定,发表学术论文10余篇。
陈湘萍,北京大学计算机系博士,目前就职于中山大学,专注于Hadoop、云计算、软件中间件、模型驱动的软件工程等技术的研究和实践。拥有发明专利5项,参与1项国家电子行业标准的制定,发表学术论文10余篇。
“Hadoop技术内幕”共两册,分别从源代码的角度对“Common+HDFS”和MapReduce的架构设计和实现原理进行了极为详细的分析。《Hadoop技术内幕:深入解析Hadoop Common和HDFS架构设计与实现原理》由腾讯数据平台的资深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各节点间的配合,完整地介绍了一个大规模数据存储系统的实现。
^ 收 起
全书9章,共分为三个部分:第一部分(第1章)主要介绍了Hadoop源代码的获取和源代码阅读环境的搭建;第二部分(第2~5章)对Hadoop公共工具Common的架构设计和实现原理进行了深入分析,包含Hadoop的配置信息处理、面向海量数据处理的序列化和压缩机制、Hadoop的远程过程调用,以及满足Hadoop上各类应用访问数据的Hadoop抽象文件系统和部分具体文件系统等内容;第三部分(第6~9章)对Hadoop的分布式文件系统HDFS的架构设计和实现原理进行了详细的分析,这部分内容采用了总分总的结构,第6章对HDFS的各个实体和实体间接口进行了分析;第7章和第8章分别详细地研究了数据节点和名字节点的实现原理,并通过第9章对客户端的解析,回顾了HDFS各节点间的配合,完整地介绍了一个大规模数据存储系统的实现。
^ 收 起
比价列表
1人想要
公众号、微信群
缺书网
微信公众号
微信公众号
扫码进群
实时获取购书优惠
实时获取购书优惠