新年新气象,给大家拜年。更新一篇等大家的红包。
上期我们讲了Impala,这个Hadoop批发商Cloudera推出来的有若干年头的,但却没有从Apache毕业的Hadoop上的数据查询分析系统。在这场战争里,当然不仅仅是Cloudera在战斗。今天我们来看看另外一个Hadoop批发商Hortonworks。
Hortonworks基本上就是Yahoo里的Hadoop团队减去被Cloudera挖走的Doug Cutting, Hadoop的创始人。这个团队的人做了不少东西,最初的HDFS和Hadoop MapReduce, ZooKeeper,以及Pig Latin。
HIVE 作为Hadoop上的SQL随着Hadoop的发展而风生水起。原来在Facebook里写HIVEd团队则渐渐的开始不再怎么工作,越来越抛弃HIVE了。爹不亲娘不爱的HIVE也有过可怜的时候。
但是HIVE实在是慢。应该说Hadoop MapReduce实在是慢。于是在Google的Dremel出来之后,在更高更快更强的目标驱动下,Hortonworks喊出了Make Apache Hive 100x Faster的口号。这就是著名的the Stinger Initiative。
Hortonworks本来是一个发明了Pig的公司。Pig是它们的亲儿子。现在他们作为一个新成立的公司,不像Cloudera或者MapR那样另起炉灶,却决定投入HIVE的怀抱,要把干儿子给捧起来,这画面不要太美。只是可怜了爹不亲娘不爱的Pig,最终只能是越来越衰败。一个写了Pig的公司,却要靠HIVE来活下去,不得不说是个很有意思的事情。这群人当初是不是长了Pig的脑子,所以才写出了Pig这个奇怪的东西,发明了Latin这种东西。只有一点看来是对了,就是给这个他们发明的语言取的名字。
Hortonworks的想法其实很简单,再造个车子不如修修车子然后刷个漆,顺便名正言顺的把自己变成爹妈。如果你去看2012年的HIVE PMC的成员,再看今天的,这个世界大变样了。2012年的时候Hortonworks还在努力为他们能塞进一两个PMC member而奋斗,如今的HIVE大半是Hortonworks的,小半是Cloudera的,这么多年来的努力没白费,总算把自己弄成HIVE的爹妈了。
Stinger具体到底做什么,其实一张图就可以说明了。下图是Hortonworks发布出来的三阶段的活来提高HIVE:
到今天来看,这三个阶段的活基本上都做了。ORCFile已经成为了Apache的顶级项目,在和竞争对手Parquet竞争。比较奇葩的是Impala是少数几种不支持ORC格式的查询语言。而更有意思的是Facebook作为HIVE的亲爹,则是早早的上了ORC这条贼船。公平一点来说,ORC的表现并不比Parquet差。但是一个阿帕奇居然还有两个顶级的Column store的格式,也是奇了怪了。
Tez作为一个有向无环图的执行引擎也已经成为了Apache的顶级项目,HIVE里面对于Tez的支持也做进去了。至于YARN这个资源管理器,现在也是Apache的顶级项目了。虽然说Impala自己并不喜欢YARN,它们自己在中间搞了一层。
无论如何来说,这些活,包括那个optimizer,包括pre-warmed container陆陆续续都做出来了,有些是2016年才最后进去的。但是实际的结果大家也看到了, HIVE有100x的速度吗?显然没有。如果有的话,那今天还要Impala Drill之类的鬼干嘛呢,HIVE早就应该一统江湖千秋万代了。
无论如何,HIVE的提速都离不开Hortonworks这个干爹的辛苦和努力,HIVE作为一个没有了亲爹的产品,又被干爹给罩着,日子过得不要太开心。而那个被亲爹抛弃的取名叫Pig的东西估计只能在黯然神伤的问Hortonworks,爹,你还爱我吗?