微信号:sagacity-mac

介绍:MacTalk 开通于2012年末,内容起于 Mac 而不止 Mac,内容覆盖了技术、创业、产品和人文思考.文风有趣,又有一点力量.相关图书《MacTalk·人生元编程》《MacTalk·跨越边界》

揭秘 Google 的大数据黑科技 | 极客时间

2019-04-15 17:06 池建强

题图:金门大桥

江湖传言,Google 这个公司特别鸡贼,他们一般是等到自己的下一代技术产品开发的差不多了,再对外开放「这一代」的技术,比如大数据领域的三驾马车:Google 文件系统 —— GFS 第一次公开发表论文是 2003 年,MapReduce 公开发表是 2004 年,BigTable 则公开发表在 2006 年。但这三种技术开放给业界的时间是 2010 年,说明 Google 很早以前就在内部使用这三驾马车了。

时至今日,三驾马车早已不在浪潮之巅。大数据发展和生态圈的繁荣程度,超乎想象。从 Spark 成为 Hadoop 生态的一部分,到 Flink 横空出世挑战 Spark 成为大数据处理领域的新星……终于,Google 2016 年 2 月宣布将自己的大数据产品(Google DataFlow)贡献给 Apache 基金会孵化,始有 Apache Beam,意图统一数据处理的标准。

时至今日,Beam 已经发布了 2.11 版本,Beam 的使用者也越来越多,关注度越来越高。不光外国公司 Google、Spotify、亚马逊、Data Artisans 等用上了 Beam,TensorFlow 机器学习框架也跟 Beam 结合使用做机器学习的预处理工作,国内包括阿里巴巴、百度、金山、苏宁、九次方大数据、360、慧聚数通信息技术有限公司等也在使用 Beam 进行大规模数据处理。

Beam 在发布第一个版本后,不断完善模型和运行平台。SDKs 也添加了许多 IO,例如消息中间件又新增了 ActiveMQ 和 RabbitMQ ,缓存新增 Redis ,大数据分析神器 Kudu,大数据存储格式 Parquet 等等。Runner 新增了实时流处理 Samza 和 JStorm、MapReduce 和加速 Hadoop 查询 Tez,此外新增了 Beam 部署 Docker 的 DockerCommand 接口 ,以及 Metrics 监控的引入和集成。其他 SDK 和 Runner 也在不断更新中,Beam 每 6 周发布一个小版本,及时完善了一些一次性未集成完善的功能。

下图是日益丰富的大规模数据处理技术生态:

丰富的工具,繁荣的生态,也增加了开发者选择合适工具的难度。把开源框架,工具,类库,平台整合到一起,所需要的工作量以及复杂度,可想而知。技术的选择与使用,也是大数据开发者非常头疼的问题。

为此我们找到了在 Google Brain 担任 AI Healthcare (人工智能的健康医疗应用) 领域资深工程师蔡元楠咨询,他具备丰富的大规模数据处理经验。

作者简介:曾任职于 Google 搜索广告系统和智能语音助手系统,目前在谷歌大脑工作。在 Google 除了技术工作外,还兼任 C++ 语言评审,AI 挑战赛评委会委员等。加入 Google 之前,分别在纽约哥伦比亚大学和上海交通大学获计算机硕士和信息工程学士学位,也曾在哈佛医学院执行官项目学习。

他的看法是:如果在处理大规模数据的时候没有自己的深层次思考,确实很容易陷入误区。而目前大家对于大数据处理的理解误区,一般有以下几种:

1.低估了数据处理的重要性。
我在 Google Brain 的AI应用领域工作,切身感受到没有高质量的数据处理,人工智能只有人工没有智能。例如在语义理解上,Google 就曾犯过这样的错误,直到被一家德国的小公司超过,才认识到高质量的数据标注和处理的重要性。

2.低估了数据处理工程师在组织架构上的重要性。
大数据领域泰斗级人物 Jesse Anderson 曾做过一项研究,一个人工智能团队的合理组织架构,需要 4/5 的数据处理工程师。其实,即使是一个写前端的工程师,很多工作还是数据处理。很不幸,很多团队没有认识到这一点。

3.低估了数据处理规模变大带来的复杂度。
很多人还没有遇到过「大规模」的问题,因此容易把问题想的过于简单。我在 Google 面试过很多优秀的候选人,他们对常见的编程问题可以很好的解决,但只要追问数据规模变大时怎么设计系统,他们的回答却并不让人满意。

4.高估了上手数据处理的难度。
一方面我们需要认识到大规模的数据处理是有复杂的因素的。但另一方面,有了正确的工具和技术理念,现在上手数据处理并不困难。在 Google,我见到很多应届生来了半年后也能轻松应对上亿的数据量。

如何解决这些问题呢?经过长时间的探讨,我们邀请蔡元楠在极客时间上开设了一个「大规模数据处理实战」的专栏,帮助你比别人更准确深入地掌握实用的大规模数据处理技术,揭秘 Google 黑科技,达到硅谷一线系统架构师的水平。

历经三个月的打磨,这个专栏今天正式上线。

专栏宗旨:培养 Google 工程师精神,敢于打碎任何权威,从问题出发思考最佳方案。

作者会从这两方面入手:一是为你介绍硅谷最前沿技术和真实的案例,例如最新的框架层面的前后端分离理念,和批处理流处理统一的思想。二是带你剖析技术框架产生的原因和他们解决的问题,让你在遇到相似的问题的时候,做到心中有数。

∆点击图片试看或订阅

专栏简介:

为了给读者设计一条切实可操作的学习路径,便于上手,作者会用 40+ 篇内容,分享他在 Google 的大数据处理实战经验:

第一部分,用实际的硅谷一线大厂的案例,向你解释 MapReduce 为什么不能应对最新的技术挑战。从实际的问题出发,从头开始引导读者怎样从顶层设计一个数据处理框架。

第二部分,结合实战案例,讲解在数据处理框架的使用和设计中,包括必需的基础知识。这些案例紧贴应用,也许就是你的团队明天会碰到的问题。

第三、第四部分深入拆解了 Apache Spark和 Apache Beam。不仅会用实际的案例教会你如何使用,还要教会你为什么它们这么设计,你会发现它们的设计其实大致和第一部分的顶层设计是一致的。这样下一次即使这个世界一无所有,你也能构建类似的框架解决一系列问题。

第五部分按 Google T6 级别设计的,是带着代码的真枪实弹架构设计。毫不夸张地说,能完整掌握第五部分的思想精髓,你就能比肩硅谷一线大规模数据处理架构师。

第六部分着重培养你的技术远见。因为是否能现在就开始准备应对10年后人类社会的技术挑战,是你拉开与别人差距的重要一站。

上新优惠,推荐你也加入学习

 
MacTalk 更多文章 许式伟:如何避免成为软件搬砖师 有技术背景的人为什么恁厉害? 李海鹏谈 996 秘籍:有意瞄准,无意击发 不增长就会死掉
猜您喜欢 从零开始学算法:4.二分查找 利用图像识别与OCR进行速度类测试 PRA是个啥?老板表示很满意! 不懂术语没法混啊! 8个超炫酷仿苹果应用的HTML5动画