作者:蔡斌、陳湘萍
定價:NT$ 1418
限量商品已售完
“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各节点间的配合,完整地介绍了一个大规模数据存储系统的实现。目录前言部分 环境准备第1章 源代码环境准备1.1什么是hadoop1.1.1hadoop简史1.1.2hadoop的优势1.1.3hadoop生态系统1.2准备源代码阅读环境1.2.1安装与配置k1.2.2安装eclipse1.2.3安装辅助工具ant1.2.4安装类unixshell环境cygwin1.3准备hadoop源代码1.3.1下载hadoop1.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.3javanio4.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文件系统api5.3分布式文件系统5.3.1分布式文件系统的特性5.3.2基本nfs体系结构5.3.3nfs支持的文件操作5.4java文件系统5.4.1java文件系统api5.4.2uri和url5.4.3java输入 输出流5.4.4存取文件5.5hadoop抽象文件系统5.5.1hadoop文件系统api5.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初识hdfs6.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和dataxceiver7.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到inode8.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认识dfsclient9.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.1fsshell9.5.2dfsadmin9.6小结作者介绍蔡斌,hadoop技术专家,基于hadoop的开源项目x-rime的作者之一。hadoop应用和源代码研究领域的先驱之一,有10余年开发经验,先后任职于朗讯科技、ibm中国研究院等外知名企业,目前担任数据平台部的高级工程师,从事hadoop相关技术的研究、应用和实施,实战经验非常丰富。对分布式计算、电信增值业务、网络管理等领域有深刻的认识和理解,拥有近10项发明,其中两项为美国,大部分与海量数据处理相关。近期关注海量数据的流式处理、hadoop上的大数据应用与挖掘等。陈湘萍,北京大学计算机系博士,目前就职于中山大学,专注于hadoop、云计算、软件中间件、模型驱动的软件工程等技术的研究和实践。拥有发明5项,参与1项国家电子行业标准的制定,发表学术论文10余篇。文摘1.connectionipc连接(connection)是ipc客户端和服务器关系的一个抽象,一个ipc客户端在调用服务器上的方法前,需要和服务器建立一个连接。由于客户端对连接的抽象与服务器端对连接的抽象不太一样,连接必须区分为客户端连接类client.connection和服务器连接类server.connection,它们各自提供了客户端和服务器管理连接需要的相关信息和方法。hadoop的远程过程调用使用tcp协议进行通信,ipc连接建立在tcp连接之上。(1)connectionld为了提高通信效率,客户端会复用到服务器的连接,并通过连接标识connectionid区分不同的连接。connectionld类图如图4.14所示。□address是远端服务器的地址,类型是isocketaddress,也就包括了主机名和服务器的监听地址。□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接口,并确认客户端有权利使用这个接口。
退換貨說明:
會員均享有10天的商品猶豫期(含例假日)。若您欲辦理退換貨,請於取得該商品10日內寄回。
辦理退換貨時,請保持商品全新狀態與完整包裝(商品本身、贈品、贈票、附件、內外包裝、保證書、隨貨文件等)一併寄回。若退回商品無法回復原狀者,可能影響退換貨權利之行使或須負擔部分費用。
訂購本商品前請務必詳閱退換貨原則。作者:蔡斌、陳湘萍
定價:NT$ 1418
限量商品已售完
“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各节点间的配合,完整地介绍了一个大规模数据存储系统的实现。目录前言部分 环境准备第1章 源代码环境准备1.1什么是hadoop1.1.1hadoop简史1.1.2hadoop的优势1.1.3hadoop生态系统1.2准备源代码阅读环境1.2.1安装与配置k1.2.2安装eclipse1.2.3安装辅助工具ant1.2.4安装类unixshell环境cygwin1.3准备hadoop源代码1.3.1下载hadoop1.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.3javanio4.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文件系统api5.3分布式文件系统5.3.1分布式文件系统的特性5.3.2基本nfs体系结构5.3.3nfs支持的文件操作5.4java文件系统5.4.1java文件系统api5.4.2uri和url5.4.3java输入 输出流5.4.4存取文件5.5hadoop抽象文件系统5.5.1hadoop文件系统api5.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初识hdfs6.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和dataxceiver7.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到inode8.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认识dfsclient9.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.1fsshell9.5.2dfsadmin9.6小结作者介绍蔡斌,hadoop技术专家,基于hadoop的开源项目x-rime的作者之一。hadoop应用和源代码研究领域的先驱之一,有10余年开发经验,先后任职于朗讯科技、ibm中国研究院等外知名企业,目前担任数据平台部的高级工程师,从事hadoop相关技术的研究、应用和实施,实战经验非常丰富。对分布式计算、电信增值业务、网络管理等领域有深刻的认识和理解,拥有近10项发明,其中两项为美国,大部分与海量数据处理相关。近期关注海量数据的流式处理、hadoop上的大数据应用与挖掘等。陈湘萍,北京大学计算机系博士,目前就职于中山大学,专注于hadoop、云计算、软件中间件、模型驱动的软件工程等技术的研究和实践。拥有发明5项,参与1项国家电子行业标准的制定,发表学术论文10余篇。文摘1.connectionipc连接(connection)是ipc客户端和服务器关系的一个抽象,一个ipc客户端在调用服务器上的方法前,需要和服务器建立一个连接。由于客户端对连接的抽象与服务器端对连接的抽象不太一样,连接必须区分为客户端连接类client.connection和服务器连接类server.connection,它们各自提供了客户端和服务器管理连接需要的相关信息和方法。hadoop的远程过程调用使用tcp协议进行通信,ipc连接建立在tcp连接之上。(1)connectionld为了提高通信效率,客户端会复用到服务器的连接,并通过连接标识connectionid区分不同的连接。connectionld类图如图4.14所示。□address是远端服务器的地址,类型是isocketaddress,也就包括了主机名和服务器的监听地址。□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接口,并确认客户端有权利使用这个接口。
退換貨說明:
會員均享有10天的商品猶豫期(含例假日)。若您欲辦理退換貨,請於取得該商品10日內寄回。
辦理退換貨時,請保持商品全新狀態與完整包裝(商品本身、贈品、贈票、附件、內外包裝、保證書、隨貨文件等)一併寄回。若退回商品無法回復原狀者,可能影響退換貨權利之行使或須負擔部分費用。
訂購本商品前請務必詳閱退換貨原則。請在手機上開啟Line應用程式,點選搜尋欄位旁的掃描圖示
即可掃描此ORcode