快速 Hadoop 分析(Cloudera Impala vs Spark/Shark vs Apache Drill)
Posted
技术标签:
【中文标题】快速 Hadoop 分析(Cloudera Impala vs Spark/Shark vs Apache Drill)【英文标题】:Fast Hadoop Analytics (Cloudera Impala vs Spark/Shark vs Apache Drill) 【发布时间】:2013-06-21 20:10:33 【问题描述】:我想对 HDFS 中的数据进行一些“近乎实时”的数据分析(类似 OLAP)。 我的研究表明,与 Apache Hive 相比,上述三个框架报告了显着的性能提升。有没有人对其中任何一个有一些实际经验?不仅关乎性能,还关乎稳定性?
【问题讨论】:
【参考方案1】: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 中的一些用例进行 POC,以获得一些实践经验。对我来说,它看起来比 Impala 有更好的文档记录(所有关于它的学术论文都可用),并且 API 简洁明了。但我们会看到......我还将 Hive 与实时框架进行了比较,因为它们倾向于将自己与它进行比较,而不是相互比较。可能是为了炫耀良好的性能提升.. 哦,绝对......你明白了:)..祝你的 POC 好运。 要记住的一件事 - Impala 有一个主要限制:您的中间查询必须适合内存。因此,如果您的 group by 查询超过 30GB(例如您的机器内存),在应用有效地将其修剪为 1MB 数据的 HAVING 子句之前,查询将失败。在 Apache Drill 等其他 MPP 引擎中并非如此。 "您现有的 Hadoop 仓库" - 如果您想查询 MongoDB,您可以使用外部表在 Hive 上使用 SerDer 来执行此操作?所以 Apache Drill 在这种可插入格式方面并没有任何优于 Impala 的优势。 我不认为“他们还不够成熟” 是有用的话。你能指出一些可验证的事实吗?我什至不确定暗示了什么。错误太多?不兼容?小社区?我只使用列表中的 Spark,但不会说我经历过其中任何一个。【参考方案2】:这是加州大学伯克利分校 AMPLab 鲨鱼开发工作负责人 Reynold Xin 对"How does Impala compare to Shark?" 的回答。
【讨论】:
以上是关于快速 Hadoop 分析(Cloudera Impala vs Spark/Shark vs Apache Drill)的主要内容,如果未能解决你的问题,请参考以下文章