You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

40 lines
5.7 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 080 | 亚马逊的大数据故事:从先驱者到插管吸血开源
全球的互联网大公司里面,如果说哪家公司最有争议性,亚马逊肯定是其中之一。在大数据发展历程中,亚马逊扮演的角色相当复杂,既曾是先驱者,也曾作为“吸血者”插管吸血开源社区。
此外,**亚马逊不仅充分利用Hadoop生态圈壮大了自己而且推出了一些特色化服务。亚马逊的大数据发展比较复杂它既有对大数据发展作出里程碑式贡献的一面也有利用了大数据圈的技术大量“插管吸血”却并不回馈社区的一面。** 今天,我们一起来看看亚马逊的大数据故事。
## DynamoNoSQL的先驱之一
除了谷歌,其他公司(比如微软)也或多或少对于大数据时代的发展有一些特色贡献。但**只有亚马逊的这篇名为《Dyanmo亚马逊的高可用键值存储》Dynamo: Amazons 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开源社区错了被亚马逊“合理利用”了呢还是亚马逊本身的做法值得商榷呢