Hadoop生态系统中,如果存在一个领域是竞争最激烈的,那一定是SQL on Hadoop!
Apache Hive可以说是最早的SQL on Hadoop产品,但是由于原始版本SQL结果响应速度太慢,各个厂商开始对其进行优化,与此同时开始寻找更好的解决办法。
对Hive的优化主要集中在两个方面:计算引擎与数据存储格式。为了获得更高的性能和更快的交互,在计算引擎方面,放弃MapReduce采用Tez、Spark或特定的引擎;在数据存储格式方面,使用列存储格式(如ORC、Parquet),因为面向列的存储格式更适合统计分析型的场景。
当前Hive支持多引擎:MapReduce、Tez、Spark,也支持多存储格式:ORC、Parquet等。
当然,除了Hive我们还有更多的选择:
Apache Hive
Facebook Presto (Facebook用来替换Hive)
Cloudera Impala (使用C++开发)
Apache Drill
Apache Kylin
Apache Tajo
Apache Phoenix (基于HBase)
Apache Spark-SQL
Apache Storm-SQL (流处理统计分析,开发中)
上面罗列的SQL on Hadoop产品适用于不同的场景,将所有的进行对比没有意义。如果只是打算用来替换旧版本的Hive,从性能角度推荐的选择有Presto、Impala,如果刚好你热衷于Java,那就选择Presto吧。