《Hadoop技术内幕》书评

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

此书一个严重的错误让我决定扔了它

 《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 Common和HDFS架构设计与实现原理》

Hadoop技术内幕 系列之 “Hadoop Common和HDFS”花了两周时间阅读,对于一个4年Java基础的我,还是承认有点儿深了,不过看完后,确实收获很多很多……看完后回想书中的很多技术点和概念,包括:阻塞/非阻塞IO,线程/守护线程/线程组/线程池/线程安全,远程调用/进程间通信,序列化,动态代理,设计模式,架构,优化,Linux文件系统等等其中在NameNode和DataNode介绍中,了解到Hadoop源代码中使用了大量线程相关技术,看完后,确实对以往写过的项目代码有了很多新的想法儿想要去重构或优化,这,我想是看完这本书之后最大的收货了,思路有些开……这本书的讲述方式采用代码结合文字描述对HDFS和Common相关部分涉及到的Java类,进行了详实全面的分析和解释,这种方式组织的内容可能有些枯燥,在阅读过程中有时感觉讲的深了,难了,可是多看两遍,理解了之后,感觉到Hadoop的设计巧妙和灵活,也就忘却了阅读带来的些许枯燥本来以为复杂且功能强大的Hadoop分布式文件系统,其实现是很难从源码角度理解的,通读此书后,感觉从概念到抽象,再到具体的Java实现,深刻体会到了面向对象的应用,感觉这本书写得实在是太精彩了,使我对Hadoop的底层原理实现,又有了新的认识和理解总之这本书个人还是比较推荐的,但是还是建议大家结合自身需求选择性阅读阅读此书,最好是有些Java线程,NIO,动态代理,文件系统等相关概念的基础,这样阅读起来会有助于理解

总体来说很不错

讲解浅显易懂,讲解了Common和HDFS主要结构,配合这这本书和源码,理解起来不难,章节的编排也很合理,很多知识点也可以独立成章,在每一个知识点,作者先是从整体上讲解组件的设计与构造,然后再从源代码的角度分析,很好理解,当然读这本书也需要一定的Java功底,也可以边读边学习Java的基础知识,推荐这本书。

这本书的姊妹篇

这本书的姊妹篇是《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》,具体见:http://book.douban.com/subject/24375031/ ,这本书从MapReduce角度深入剖析其实现原理,同样值得一看。


 Hadoop技术内幕下载


 

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

零度图书网 @ 2024