总体设计 Hive on Spark总体的设计思路是,尽可能重用Hive逻辑层面的功能;从生成物理计划开始,提供一整套针对Spark的实现,比如SparkCompiler、SparkTask等,这样Hive的查询就可以作为Spark的任务来执行了。以下是几点主要的设计原则。 尽可能减少对Hive原有代码的修改。这是和之前的Shark设计思路最大的不同。Shark对Hive的改动太大以至于无法被Hive社区接受,Hive on Spark尽可能少改动Hive的代码,从而不影响Hive目前对MapReduce和Tez的支持。同时,Hive on Spark保证对现有的MapReduce和Tez模式在功能和性能方面不会有任何影响。 对于选择Spark的用户,应使其能够自动的获取Hive现有的和未来新增的功能。 尽可能降低维护成本,保持对Spark依赖的松耦合。
使用Hive原语 这里主要是指使用Hive的操作符对数据进行处理。Spark为RDD提供了一系列的转换(Transformation),其中有些转换也是面向SQL的,如groupByKey、join等。但如果使用这些转换(就如Shark所做的那样),就意味着我们要重新实现一些Hive已有的功能;而且当Hive增加新的功能时,我们需要相应地修改Hive on Spark模式。有鉴于此,我们选择将Hive的操作符包装为Function,然后应用到RDD上。这样,我们只需要依赖较少的几种RDD的转换,而主要的计算逻辑仍由Hive提供。
ref:
Intel李锐:Hive on Spark解析
http://www.aboutyun.com/thread-12334-1-1.html
相关推荐
本压缩包“spark--bin-hadoop3-without-hive.tgz”提供了Spark二进制版本,针对Hadoop 3.1.3进行了编译和打包,这意味着它已经与Hadoop 3.x兼容,但不包含Hive组件。在CentOS 8操作系统上,这个版本的Spark已经被...
然而,有时我们可能需要在不依赖 Hive JAR 包的情况下,使用 Spark 处理 Hive 上的数据,这就是"spark-2.3.0-bin-hadoop2-without-hive"这个软件包的目的。 Spark 2.3.0 是一个强大的分布式计算框架,其性能和灵活...
hive2.1.0 --- spark1.6.0 hive on spark的spark包,这个是已经经过./make-distribution.sh --name "hadoop2-without-hive" --tgz "-Pyarn,hadoop-provided,hadoop-2.4,parquet-provided"编译后的了spark-1.6.0-bin-...
hive-on-spark客户端
"spark-2.0.0-bin-hadoop2-without-hive.tgz"是一个针对Hadoop 2.x优化的Spark二进制发行版,但值得注意的是,它不包含Hive的相关组件。 Spark的核心组件包括: 1. **Spark Core**:Spark的基础框架,负责任务调度...
这个特定的压缩包"spark-2.3.1-bin-hadoop2-without-hive.tgz"是针对Hadoop 2.x平台编译的Spark二进制发行版,但不包括对Hive的支持。这意味着它没有集成Hive Metastore服务,因此不能直接用于执行Hive查询,但可以...
spark2.3.0 without hive 编译版本,用于Hive on Spark 环境搭建 ./dev/make-distribution.sh --name "hadoop277-without-hive" --tgz "-Pyarn,hadoop-provided,hadoop-2.7,parquet-provided,orc-provided" -...
Hive 3.1.2是Hive项目的其中一个稳定版本,与Spark 3.0.0有良好的兼容性,这意味着用户可以通过Spark作为执行引擎来运行Hive查询,从而利用Spark的高性能计算能力。 Hive的核心组件包括: 1. **元数据存储**:Hive...
8. **Hive on Tez/Spark**:Hive 2.3.9 版本中,用户可以选择使用Tez或Spark作为执行引擎,以提高查询性能,尤其是对于交互式查询。 9. **ACID特性**:从Hive 2.0开始,Hive支持事务(Transactions)、原子性...
10. **Hive on Spark**:虽然在2.1.0版本中,Hive默认还是使用MapReduce作为计算引擎,但该版本已经支持使用Apache Spark进行更高效的计算,尤其是在交互式查询和实时分析场景下。 下载并解压`apache-hive-2.1.0-...
10. **Hive on Spark**:从 Hive 2.0 开始,引入了对 Apache Spark 的支持,Spark 作为执行引擎提供了更快的查询性能,尤其是在交互式查询和实时分析方面。 通过下载并研究 "apache-hive-2.2.0-src.tar.gz" 的源...
然而,在升级过程中发现并没有与之匹配的spark-hive包,因此决定直接将Spark升级到3.3.1版本。 #### 二、升级前准备 1. **环境备份**: - 在进行任何修改之前,强烈建议先对当前环境进行备份。这一步骤非常重要,...
5. **Hive on Spark**:进一步优化了Hive与Spark的集成,使得Spark成为默认的执行引擎,提供更快的查询速度。 6. **改进的错误处理**:提供了更详细的错误报告,帮助用户更快地定位和解决问题。 总的来说,Apache ...
4. **启动和使用**:编译完成后,将`spark-2.0.2-bin-hadoop2-without-hive`解压,并设置`SPARK_HOME`环境变量指向该目录。然后启动Spark集群,如使用`start-all.sh`命令。最后,通过设置Hive的`hive.exec.engine`为...
- **Hive-on-MR3**:支持使用YARN(Yet Another Resource Negotiator)作为资源调度器,提高了资源利用率和集群管理能力。 通过这些特性,Apache Hive 0.14.0在大数据处理领域提供了强大的数据处理和分析能力,尤其...
- **Hive on Spark**:除了MapReduce,Hive也开始支持Apache Spark作为执行引擎,利用Spark的内存计算能力提升性能。 在部署Hive之前,确保你的系统已经安装了Hadoop(因为Hive依赖HDFS进行数据存储)。接着,你...
5. **与Spark集成**:Hive可以通过Hive on Spark模式利用Spark的计算能力,提升查询速度。 在部署Hive时,你需要配置Hadoop环境,确保Hive知道如何访问HDFS。此外,还需要配置元存储(metadata store),通常使用...
Hive on Spark源码分析 Hive on Spark 源码分析是指将 Hive 默认的执行引擎 MapReduce 换成 Spark 或者 Tez,以满足实际场景中的需求。本文将对 Hive on Spark 的源码进行深入分析,涵盖其基本原理、运行模式、Hive...
1. **Hive-on-Spark**:增强了对 Spark 引擎的支持,提供更快的查询速度。 2. **Parquet 支持**:原生支持 Parquet 格式,这是一种高效的列式存储格式,适合大数据分析。 3. **ACID(原子性、一致性、隔离性、持久性...
### 基于CDH 6.3.0 搭建 Hive on Spark 及相关配置和调优 #### 概述 随着大数据技术的发展,Hadoop生态系统不断成熟与完善,其中Apache Hive作为数据仓库工具,支持通过SQL语句进行查询、分析存储在Hadoop文件系统...