Hadoop技术内幕

出版社:机械工业出版社
出版日期:2013-4
ISBN:9787111417668
作者:蔡斌,陈湘萍
页数:512页

章节摘录

版权页:   插图:   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接口,并确认客户端有权利使用这个接口。

前言

【前言】 为什么写本书互联网使得信息的采集、传播速度和规模达到空前的水平,实现了全球的信息共享与交互,它已经成为信息社会必不可少的基础设施,同时也带来了多方面的新挑战。2003年,Google发表了《Google File System》,介绍了Google海量数据处理使用的文件系统,使互联网时代的数据存储发生了革命性的变化。而Doug Cutting等人在Nutch项目上应用GFS和MapReduce思想,并演化为Hadoop项目,经过多年的发展,最终形成了包含多个相关项目的软件生态系统,开创了海量数据处理的新局面。Hadoop正是为了解决互联网时代的海量数据存储和处理而设计、开发的。简单地讲,Hadoop是一个可以更容易开发和并行处理大规模数据的分布式计算平台,它的主要特点是:扩展能力强、成本低、高效率、可靠。目前,Hadoop的用户已经从传统的互联网公司,扩展到科学计算、电信行业、电力行业、生物行业以及金融公司,并得到越来越广泛的应用。Hadoop作为一个优秀的开源项目,提供了一些文档和所有的源代码,但是,对于很多开发人员,仅仅通过一些简单的例子或教程学习使用Hadoop的基本功能是远远不够的。同时,随着云计算和大数据的发展,产业界正在经历一次重大变革,特别是基于云计算的海量数据处理,改变着我们思考的方式和习惯,开发者们越来越有必要去了解Hadoop的架构与设计原理。本书从源代码的层面上对Hadoop的公共工具Common和Hadoop的分布式文件系统HDFS进行了介绍,帮助广大开发者从架构与设计原理的角度去理解Hadoop,从而为更好地使用和扩展Hadoop打下坚实的基础。同时,Hadoop是一个使用Java语言实现的优秀系统,从事Java和分布式计算相关技术的开发者们能从它的源码实现中看到许多优秀的设计思想、对各种设计模式的灵活运用、语言的使用技巧以及编程规范等。这些都有助于加深开发者们对Java相关技术,尤其是Hadoop的理解,从而提高自己的开发水平,拓展自己的技术视野,为工作带来帮助。读者对象Hadoop开发人员对这部分读者来说,本书的内容能够帮助他们加深对Hadoop的理解,通过全面了解Hadoop,特别是HDFS的实现原理,为进一步优化、定制和扩展Hadoop提供坚实基础。学习分布式技术的读者Hadoop是一个得到广泛应用的大型分布式系统,开放的源代码中包含了大量分布式系统设计原理和实现,读者可以通过本书,充分学习、体验和实践分布式技术。学习Java语言的中高级读者Hadoop使用Java语言实现,它充分利用了Java的语言特性,并使用了大量的标准库和开源工具,很多功能的设计和实现非常优秀,是极佳的学习Java技术的参考资料。本书的主要内容本书主要分为三个部分。第一部分(第1章)对如何建立Hadoop的开发、分析环境做了简单的介绍。对于Hadoop这样复杂、庞大的项目,一个好的开发环境可以让读者事半功倍地学习、研究源代码。第二部分(第2~5章)主要对Hadoop公共工具Common的实现进行研究。分别介绍了Hadoop的配置系统、面向海量数据处理的序列化和压缩机制、Hadoop使用的远程过程调用,以及满足Hadoop上各类应用访问数据的Hadoop抽象文件系统和部分具体文件系统。第三部分(第6~9章)对Hadoop分布式文件系统进行了详细的分析。这部分内容采用总-分-总的结构,第6章介绍了HDFS各个实体和实体间接口,第7章和第8章分别详细地研究了数据节点和名字节点的实现原理,第9章通过对客户端的解析,回顾HDFS各节点间的配合,完整地介绍了一个大规模数据存储系统的实现。通过本书,读者不仅能全面了解Hadoop的优秀架构和设计思想,而且还能从Hadoop,特别是HDFS的实现源码中一窥Java开发的精髓和分布式系统的精要。勘误和支持由于作者的水平有限,编写时间跨度较长,同时开源软件的演化较快,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。如果大家有和本书相关的内容需要探讨,或有更多的宝贵意见,欢迎通过caibinbupt@qq.com和我们联系,希望能结识更多的朋友,大家共同进步。书中的源代码文件可以从华章网站下载。致谢感谢机械工业出版社华章公司的编辑杨福川和白宇,杨老师的耐心和支持让本书最终得以出版,白老师的很多建议使本书的可读性更强。感谢腾讯数据平台部的张文郁、赵重庆和徐钊,作为本书的第一批读者和Hadoop专家,他们的反馈意见让本书增色不少。感谢和我们一起工作、研究和应用Hadoop的腾讯数据平台部,以及IBM中国研究中心和中山大学的领导和同事们,本书的很多内容是对实际项目的总结。最后,作者向支持本书写作的家人深表谢意,感谢他们的耐心和理解。

内容概要

蔡斌,资深Hadoop技术专家,基于Hadoop的开源项目X-RIME的作者之一。国内Hadoop应用和源代码研究领域的先驱之一,有10余年开发经验,先后任职于朗讯科技、IBM中国研究院等国内外知名企业,目前担任腾讯数据平台部的高级工程师,从事Hadoop相关技术的研究、应用和实施,实战经验非常丰富。对分布式计算、电信增值业务、网络管理等领域有深刻的认识和理解,拥有近10项发明专利,其中两项为美国专利,大部分与海量数据处理相关。近期关注海量数据的流式处理、Hadoop上的大数据应用与挖掘等。
陈湘萍,北京大学计算机系博士,目前就职于中山大学,专注于Hadoop、云计算、软件中间件、模型驱动的软件工程等技术的研究和实践。拥有发明专利5项,参与1项国家电子行业标准的制定,发表学术论文10余篇。

书籍目录

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

编辑推荐

《Hadoop技术内幕:深入解析Hadoop Common和HDFS架构设计与实现原理》编辑推荐:(1)腾讯资深Hadoop技术专家撰写,EasyHadoop和51CTO等专业技术社区联袂推荐!(2)从源代码角度深入分析Common和HDFS的架构设计与实现原理,为Hadoop的优化、定制和扩展提供原理性指导。(3)从源代码中参透分布式技术精髓和分布式系统设计的优秀思想和方法。

作者简介

《Hadoop技术内幕:深入解析Hadoop Common和HDFS架构设计与实现原理》内容简介:“Hadoop技术内幕”共两册,分别从源代码的角度对“Common+HDFS”和MapReduce的架构设计与实现原理进行了极为详细的分析。《Hadoop技术内幕:深入解析Hadoop Common和HDFS架构设计与实现原理》由腾讯数据平台的资深Hadoop专家、X-RIME的作者亲自执笔,对Common和HDFS的源代码进行了分析,旨在为Hadoop的优化、定制和扩展提供原理性的指导。除此之外,《Hadoop技术内幕:深入解析Hadoop Common和HDFS架构设计与实现原理》还从源代码实现中对分布式技术的精髓、分布式系统设计的优秀思想和方法,以及Java语言的编码技巧、编程规范和对设计模式的精妙运用进行了总结和分析,对提高读者的分布式技术能力和Java编程能力都非常有帮助。《Hadoop技术内幕:深入解析Hadoop Common和HDFS架构设计与实现原理》适合Hadoop的二次开发人员、应用开发工程师、运维工程师阅读。
全书共9章,分为三部分:第一部分(第1章)主要介绍了Hadoop源代码的获取和源代码阅读环境的搭建;第二部分(第2~5章)对Hadoop公共工具Common的架构设计和实现原理进行了深入分析,包含Hadoop的配置信息处理、面向海量数据处理的序列化和压缩机制、Hadoop的远程过程调用,以及满足Hadoop上各类应用访问数据的Hadoop抽象文件系统和部分具体文件系统等内容;第三部分(第6~9章)对Hadoop的分布式文件系统HDFS的架构设计和实现原理进行了详细的分析,这部分内容采用了总分总的结构,第6章对HDFS的各个实体和实体间接口进行了分析;第7章和第8章分别详细地研究了数据节点和名字节点的实现原理,并通过第9章对客户端的解析,回顾了HDFS各节点间的配合,完整地介绍了一个大规模数据存储系统的实现。

海报:


 Hadoop技术内幕下载 更多精彩书评



发布书评

 
 


精彩书评 (总计4条)

  •      《hadoop技术内幕:解析mapreduce架构设计与实现原理》 p35页下方的图:----------------------------------------|-block1--|-- block2 --|-- block3--|----------------------------------------|<--- split1--->|<--- split2 --->|<--...----------------------------------------我们看看源码:-------------------------------------------------------------334 public List<InputSplit> getSplits(JobContext job) throws IOException {......343 long length = file.getLen();......356 long bytesRemaining = length;357 while (((double) bytesRemaining)/splitSize > SPLIT_SLOP) {358 int blkIndex = getBlockIndex(blkLocations, length-bytesRemaining);359 splits.add(makeSplit(path, length-bytesRemaining, splitSize,360 blkLocations[blkIndex].getHosts()));361 bytesRemaining -= splitSize;362 }363364 if (bytesRemaining != 0) {365 int blkIndex = getBlockIndex(blkLocations, length-bytesRemaining);366 splits.add(makeSplit(path, length-bytesRemaining, bytesRemaining,367 blkLocations[blkIndex].getHosts()));368 }-------------------------------------------------------------稍微解释一下源码:第357行的SPLIT_SLOP值为1.1,splitSize即每个block的大小(默认64MB), bytesRemaining的初始值为要分割文件的大小, ((double) bytesRemaining)/splitSize > SPLIT_SLOP 即用文件剩余大小除以每一个block的大小,如果该式的值大于1.1即,则按照block的大小和location来生成一个split, 之后文件剩余大小减去一个block大小(splitSize) (第361行)第364行,如果最后剩余文件的大小不足一个block大小,则将其单独作为一个split由此可见,split是以block为单位进行逻辑分割的, 一个split绝对不会横跨两个block!作者不仅此处犯了严重的错误,而且这两本书中大片摘抄《hadoop权威指南》中的内容,可以说是无耻,无能到了极点!书友们睁大眼睛看看吧,这就是国产书,总是这么让人失望。
  •     Hadoop技术内幕 系列之 “Hadoop Common和HDFS”花了两周时间阅读,对于一个4年Java基础的我,还是承认有点儿深了,不过看完后,确实收获很多很多……看完后回想书中的很多技术点和概念,包括:阻塞/非阻塞IO,线程/守护线程/线程组/线程池/线程安全,远程调用/进程间通信,序列化,动态代理,设计模式,架构,优化,Linux文件系统等等其中在NameNode和DataNode介绍中,了解到Hadoop源代码中使用了大量线程相关技术,看完后,确实对以往写过的项目代码有了很多新的想法儿想要去重构或优化,这,我想是看完这本书之后最大的收货了,思路有些开……这本书的讲述方式采用代码结合文字描述对HDFS和Common相关部分涉及到的Java类,进行了详实全面的分析和解释,这种方式组织的内容可能有些枯燥,在阅读过程中有时感觉讲的深了,难了,可是多看两遍,理解了之后,感觉到Hadoop的设计巧妙和灵活,也就忘却了阅读带来的些许枯燥本来以为复杂且功能强大的Hadoop分布式文件系统,其实现是很难从源码角度理解的,通读此书后,感觉从概念到抽象,再到具体的Java实现,深刻体会到了面向对象的应用,感觉这本书写得实在是太精彩了,使我对Hadoop的底层原理实现,又有了新的认识和理解总之这本书个人还是比较推荐的,但是还是建议大家结合自身需求选择性阅读阅读此书,最好是有些Java线程,NIO,动态代理,文件系统等相关概念的基础,这样阅读起来会有助于理解
  •     讲解浅显易懂,讲解了Common和HDFS主要结构,配合这这本书和源码,理解起来不难,章节的编排也很合理,很多知识点也可以独立成章,在每一个知识点,作者先是从整体上讲解组件的设计与构造,然后再从源代码的角度分析,很好理解,当然读这本书也需要一定的Java功底,也可以边读边学习Java的基础知识,推荐这本书。

精彩短评 (总计38条)

  •     深入到源码,很细致。有些小错误,不过不影响阅读。
  •     有点啰嗦,代码片段没头没尾的很难说能提高理解。
  •     全面了解了hadoop的内幕,真心觉得中大的教授挺好的
  •     注重细节,实战性非常强。是hadoop方面国内难得的好书,值得一读
  •     总的来说还可以。。毕竟市面上可供选择的也比较少
  •     Great book with valueable insight.
  •     有点深了,不如mapreduce通俗易懂,看了一半就看不下去了
  •     这本书讲得很透彻,和一些博客的内容深度差不多
  •     对于hdfs的源码理解有一定的帮助,不过这本书是基于1.0hadoop版本的
  •     很不错的一本书。
  •     错误太多,直接从博客上拷贝的,只是加了点源代码。
  •     从2013.12.10,断断续续读到2014.2.20,终于慢慢的把这种书看完了。期间有结合源码进行一些跟踪,记录一些笔记。对于第一次接触HDFS源码的我来说,第一遍阅读收获还是非常大的,前几章关于Hadoop Common和相关Java基础的介绍非常棒,读到后面关于NameNode、DataNode实现部分感觉有些吃力了。会是一本反复拿出来读一读的书,很细节,很清晰。
  •     内容还行,但有些章节似乎是直接从权威指南里翻译过来的,图也是按原样重画了一遍,有些反感。
  •     当然亚马逊本身的送货和订货都挺好的,以后看到计数内幕啊,深入啊,都是骗子!这个就是这里抄一段,那里抄一段,处处都是浅尝辄止。
  •     买了一套,共3本(包括深入解析MapReduce,Yarn),难得国内的作者能写出这么好的书,原理讲的非常清楚,逻辑很清晰。
  •     对于学习hadoop很有效,质量也很好
  •     这个系列中,董西城老师的关于mapreduce和yarn框架的两本我已经买了,还是挺好的,这本也想买的,可是看了一些在线试读,就不想买了,前面那几段,不是从其他书上抄过来的么?
  •     前半段读懂了,后半段代码看晕了,这书需要跟源码一起交叉阅读
  •     查礼竟然推荐这本书,真被商业化了?这本书工具书都算不上,更别说。。。还竟然敢叫内幕?“This man must be crazy"
  •     作者的技术功底还是非常深的,后面有些内容对我来说,看起来有些难度,非常敬佩作者的钻研精神,写得很细致,花了很多功夫,很负责。
  •     挺好,深入讲这方面的书不多,问题是觉得看完也没什么用
  •     内容有些概括,不详细。
  •     hdfs 相关的代码分析,个人认为是hadoop技术内幕系列中写得最厚实的一本,可能是hdfs本身的技术使然
  •     本想深入理解hadoop内部原理,但代码贴的好多,大致翻完了.。。。
  •     HDFS的内容是介绍的Hadoop1的。不过算是很详尽吧。就是叙述的时候有很多重复。当然了,重复也不是没有坏处,可以帮助复习:)
  •     挺不错的干货,虽然看不太懂
  •     半年多之前买的时候对这块不是很懂,但是书一直没搞出时间看。现在看了下,发现大多数内容并没啥用,要么太浅要么已经自己看代码懂了……
  •     想深入了解hadoop实现细节还是得看这本书
  •     作为国内作品,很多地方语句不通顺,google translate的味道很重。而且讲的是hadoop 1.x
  •     太啰嗦了
  •     书很一般,有大量的章节没有什么意义,只能当参考书,遇到不懂的时候,可以翻开看看,或许有些意想之外的收获,但是直接看的话,可能会很无聊,出书的老师。。。可能没把写书放在心上
  •     好书,实用,确实管用
  •     什么年头的书呀,里面的配置环境竟然是xp的,我去了》》》!
  •     学术气息过重,相同的内容(比如Hadoop自实现的序列化机制)比Hadoop权威指南这本外文书都要晦涩,内容当然好,希望能重视行文。
  •     还不错,适合我这种只想了解原理的人
  •     表示这本书上讲的在别人的blog里基本都有提到 算是一个社区贡献综合版吧 不是很给力阿 给个还行吧
  •     源码分析的文章能写的这么详细很厉害了 ~ 不过前面java的内容完全不需要啊 , 鸡肋了 ~
  •     第二章看完感觉一般般吧,想找些配置的详细信息,比如我想扩展Configuration的方法(我想直接set一个类,类里面含有信息),但是没有这方面的东西,其他章节还没有看,希望物有所值吧
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024