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 吗?