spark会代替impala吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spark会代替impala吗相关的知识,希望对你有一定的参考价值。

应该不会,Impala是相当专注于传统企业客户和OLAP和数据仓库工作负载。Shark支持传统OLAP。

比较:
一、总体上
Shark扩展了Apache Hive,大大加快在内存和磁盘上的查询。而Impala是企业级数据仓库系统, 可以很好地使用Hive/ HDFS,从架构层来说,类似于传统的并行数据库。这两个系统有着很多共同的目标,但也有很大差异。
二、与现有系统的兼容性
Shark直接建立在Apache/Hive代码库上,所以它自然支持几乎所有Hive特点。它支持现有的Hive SQL语言,Hive数据格式(SerDes),用户自定义函数(UDF),调用外部脚本查询。因为Impala使用自定义的C++运行,它不支持Hive UDF。这两个系统将会与许多BI工具整合,这一直是Impala的主要目标。Shark正在被用于一些BI工具,如Tableau,不过这并没有被探索更多。
三、内存中的数据处理
Shark允许用户显式地加载在内存中的数据,以加快查询处理,其内存使用有效率的,压缩的面向列的格式。Impala还没有提供在内存中的存储。
四、容错
Shark被设计为支持短期和长时间运行的查询。它可以从查询故障恢复(感谢底层Spark引擎)。Impala目前是更侧重于短查询,不容错(如果节点发生故障,查询必须重新启动,对短查询来说这无疑是可以接受的)。
五、性能
做全面的比较太早了点。Shark和Impala都报告比Hive快10-100倍,但这都依赖具体情况和系统负载。两个项目也都在未来6个月内会做重要优化。以我们的经验来看,Sharkr当前版本,如果是内存的数据一般比Hive快100倍,如果是磁盘上的数据一般快5-10倍,这取决于查询(带关联连接的查询,能比Hive快很多)。
参考技术A 美国和加拿 轿车 Aveo Cobalt Malibu Impala Corvette Camaro。 皮卡 Colorado ...欧洲 轿车 Matiz/Spark Kalos/Aveo Lacetti Nubira/Lacetti Aveo Epica Lanos ...本回答被提问者和网友采纳

Spark SQL 会完全取代 Apache Impala 或 Apache Hive 吗?

【中文标题】Spark SQL 会完全取代 Apache Impala 或 Apache Hive 吗?【英文标题】:Will Spark SQL completely replace Apache Impala or Apache Hive? 【发布时间】:2016-10-25 09:37:38 【问题描述】:

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

我需要你的帮助。谢谢。

【问题讨论】:

【参考方案1】:

我想用实时场景来解释这个

实时生产项目:

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

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

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

所以对您的问题的回答是“否”火花不会取代蜂巢或黑斑羚。因为这三个都有自己的用例和优势,这些查询引擎的实施难易程度取决于您的 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

【讨论】:

【参考方案2】:

没有。 Apache Spark 是用于大数据处理的快速通用引擎,内置用于流式处理、SQL、机器学习和图形处理的模块。

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

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

参考:Differences between Hive and impala


Apache Spark 具有连接到各种数据源的连接器,并且它对数据进行处理。 Hive 提供了一个查询引擎,与 Spark 集成后有助于加快查询速度。

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

参考:Databricks blog

【讨论】:

【参考方案3】:

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

Apache Hive 更适用于查询延迟不是问题的批处理。例如基于日终属性的金融应用程序的数据处理(如收盘时的股票价值)

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

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

Hive 中缺少类似 SQL 的优美语法。 数据集 API 与 Scala 语言结构的不完全集成 在某些数据集操作中缺少编译时错误报告

【讨论】:

【参考方案4】:

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

【讨论】:

以上是关于spark会代替impala吗的主要内容,如果未能解决你的问题,请参考以下文章

Spark SQL 会完全取代 Apache Impala 或 Apache Hive 吗?

用于 ETL 的 Impala shell 或 Spark?

spark、hive、impala、hdfs的常用命令

Impala的SYNC_DDL

如何将 Spark 数据帧写入 impala 数据库

如何在 spark2 中读取 Impala 的 Kudu