Spark SQL会完全取代Apache Impala还是Apache Hive?

问题描述 投票:4回答:4

我需要在我们的服务器上部署大数据集群。但我只知道Apache Spark的知识。现在我需要知道Spark SQL是否可以完全取代Apache Impala或Apache Hive。

我需要你的帮助。谢谢。

sql hadoop apache-spark hive impala
4个回答
7
投票

我想用实时场景解释一下

实时生产项目:

如果组织每天都在增加数据并且他们使用RDBMS数据进行查询,那么Hive主要用于存储数据/表并运行即席查询,然后他们可以使用HIVE。

Impala用于商业智能项目,其中报告通过一些前端工具完成,如tableau,pentaho等。

而Spark主要用于分析目的,开发人员更倾向于使用统计数据,因为他们也可以使用R launguage和spark来制作初始数据帧。

所以回答你的问题是“NO”火花不会取代蜂巢或黑斑羚。因为这三个都有自己的用例和好处,这些查询引擎也很容易实现,这取决于你的hadoop集群设置。

以下是一些有助于您更清楚地了解的链接:

http://db-engines.com/en/system/Hive%3BImpala%3BSpark+SQL

http://www.infoworld.com/article/3131058/analytics/big-data-face-off-spark-vs-impala-vs-hive-vs-presto.html

https://www.dezyre.com/article/impala-vs-hive-difference-between-sql-on-hadoop-components/180


5
投票

Apache Spark是一种快速通用的大数据处理引擎,内置模块用于流媒体,SQL,机器学习和图形处理。

Impala - Apache Hadoop的开源,分布式SQL查询引擎。

Hive - 一种类似SQL的接口,用于查询存储在与Hadoop集成的各种数据库和文件系统中的数据。

参考:Differences between Hive and impala


Apache Spark具有到各种数据源的连接器,它可以处理数据。 Hive提供了一个查询引擎,可以在与Spark集成时帮助更快地查询Spark。

SparkSQL可以使用HiveMetastore来获取存储在HDFS中的数据的元数据。此元数据使SparkSQL能够更好地优化其执行的查询。 Spark是查询处理器。

参考:Databricks blog


0
投票

这是个好问题。我认为不会。尽管Spark比其他两个更快,但它们中的每一个都有自己的目的和工作方式。例如,对于那些熟悉Query语言的人来说,Hive和Impala将是他们可以使用的,而Spark可以使用Hive Metastore来进行更好的优化。所以,我认为它不会被替代。


0
投票

Apache Impala提供对数据的低延迟访问,通常用于前端商业智能应用程序。

Apache Hive更适合于不考虑查询延迟的批处理。例如基于日终属性的金融应用程序的数据处理(如业务结束时的股票价值)

虽然Apache Spark具有从Streaming到Machine Learning的各种应用程序,但它也用于批量ETL处理。 Spark 2+中提供的增强的基于数据集的Spark SQL API以Catalyst Query Optimizer和WholeStageCodeGen的形式改进了组件。我观察到一些Hive脚本从HiveQL转换为Spark上的Scala,执行时间缩短了50-90%。

从HiveQL迁移到基于数据集的Spark API的一些挑战:

  • Hive中缺少类似SQL的甜蜜语法。
  • 数据集API与Scala语言结构的不完整集成
  • 在某些数据集操作中缺少编译时错误报告
© www.soinside.com 2019 - 2024. All rights reserved.