搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
Hadoop技术内幕:深入解析Hadoop Common和HDFS架构设计与实现原理:in-depth study of common and HDFS
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787111417668
  • 作      者:
    蔡斌,陈湘萍著
  • 出 版 社 :
    机械工业出版社
  • 出版日期:
    2013
收藏
编辑推荐
  

海报:
   
  

展开
作者简介

  蔡斌,资深Hadoop技术专家,基于Hadoop的开源项目X-RIME的作者之一。国内Hadoop应用和源代码研究领域的先驱之一,有10余年开发经验,先后任职于朗讯科技、IBM中国研究院等国内外知名企业,目前担任腾讯数据平台部的高级工程师,从事Hadoop相关技术的研究、应用和实施,实战经验非常丰富。对分布式计算、电信增值业务、网络管理等领域有深刻的认识和理解,拥有近10项发明专利,其中两项为美国专利,大部分与海量数据处理相关。近期关注海量数据的流式处理、Hadoop上的大数据应用与挖掘等。

  陈湘萍,北京大学计算机系博士,目前就职于中山大学,专注于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各节点间的配合,完整地介绍了一个大规模数据存储系统的实现。

展开
精彩书评

  经过几年的快速发展,Hadoop已经成为大数据时代存储和处理海量数据的事实标准,具有高可靠性、高扩展性、高效性和高容错性等许多优点,在学术界备受关注,在业界则更受欢迎。Hadoop的功能非常强大,与之相伴的是使用上的复杂性,如何才能更好地使用Hadoop,更好地对Hadoop进行性能优化、扩展和定制?阅读和研究它的源代码是一种不错的选择。“Hadoop技术内幕”这两本书根据读者的需求,对Common、HDFS和MapReduce等核心技术的架构设计和实现原理进行了深入且详细的分析,对于想了解Hadoop工作机制的读者来说,这两本书应该是十分难得的,强烈推荐。
  —— EasyHadoop开源技术社区,致力于Hadoop的易用和普及

  Hadoop是近两年来技术领域最热门的话题,从媒体界,到学术界,再到企业界,都给予了高度关注。在企业界,Hadoop的应用已经非常广泛,不仅在IT领域被广泛使用,而且在金融、电信、生物、医药、制造等传统领域也十分受欢迎,有海量数据需要处理的地方,就能用上Hadoop。尤其是在IT领域,从国外的Google、Yahoo、Microsoft、Oracle、Facebook,到国内的阿里巴巴、淘宝、腾讯、百度、新浪、搜狐,都在Hadoop的研发和应用上投入了大量的人力和资金,并获得了丰厚的收益。随着Hadoop越来越普及,用户遇到的问题也会越来越多,越来越复杂。要解决实际生产环境中可能遇到的复杂问题,掌握Hadoop本身的设计和实现原理是根本之道。“Hadoop技术内幕”这两本书就本着这个目标出发,从源代码的角度对Hadoop的工作机制进行了深入的分析,并对实践中可能会遇到的各种问题给出了解决方案。
  —— 童小军 资深Hadoop技术专家、企业级大数据解决方案RedHadoop创始人

展开
精彩书摘

  1.Connection
  IPC连接(Connection)是IPC客户端和服务器关系的一个抽象,一个IPC客户端在调用服务器上的方法前,需要和服务器建立一个连接。由于客户端对连接的抽象与服务器端对连接的抽象不太一样,连接必须区分为客户端连接类Client.Connection和服务器连接类Server.Connection,它们各自提供了客户端和服务器管理连接需要的相关信息和方法。Hadoop的远程过程调用使用TCP协议进行通信,IPC连接建立在TCP连接之上。
  (1)COnnectionld
  为了提高通信效率,客户端会复用到服务器的连接,并通过连接标识ConnectionId区分不同的连接。Connectionld类图如图4.14所示。
  □address是远端服务器的地址,类型是InetSocketAddress,也就包括了主机名和服务器的监听地址。
  □ticket的类型是UserGroupInformation。UserGrouplnformation在org.apache.hadoop.security包中定义,由类名即可知道,它包含了用户和用户所在用户组的一些信息。
  □protocol属性的类型是Class<?>,它保存的是IPC接口对应的类对象(注意:Class类的实例表示正在运行的Java应用程序中的类和接口)。
  在上述三个成员变量都相等的情况下,ConnectionId相等。连接复用指具有相同ConnectionId的多个IPC客户端共享同一个IPC连接。如果Connectionld中的成员变量有不同(如用或不用ticket),创建到同一IPC服务器上同一IPC接口的两个客户端,则这两个客户端会分别使用不同的IPC连接。连接复用一方面可以减少Hadoop IPC服务器/客户端上资源的占用,同时节省了复用连接客户端建立IPC连接的时间。
  (2)ConnectionHeader
  与IPC连接相关的另一个类是连接消息头ConnectionHeader,它在ConnectionHeader,java中定义。ConnectionHeader是客户湍与服务器间TCP连接建立后交换的第一条消息,携带的内容包括Connectionld中的用户信息和IPC接口信息(ConnectionHeader当然不需要携带服务器地址),这两个域用于检查服务器是否实现了IPC接口,并确认客户端有权利使用这个接口。
  ……

展开
目录

?前言
第一部分 环境准备
第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小结

展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证