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

use*_*380 41 bigdata impala apache-spark apache-drill

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

Tar*_*riq 60

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

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

  • 谢谢全面的答案.它似乎在大多数方面证实了我的研究结果.现在我正在将我的一些用例用于Spark,以获得一些实践经验.对我而言,它看起来比Impala更好(有关它的所有学术论文都可用)并且API简洁明了.但我们会看到..我还将Hive与实时框架进行了比较,因为它们倾向于将它们与它们相互比较.可能是为了展示出色的性能提升.. (2认同)
  • 我不认为_"他们还不够成熟"_是一个有用的说法.你能指出一些可证实的事实吗?我甚至不确定隐含的是什么.太多的错误?不兼容的问题?小社区?我只使用列表中的Spark,但不会说我经历过这些中的任何一个. (2认同)