论文的意义

其实从我的角度来看,如果说搞清楚怎么用各类开源框架,是学会了武功中的基础“招式”。“招式”立刻就能用上,但是随着技术的发展,往往两三年就要更新迭代了。而看开源框架里的源码,是读到了对应武功“秘籍”。掌握“秘籍”能让你对很多事情如何实现知根知底,但是随着技术范式的迁移,也会有兴衰起落。而阅读论文就是去理解武功对应的“心法”,可以让你不仅仅是只学会今时今日有用,而是能做到一辈子都受益。

“三十八年过去,弹指一挥间。可上九天揽月,可下五洋捉鳖,谈笑凯歌还。世上无难事,只要肯登攀。”坚持学完一门课程并不容易,写完并写好一门课更难,希望你能和我一起,坚持走完这个旅程。在我看来,研读论文,进行工程上的创新和突破,是每一个优秀工程师的成年礼。

课程设计

基础知识篇:我会从最经典的 Google 三驾马车 GFS、MapReduce 和 Bigtable 这三篇论文开始,帮你理解大数据系统面对的主要挑战,以及应对这些挑战的架构设计方法。进一步地,我会带你一起来看大数据系统依赖的分布式锁 Chubby、序列化和 RPC 方案 Thrift,让你能够将架构设计和计算机结合到一起,掌握好计算机科学的底层原理。

数据库篇:一方面,我们会来研读 Hive、Dremel 和 Spark 的相关论文,了解我们是怎么迭代改进 MapReduce,从而满足海量数据下的高性能分析需求。另一方面,我们会一起来看 Megastore 和 Spanner,让你明白如何在 Bigtable 的基础架构上,逐步添加 Schema、跨行事务,直至完成了一个跨数据中心的分布式数据库。

实时处理篇:我会结合 Storm、Kafka 以及 Dataflow,带你了解现代大数据的实时处理系统是怎么逐步迭代,做到流批一体,达成批量和实时数据处理的统一的。

资源调度篇:通过解读 Raft、Borg 和 Kubernetes 的论文,帮助你厘清如何尽可能在一个数据中心里,合理地压榨资源、调度系统。

实战应用篇:学以致用,通过剖析 Facebook 数据仓库的逐步演进变化,以及 Twitter 如何使用大数据进行机器学习,让你理解如何通过分析问题、理解架构,将所学到的大数据知识串联起来。这样你在未来面对新的问题时,也能够找到精巧的解决方案

什么是大数据

“大数据”技术的核心理念是非常清晰的,基本上可以被三个核心技术理念概括。

第一个,是能够伸缩到一千台服务器以上的分布式数据处理集群的技术。 第二个,是这个上千个节点的集群,是采用廉价的 PC 架构搭建起来的。 最后一个,则是“把数据中心当作是一台计算机”(Datacenter as a Computer)。

三驾马车和基础设施

![[Pasted image 20211028213736.png]] GFS、MapReduce 和 Bigtable 这三驾马车的论文,就完成了“存储”“计算”“实时服务”这三个核心架构的设计。不过你还要知道,这三篇论文其实还依赖了两个基础设施。

第一个是为了保障数据一致性的分布式锁。对于这个问题,Google 在发表 Bigtable 的同一年,就发表了实现了 Paxos 算法的 Chubby 锁服务的论文(我会在基础知识篇“分布式锁 Chubby”这一讲中为你详细解读这篇论文)。

第二个是数据怎么序列化以及分布式系统之间怎么通信。Google 在前面的论文里都没有提到这一点,所以在基础知识篇的“通过 Thrift 序列化:我们要预知未来才能向后兼容吗?”我们会一起来看看 Facebook 在 2007 年发表的 Thrift 的相关论文。

![[Pasted image 20211028213855.png]]

olap oltp