第一次见王晓华是他来我这里做培训,我正好路过门口,听见教室笑声震天,就好奇地伸头进去看看。一个胖胖的男孩在给一群我们新招的工作人员做培训,好像是在讲代码方面的问题。可以看得出他讲得非常好,底下的听讲者都在抬着头认真听他讲课。要知道其中不乏有清华北大的佼佼者,而他,却能够轻车熟路的引导他们的思路,驾驭整个课堂。

后来正式认识他也是机缘巧合,一位计算机专业的老同事问我有没有兴趣审阅一本云计算方面的书,当时云计算正好是IT热点,我也想乘此机会做一个了解,就欣然答应。因为我平常也做计算机方面的教学工作,对于教材好坏的敏感性是非常强烈的。有些书虽然署名是中国人,但是很多内容直接就是对外国教材的翻译,所谓翻译要做到“信雅达”,而往往连最基本的“信”都做不到,根本不适合初学者或者学生使用。因此当刚拿到这本书的初稿的时候,我也有疑虑,是不是又是一本翻译的书,他写的书我是不是能看懂。抱着这些疑问,我翻开书稿的第一页,从前言开始,娓娓道来的向我们展示了云计算编程的一个美丽而神秘的世界。全书使用浅显易懂的语句,对每个知识点进行重点分析,同时还举了大量的编程实例,向读者讲解每个类、每个语句的用法,还特别细心的对每条代码做出注释。其用心之严密,着实让人感叹。

后来我们正式见面于合肥工业大学的怡园,那天我记得很清楚,外面细雨打着蕉叶,我品着绿茶慢慢的陷入沉思。一声“杨老师”将我从思索的世界拉回现实。面前站立着一个带着眼镜,略微显得羞涩而紧张的男孩,从他那胖胖的身形,我依稀记得在哪见过面。“哦,你就是王晓华。”“嗯,是的,我是王晓华,谢谢您杨老师,抽时间给我审稿。”他首先向我表示感谢。我突然感觉也有点不好意思,因为其实我也不是太懂,部分是出于学习的目的审阅此书,而此时这个年轻人一口一个杨老师叫着,谦虚得很。

此次见面中,我们交谈甚欢,从Google的云计算谈起,谈到了Intel对Hadoop的支持,谈到了HDFS对商业存储领域产生的影响和其中蕴含商机,又谈到了MapReduce程序设计对大数据计算带来的变革。他一改初见我时青涩稚嫩的形象,夸夸而谈。可以看得出他对这行是真正用心去了解的人,也不由得使我对他刮目相看,萌生了为其作序的想法。这也就是这篇序的来历。

说了那么多下面介绍下这本书吧。本书讲的是MapReduce程序设计,这是一种面向互联网大数据处理的程序设计模型。MapReduce本身这个单词是由Map和Reduce构成,因此可以简单地将整个数据处理过程看成两个阶段,分别是“分解”(Map)以及“合并”(Reduce)。“分解”就是将整体数据分割成一个个的独立部分进行既定的处理,而原本的大数据整体并没有被修改。在进行分割处理的同时,也生成了一个专用的集合用于存储分解阶段所获得结果以供下一阶段使用。当然如果有必要,也可以在生成的集合上反复调用一些设计好的指令的,从而获得更为满意的结果。“合并”就是将生成集合内的数据内容重新合并成一个整体数据的过程,从而能够获得所需要的最终结果。

目前市面上已有一本《Hadoop权威指南第2版》,无可否认这是一部翻译的经典作品,将MapReduce程序精髓淋漓尽致的展现在读者面前。但是问题在于,最新版的Hadoop 2.0已经全面摒弃使用MapReduce 1.0的处理类和语句设计方法。因此对于学生和初学者来说,花费大量的时间去学习已经被明确放弃使用的东西,是很不合适的。而目前国内来说,这也是第一本介绍MapReduce 2.0程序设计的书籍,是对现阶段Hadoop知识体系的一个很好的补充。

我觉得,这本书是一本写给有志于致力大数据处理的人看的书,书中不仅有MapReduce程序设计的方法介绍,更多的是传递了作者对 MapReduce处理大数据理念的思考。我希望这本书能够将更多的读者和有志之士带入到大数据处理的这一条辉煌之路上来,造就更多的人才。

杨枢,计算机博士、资深讲师