译者序

Spark 开创至今,已经走过了近 12 年。12 年间,时代的脚步不断前进,我们看到互联网不断发展,各种初创公司崭露头角,在公司日常业务中需要处理的数据量也飞速增长。数据中心也从云下逐渐迁往云上,从单一云走向多云,批处理和流计算逐渐融合,数据仓库逐渐走向湖仓一体,集群资源调度也越来越轻量化。现在,Spark 即将发布 3.2 版本。从问世至今,Spark 不断增强,在大数据蓬勃发展的浪潮中占据越来越重要的位置。Spark 3.0 的发布标志着 Spark 进入了一个全新的时代,本书的第 2 版正是根据 Spark 3.0 编写的,兼顾旧版本保留的基本原理与大数据发展的新趋势,相信新老用户都可以从本书中得到新的收获。

8 年前,刚刚从大学毕业的我,有幸误打误撞地走进了大数据这个领域,第一次接触到各种各样的大数据软件。业界的这些大数据软件基本上是开源的,在大数据这个领域似乎商业软件完全无法望其项背。2014 年,我开始参与 Spark 社区的开发,当时 1.0 版本尚未发布,我对大数据也没有特别深入的认知,当时纯粹以自己掌握的数据库和编译原理的皮毛知识参与其中。在这个过程中,我看到了很多牛人的代码,也结识了很多社区大佬,渐渐对 Spark 有了一些了解。后来,我加入阿里云。在大量的客户支持工作中,我才逐渐对整个大数据生态有了一定的了解,也见证了 Spark 被越来越多的客户使用,替换原有的技术栈。毫无疑问,Spark 在开源软件中是比较成功的,活跃的开源社区为 Spark 贡献了非常多的重要功能和改进,日益好用的 Spark 也正是开源社区给所有人的回馈。在开源世界里,遇到问题谁都可以自己寻找解法,也可以和其他人一起交流、分享,越是流行的软件,发展得越快,也就越能及时跟上这个日新月异的时代。也许有一天,Spark 也会式微,但开源精神一定会继续发扬光大。对个人而言,开源是一种有趣的经历。有条件的话,你也不妨为开源贡献自己的一份力。

机缘巧合之下,我在 2015 年翻译出版了本书的第 1 版。从此,我好像和翻译结下了一段缘分。算下来,这已经是我翻译的第 4 本书了,每本都和 Spark 有关。虽然译文不是在社区免费公开的,但我觉得这也是对开源社区的一种贡献,所以尽管工作很忙,翻译收入很少,我也从未放弃。社区可以在一些商业公司的支持下运营,商业公司一般也能从开源软件中获利。图书的出版和发行则依赖出版商,作者与译者其实收益有限,尤其是译者(希望编辑老师没看到这里的“吐槽”,哈哈)。然而,虽然开源技术没有国界,但世界很大,人类终究说着不同的语言(哪怕代码世界都有那么多种不同的语言,甚至世界上最好的语言都有很多种),偏偏我们搞技术的,即使英文尚可,读起英文书也总是难以如母语般一目十行,由专人花时间把技术书翻译成母语的工作也还算有些价值。在这个过程中,我也一直保持着对原书的敬畏,用我有限的语文水平以及我对 Spark 的认识,尽量用平实而避免歧义的文字还原出原书的意思。希望你在阅读的过程中能够忘掉语言的差异,与 Spark 一起交个朋友。

本书的翻译从去年 10 月持续到今年 3 月。这段时间里的很多个夜晚,我伴着笔记本,在老婆孩子睡下之后完成每天的翻译目标。步入而立之年,我已经选择向不断冒出的白头发妥协,不再试图拔光它们;这段时间的努力则让我感觉毅力又一次得到了锤炼,向自己证明我还依然留有一丝不愿轻易低头的倔强。感谢家人的理解和支持,能让我在周末有机会睡会儿懒觉,感谢儿子,你无敌可爱的笑脸,即使是在每个深夜偶尔亮起的手机锁屏壁纸上,也能给我一刻放松。感谢同事、客户以及开源社区在工作中的关照,你们帮助我认识了大数据的奇妙世界。感谢原书的 4 位作者,感谢图灵公司引进本书,还有对我的又一次信任,感谢细心编辑审校的谢婷婷老师和杨婷老师,感谢其他为本书出版付出过努力的人们。

第 2 版相比第 1 版多了不少篇幅,涉及的内容也更为丰富。而 Spark 在原书写作完成之后,也有了不少更新。由于我水平有限,难免有纰漏之处,希望读者能不吝指正。若有疑惑之处,也不妨与我交流。我的邮箱是 [me@daoyuan.wang]。

王道远

2021 年夏末