对于我们这些文科,商科生来说。我们刚刚搞懂服务器,数据库,C++,java等基础语言是个什么东西的时候,大数据时代来了,科技蜀黍又玩起 Hadoop,HDFS,MapReduce,Common,Spark,Mahout,HBase,NoSQL,Cassandra,GFS, MapReduce, BigTable,Hive,Pig,python…… 这些蛇精病和大怪兽了。我不认识它们,还有什么妖怪没记进来的,请各位继续在评论里补充。
可各位大神能不能把这些混乱的技术妖词(对不起,正是因为不懂,所以很乱),做一个生态的比喻?比成,一棵树?一个城市?一个人的循环系统? 随便你比……总之让我们这些技术白痴也能搞明白,它们之间是什么关系,谁是干什么的?
我暂且就按照一个由远及近的顺序,按照时间的早晚从大数据出现之前的时代讲到现在。暂时按一个城市来比喻吧,反正Landscape的意思也大概是”风景“的意思。
早在大数据概念出现以前就存在了各种各样的关于数学、统计学、算法、编程语言的研究、讨论和实践。这个时代, 算法以及各种数学知识作为建筑的原料(比如钢筋、砖块),编程语言作为粘合剂(比如水泥)构成了一座座小房子(比如一个应用程序),形成了一小片一小片的村庄(比如一台服务器)。这个时代村与村之间还没有高速公路(GFS, HDFS, Flume, Kafka等),只有一条泥泞不好走的土路(比如RPC),经济模式也是小作坊式的经济。 一开始互联网并不发达,网速也不快,这种老土的方式完全应付得来,可是随着社交网络和智能手机的兴起,改变了这一切。网站流量成百上千倍的提高,数据变得更加多样化,计算机硬件性能无法按照摩尔定律稳定的提升,小村庄,小作坊生产的模式注定受到限制。人们需要更强大的模式...
起开始,人们以为只要有一个强大的中央数据库,也就是在所有的村庄之间建一座吞吐量巨大,并且兼容并蓄(非关系型,NoSQL)的仓库 ,用来中转每个村庄生产的大量异质货物就能够拉动经济的增长。可是没过多久,人们就意识到这是一个too young to simple的想法,因为这个仓库的大小也总是有上限的。
之后MapReduce的概念最早由 google提出,用来解决大规模集群协同运算的问题,既然一台计算机性能有限, 何不将他们联合起来?其野心勃勃,希望为每个村庄都建立一条”村村通“公路,也就是GFS了,就是Google分布式文件系统的意思,将不同服务器的硬盘连接起来,在外面看起来就好像一块巨大的硬盘 。然后构建与其上的 MapReduce就是一座工厂调度每个村庄的劳动力和物资,让这些村庄作为一个经济体运转起来。居民变得富裕起来了。
不过, 富裕起来的只有”谷歌镇“,世界的其他村镇仍然过着原始的生活。这个时候雅虎和Apache的一帮人本着独乐乐不如众乐乐的精神,仿造google的思想,创建了 HDFS(Hadoop 分布式文件系统,对应GFS)、Hadoop(对应google的MapReduce),并公开了全部的蓝图,供全世界免费使用 。这样整个世界到处都建立起来了工厂,人们变得富裕起来了。这个时代,Hadoop叫做大数据基础设施。
俗话说:饱暖思淫欲,工厂的领导不满足于村镇工厂的粗放型生产,也不再想雇用那么多的劳动力,所以 Mahout、HBase、Hive、Pig应运而生,他们都是数控机床,加工中心,只需要几名操作手就能够让整个工厂运转起来,自此人们安居乐业,丰衣足食。
当然,少数更有野心的资本家,不满足于现在的生产力,为了追求更高的利润(这是资本主义的本质),开发了效率更高的系统Spark,可以10倍于Hadoop的速度生产产品,新的时代才刚刚拉开序幕...