快速Hadoop分析(Cloudera Impala vs Spark / Shark vs Apache Drill)

时间:2013-06-25 06:18:53

标签: apache-spark bigdata impala apache-drill

我想做一些"接近实时" HDFS中数据的数据分析(类似OLAP) 我的研究表明,与Apache Hive相比,上述三个框架报告了显着的性能提升。有没有人对其中任何一个有一些实际经验?不仅涉及性能,还涉及稳定性?

2 个答案:

答案 0 :(得分:59)

Hive和Impala或Spark或Drill之间的比较有时听起来不合适。开发Hive和这些工具背后的目标是不同的。 Hive从未在内存处理中实时开发,并且基于MapReduce。它是为离线批量处理而构建的。最适合需要长时间运行的作业,执行数据繁重的操作,如非常庞大的数据集上的连接。

另一方面,这些工具的开发始终牢记real-timeness。当你需要查询不是非常庞大的数据时,可以去寻找它们,这些数据可以实时地适应内存。我并不是说你不能使用这些工具在你的BigData上运行查询,但是如果你在数据的PB上运行实时查询,那么你就会推动限制。

通常,您会看到(或读取)特定公司拥有多个PB数据,并且他们成功满足了客户的实时需求。但实际上这些公司大多数时候并不是在查询他们的整个数据。所以,重要的是正确的计划,when to use what。我希望你明白我想要的。

回到你的实际问题,在我看来,目前很难提供合理的比较,因为大多数这些项目还远未完成。他们还没有准备好生产,除非你愿意自己做一些(或者很多)工作。而且,对于这些项目中的每一个,都有某些特定于该特定项目的目标。

For example,Impala的开发是为了利用现有的Hive基础架构,因此您无需从头开始。它使用Hive使用的相同元数据。它的目标是在现有的Hadoop仓库上运行实时查询。而Drill被开发为not only Hadoop项目。并为我们提供跨多个大数据平台的分布式查询功能,包括MongoDB,Cassandra,Riak和Splunk。 Shark与Apache Hive兼容,这意味着您可以使用与Hive相同的HiveQL语句来查询它。不同之处在于,Shark可以返回比在Hive上运行的查询快30倍的结果。

目前Impala表现不错,有些人一直在使用它,但我对其余部分没有那么自信。所有这些工具都很好,但只有在你对数据进行试验后才能进行公平比较。并满足您的加工需求。但根据我的经验,Impala将是目前最好的选择。我并不是说其他​​工具不好,但还不够成熟。但如果您希望将它与已经运行的Hadoop集群(Apache的hadoop for ex)一起使用,您可能需要做一些额外的工作,因为Impala几乎被每个人用作CDH功能。

注意:所有这些都完全基于我的经验。如果您发现错误或不适当的地方,请告诉我。欢迎提出意见和建议。我希望这可以解答您的一些疑问。

答案 1 :(得分:2)

以下是来自加州大学伯克利分校AMPLab鲨鱼发展项目负责人Reynold Xin的"How does Impala compare to Shark?"的答案。