极客时间已完结课程限时免费阅读

080 | 亚马逊的大数据故事:从先驱者到插管吸血开源

080 | 亚马逊的大数据故事:从先驱者到插管吸血开源-极客时间

080 | 亚马逊的大数据故事:从先驱者到插管吸血开源

讲述:秭明

时长05:51大小3.71M

全球的互联网大公司里面,如果说哪家公司最有争议性,亚马逊肯定是其中之一。在大数据发展历程中,亚马逊扮演的角色相当复杂,既曾是先驱者,也曾作为“吸血者”插管吸血开源社区。
此外,亚马逊不仅充分利用 Hadoop 生态圈壮大了自己,而且推出了一些特色化服务。亚马逊的大数据发展比较复杂,它既有对大数据发展作出里程碑式贡献的一面,也有利用了大数据圈的技术大量“插管吸血”却并不回馈社区的一面。 今天,我们一起来看看亚马逊的大数据故事。

Dynamo:NoSQL 的先驱之一

除了谷歌,其他公司(比如微软)也或多或少对于大数据时代的发展有一些特色贡献。但只有亚马逊的这篇名为《Dyanmo:亚马逊的高可用键值存储》(Dynamo: Amazon’s Highly Available Key-value Store)的论文,是唯一一篇可以和谷歌“三驾马车”并驾齐驱,具有同样影响力的论文。 这篇论文发表于 2007 年的操作系统顶级会议 SOSP 上,它们共同开启了大数据时代。
在 2017 年上海举办的 SOSP 会议上,这篇论文荣获了 SIGOPS 名人堂奖(Hall of Fame Award, HoF)。这是操作系统领域里面的大奖,专门用来表彰那些发表 10 年以上,对业界产生了深远影响的论文。
Dynamo 和 BigTable 功能上很像,也是一个 NoSQL。但是两者在实现方式上非常不一样。简单来说,BigTable 基于排序来实现的 ,而 Dynamo 则基于哈希去实现,当然技术细节不在本文的探讨范围之内。但是,值得注意的是,亚马逊第一次给大家展现了一个全新的键值存储系统(Key-Value Store)是怎么实现的。
Dynamo 也有开源的产品实现,即 Cassandra。Cassandra 先由 Facebook 开发并开源,后期则由 DataStax 公司维护。亚马逊 AWS 把 Dynamo 以 DynamoDB 的名字推出来给客户使用,现在 DynamoDB 是 AWS 历史最为悠久、用户量最大的产品之一。
Dynamo 论文发表之后,据说在亚马逊内部掀起了轩然大波。很重要的一个原因是,亚马逊传统上是不发表自己的核心技术的。 所以虽然说亚马逊有全世界最好的编译和软件部署系统阿波罗(Apollo)和最好的版本控制系统巴西(Brazil),但是外界对于亚马逊到底是怎么实现这些东西的并不知晓。
谷歌也在一定程度上奉行这个策略,但是要好一些。比如说,谷歌虽然公布了“三驾马车”,但那是在技术成熟,下一代产品基本就位的时候才公布上一代产品的。至于谷歌最核心的基于容器的调度系统,则有十余年一直被当作核心机密。直到 2015 年,因为 Docker 已经大行其道了才公开。
而亚马逊基本上是完全不公布的政策,而 Dynamo 显然打破了这个规则。有传言贝佐斯对于 Dynamo 团队发表这篇论文,导致亚马逊核心技术泄露表达了强烈不满。这个传言真假不得而知,但是不管怎样,我们能够看到亚马逊后来在核心技术论文发表方面,又小心翼翼起来。

Elastic MapReduce

如果说 Dynamo 和后来商业化的 DynamoDB 是亚马逊带给整个大数据领域不可磨灭的贡献,亚马逊作为大数据的“先驱者”也因为这篇论文而名垂青史了,Elastic MapReduce 这个云端产品带给亚马逊的则是滚滚财富。
伴随着 Hadoop 生态系统的成熟,很多围绕这个生态圈的创业公司诞生了,这包括后来很著名的 Hadoop 三大发行商:Cloudera、Hortonworks 和 MapR。亚马逊作为一个云厂商,也进入了这个市场,它推出的产品叫作 Elastic MapReduce。
在如何对待开源产品这个事情上,我们必须说,亚马逊和其他公司有很大不同。其他公司不论出于什么样的目的,都或多或少对开源产品本身做出了很大的贡献。Hadoop 的三大发行商在很大程度上维护了 Hadoop 基础架构的开发,Cloudera 和 Hortonworks 一度是 Pig 和 Hive 最重要的维护者。各大社交媒体公司也纷纷开源了很多自己的系统,来丰富整个生态圈。这些公司都对 Hadoop 核心代码做出了很多贡献。
但是亚马逊对于整个 Hadoop 生态圈的贡献,除了如何去连接它自己的云服务(比如 S3)以外,善乏可陈。亚马逊做的事情,典型的做法就是把已成熟的开源社区产品拿过来,在内部做二次开发,以便能够在亚马逊的云端很好得运行。然后,就没有然后了。亚马逊并不会给开源社区贡献自己的核心代码。
一方面来说,因为 Hadoop 生态圈本身就意味着对机器资源的大规模消耗。所以任何使用 Hadoop 的人,在亚马逊的 AWS 服务上,都必然会支付不菲的金钱。因此,亚马逊的 AWS 得到了快速发展。
另外一方面,S3 本身就是世界上最大的存储服务,无数公司把数据存储在 S3 里。AWS 的 Elastic MapReduce 可以有效整合 S3 的数据读写,这也让用户更加离不开 AWS 这个生态圈。
如果我们回过头来看,整个大数据历史的发展中,如果说哪个公司最得利,没有任何一家公司比得上亚马逊的,大数据的发展很大程度上也是亚马逊云计算业务的发展过程。那么,亚马逊对开源的贡献是什么呢?对 Hadoop 生态圈的贡献又是什么?或许,在这一点上还是未来值得思考和期待的事情吧。
有关亚马逊的大数据先驱者和“插管吸血”开源社区的故事就讲到这里了。亲爱的读者,你觉得这种状态是 Hadoop 开源社区错了,被亚马逊“合理利用”了呢?还是亚马逊本身的做法值得商榷呢?
分享给需要的人,Ta购买本课程,你将得20
生成海报并分享

赞 3

提建议

上一篇
079 | 微软的大数据发展史:Azure的大数据发展
下一篇
081 | 亚马逊的大数据故事:创新和拿来并存的云服务
unpreview
 写留言

精选留言(8)

  • 梦朝思夕
    2019-02-15
    最近很多开源软件更改许可证就是因为云厂商的吸血行为
    4
  • prime
    2019-07-19
    商人可能只追逐利益,但是程序员群体中总有抱有理想的,亚马逊这样做,很容易被抱有理想的程序员所不耻,互联网的本质就是分享,在保证自己既得利益的情况下,分享不仅在大方向上维护了自己的利益,也会赢得其他人的尊重,有所取也要有所付出,整个人类社会就是在相互借鉴科技的情况下滚滚向前的

    作者回复: 亚马逊就是这样的成为了世界上市值前三的公司,呵呵

    3
  • GeekAmI
    2018-06-04
    贝索斯毕竟是精明的商人...
    3
  • 张珮磊想静静
    2020-03-29
    感觉谷歌和亚马逊代表了两个开源的演进方向,一个是亚马逊这样将开源产品二次开发,放到自己的云服务;二是像谷歌那样,开源的时候,内部其实已经有了更高水平的产品,开源出来无伤大雅,反而还提高技术影响力和诱导外界的技术方向
    1
  • 小侠
    2019-11-24
    只索取不贡献
    1
  • 村长@极客时间
    2019-02-24
    听起来像是其他几个发行商的核心技能不够厉害,不能更好无可替代的变现,而亚马逊的有更硬核的技术。但是很厉害核心的不分享,稍微不那么核心的是没有还是不拿出来?为啥这么自私?为啥外界的声音对他毫无作用?
    1
  • Garwen
    2018-12-12
    只能说亚马逊不讲究吧,随着cloudera和horton合并,下一代大数据技术的出现会是s3存储的生死存亡点了
    1
  • 宋词
    2018-06-04
    1. 商业无关乎对错,只有利弊;aws没错,为亚马逊客户构建更好用的aws,何错之有? 2. 开源玩法变了,其他发行商没有跟上云计算变化。