大数据处理系统:Hadoop源代码情景分析
上QQ阅读APP看书,第一时间看更新

前言

这本书不是为所有想要对大数据有所了解的人而写。但是如果你有点野心,想对大数据处理系统有比较深入透彻的了解,特别是想有朝一日自己也设计一个这样的系统,甚至自己把它写出来,那么你真应该认真读一下这本书,以及Hadoop的源代码,看看人家是怎么设计怎么实现的。然后,在最后一章,再看看Spark又是什么样的,有些什么改进。你将看到,在一个计算机集群上构筑一个大数据处理系统,哪些成分是必不可少的,哪些方面又是可以改进的,它与操作系统的关系怎样,而作为大规模计算机集群的“操作系统”又可以和应该是什么样的。

不过我也尽力把它写成让非计算机专业的读者也能读懂,当然他们的困难会多一些,但也绝非无法理解。正因如此,我的叙述也许显得过于通俗直白,有时候可能还有点啰嗦。

我之起意写这本书,还是四年以前,当时的Hadoop还是1.x版,Spark还没有出来。当时我为连连支付的一群工程师开了个大数据与Hadoop的讲座,为要讲对并讲清,就得去抠源代码,既然这样,那何不干脆写成一本书?然而,此后Hadoop的源码发生了堪称翻天覆地的变化,从1.x版到2.0版是个重起炉灶式的改写,这让我对1.x版所做的研究几乎全都付诸东流。无奈之下,我也只得跟着重起炉灶。所以这本书的写作经历了那么长的时间,幸而现在终于要付印了。

除我本人的努力外,这本书的出版首先要感谢浙江大学出版社的樊晓燕和吴昌雷两位编辑,没有两位编辑的热情支持和辛勤劳动,本书的出版显然还要困难得多,他们那一丝不苟的风格也使我深受教益。

尤其要感谢的是我的恩师何志均教授。记得那时候我去看他,当时他身体尚好,聊起了刚刚兴起的大数据热潮,自然也就聊到了Hadoop。何老师说他的一个学生(杨小虎教授)对他说要像当年读Unix源码那样组织学生读Hadoop源码,我就说了想要写作本书的念头。他听后对我大加鼓励说,对对,你快把它写出来,就像那本Linux内核一样。后来,我去看他的时候他又曾问起写得怎么样了,那次还聊到了Spark,以及Spark与Hadoop间的竞争和比较。种种情景宛在眼前,但是何老师已经仙逝。我这一生中,最于我有恩的人就是何老师了。不是何老师的爱护和提携,我一个插队回城的超龄(已过当时报考大学的年龄限制)知青根本不会进计算机这个门,也进不了这个门,那也就不会有现在这本书了。

另外,我的几位老朋友也在本书写作的过程中给了我许多鼓励。胡希明教授就不用说了,我们两人同在连连支付担任顾问,常在一起喝茶闲聊或作不闲之聊,中间他给过我多少鼓励和启发也记不清说不明了。还有另一位王泽兵教授,当时在浙大城市学院当系主任,也曾邀请我去做过一次讲座,那也促使我萌生了写作本书的意向。当然还有别的朋友,特别是“弯曲的数据”微信群中的朋友们,这里就不一一细数了。这里,我要对胡老师、王老师等朋友一起致以真诚的谢意。

最后,关于本书内容的正确性和完整性,我自知水平有限,写了这么厚的一本书,要说没有错误我自己也不信,但是我又确实不知道错误在哪,凡是知道的都已改过来了,剩下的就是自己茫然无知的错误。现在这本书的内容是基于Hadoop 2.6版的,我已努力把这个版本的方方面面都写进本书,但实际上当然不可能面面俱到。所以,我衷心欢迎读者发现和指正我的错误,补充我的疏漏。

毛德操

2017年3月于杭州