大数据那些事(8):HIVE之初期起

在大数据领域,发展到今天HIVE已经可以说过了集万千宠爱在一身的阶段。然而即使是过了气,我们依旧必须承认它还是有着极其巨大的影响力,广泛的使用率。无数的人依旧继续去优化,包括最新的HIVE2.1里面对内存计算的优化,无疑说明起码有一小撮人,以Hortonworks为代表的那一小撮人,依旧在努力的优化。从另外一个方面看,当红炸子鸡的Spark在支持SQL的时候也需要做到和HIVE的兼容,可见HIVE已经事实上成为了Hadoop平台上SQL和类SQL的标杆和事实的标准。

从历史发展的角度,我的确应该写一篇HIVE的文章。但是当我开始写的时候,我却觉得并不是很好写,无论从技术的角度上还是从八卦的角度上。很多东西都耳熟能详。我知道的多半大家都知道,大家都知道的小半我也不知道。所以这篇文章难免流于打酱油的嫌疑。

2008年的炎炎夏日,Hadoop的聚会在傻白甜活雷锋Yahoo的办公地点开了一圈又一圈。没有车的我跟着18摸的人(下一期公众号文章的主角们),去参加了好几次这样的活动。活动的开场大致是这样的。我们Hadoop现在又取得了伟大的成就啊,来,大家鼓掌。Yahoo的那几个后来或者离家出走或者被spin off,乃至导致了后来Hortonworks和Cloudera互相撕逼主角们那个时候还和和气气的露脸,和一群二愣子们一起鼓掌,吃垃圾食品,喝碳酸饮料。

这个时候通常出来的有个美国佬,我来说说我们最近在做的一个东西吧,小小的做machine learning的,Mahout。当然这个小小的慢慢也就变大了,慢慢大家发现大是够大的但是慢的可以。大公司比如Twitter上过贼船又下来了。所以Spark出来的时候大家欢欣鼓舞,很多时候也是因为Mahout太烂太慢。但是不管怎么样,出道早,就容易出名,无论是臭名还是好名声。

还有两个印度小哥,上来的时候笑的腼腆,一看就不是老江湖。恩,我们是从非死不可来的,我们最近在做一个东西叫做HIVE。这个东西是这样的,像SQL。我们叫它HIVE。过些天我们会给开源出来的。

有人问,这东西你们啥时候写的,用在非死不可里面了么?小哥们腼腆的说,你们知道的,非死不可的活很多的。但是我们经常有Hackathon, 我们的Hackathon都是从晚上6点开始到第二天早上,一个晚上让我们写很多东西。我们几次Hackthon下来也就出来了这个叫HIVE的东西。一副你懂的,我们很辛苦我们不能耽误正常的工作的样子和神情。当时我就说乖乖,非死不可不能去,白天要干活,晚上还要hackathon,那我是不是要挂了。所以一开始对这个公司就没有多好的印象了。

小哥们继续说,我们用SQL很久了,可是我们觉得SQL很别扭,明明应该是FROM … SELECT …,却偏偏搞成SELECT FROM WHERE,不知道是哪个傻蛋设计的。我们比那个傻蛋聪明多了,你看,在HIVE里面我们把它改回了FROM…SELECT…。确实我在这里必须给这两个小哥点个赞。SELECT FROM非常的反人类。只有18摸(IBM)这种能做出那么反人类的DB2的UI的地方出来的人才有可能搞出同样反人类的SQL啊。

当然随着HIVE的发展,FROM…SELECT…基本上都不提了,而SELECT FROM也支持了。但是各位看官不妨去试试,小哥们最初的FROM SELECT作为兼容性的需要应该还是保留了下来。

大概一年多以后我去开ICDE2010年得会,遇到了另外一个印度小哥,是Jeniffer Widom的学生,暂时quit了PhD,去非死不可组上班。一聊天,不得了,做的是HIVE。也就是那一年姗姗来迟的HIVE的论文发了出来。再一聊天,那俩开发HIVE的印度小哥们都升职了,不一样了。这个小哥一样的淳朴,告诉我写这篇paper他花了多大多大的力气但是却没有得到多么多么靠前的名字。我只能笑笑说,做得多不如做的早啊,你要是早点进HIVE不但论文你名字靠前,而且还能做出更好的design啊。印度小哥们都有很淳朴的过去啊。

后来再追寻一下,这俩印度小哥很长时间一直在HIVE的PMC里面,大概一直到2014年的样子吧。他们早不在非死不可,自己搞了个创业的大数据公司。再后来,一群做Pig的人看上了HIVE的资产,同样看上的还有第一批发商Cloudera。 Hortonworks先是塞进了一个PMC,然后就开始梦塞PMC,到今天,HIVE里这俩小哥已经除名了,Hortonworks和Cloudera基本上大半和小半的江山了。Cloudera因为自己战略需要,只是在HIVE插一脚,做一些企业客户需要的比如安全方面的东西,Hortonworks则在战略层面提出了要努力提高HIVE的性能,不需要其他的轮子。于是TEZ也上了,那个战略有个名字叫Stiner。

做Pig的人成了HIVE的主力,做HIVE的人却不知道去哪里了,鸠占鹊巢的故事哪里都能发生。

关于HIVE,说白了就是因为在Hadoop里面的整个stack它最像SQL了,加之又起来的早,所以一堆做database的人就把脚查插进来,越做越像是一个数据仓库的鬼东西了。这就是站在风口飞起来的猪,虽然说这猪的肉实在都不怎么样,卖相还可以就先凑合了。只不过我不太清楚那个当年Hackathon赶出HIVE的两位对于HIVE变成今天这样是什么感触。当然有一点可以肯定,HIVE这个project 非死不可其实不怎么在乎,而两个小哥对于整个codebase的控制能力有限,所以作为结果,这和很多的其他开源项目不一样,在HIVE里面是两拨人在弄,都不是原来的主人。这比起Spark主要在Databricks的掌控下,Kafka主要是linkedin出来的人在负责一般,是有很大的不同的。很多时候,项目的创始人对项目有主导权,就更容易推进这个项目健康有效率的发展,而一堆人在里面开始扯皮,事情就不好说了。Hadoop在两年内没出一个新版本就是一个很好的例子。仅仅从这个角度看我也觉得Spark将来一统天下的概率非常的高,我非常的看好啊。

HIVE的早年就需要metastore,这个metastore的主流选项是某个关系数据库,当然也可以写入HDFS。后来这个东西大概在2011年左右被抽出来变成了HCatalog,而HCatalog之后也就成了很重要的一个组成部分。

我其实是非常喜欢metadata store这样的东西的,但是我对HIVE的这个东西,尤其早年的版本非常的痛恨。因为你对它进行的操作都是metadata only,data还需要自己手动去清理。如果不这样做的话metadata和data之间的一致性问题就没办法保证了。现在都21世纪了,做个东西不能做成玩具一样,不然的话,谁能用得舒服呢?

我想HIVE的成功证明了风口的猪总是会飞的。也证明了蜀中无大将廖化作先锋这句话很有道理。只是今天HIVE在不停的发展,只要有公司还愿意不停砸人砸钱进去,HIVE和其他SQL on Hadoop的竞争就不会停止。Spark,比如说,的压力就一定多多少少的会存在。但是有压力才有动力么,我特别想知道最后到底谁能一桶浆糊。目前看起来Spark最有这个可能。但是计算机领域实在是变化太快了。
转自:飞总聊IT