欢迎这位怪蜀黍来到《大数据运维(60)Hive on Spark配置 - 大码王 - 博客园》

关闭页面特效

 


1. 版本兼容

Hive on Spark仅使用特定版本的Spark进行测试,因此只能确保给定版本的Hive与特定版本的Spark一起使用。其他版本的Spark可能与给定版本的Hive一起使用,但这不能保证。下面是Hive版本列表及其相应的兼容Spark版本。

Hive VersionSpark Version
master 2.3.0
3.0.x 2.3.0
2.3.x 2.0.0
2.2.x 1.6.0
2.1.x 1.6.0
2.0.x 1.5.0
1.2.x 1.3.1
1.1.x 1.2.0

2. 安装Spark

2.1 环境配置

  • java 1.8.0+
  • hadoop 2.7.0+
  • hive 2.3.0
  • spark 2.0.2
  • scala 2.11.12

2.2 编译安装

  • 安装/构建兼容版本。从上诉版本中选择适合的Spark版本进行编译安装.

  • 安装/构建兼容的分发版。每个版本的Spark都有几个发行版,对应不同版本的Hadoop。

  • 注意,必须拥有包含Hive jar 的Spark版本 。Spark的发行版本为了兼顾Spark SQL都会包含有Hive相关的jar,所以我们需要通过源码重新编译,去重相关的jar.

    在Spark 2.0.0之前:

    ./make-distribution.sh --name "hadoop2-without-hive" --tgz "-Pyarn,hadoop-provided,hadoop-2.4,parquet-provided"
    

    自Spark 2.0.0起:

    ./dev/make-distribution.sh --name "hadoop2-without-hive" --tgz "-Pyarn,hadoop-provided,hadoop-2.7,parquet-provided"
    

    自Spark 2.3.0起:

    ./dev/make-distribution.sh --name "hadoop2-without-hive" --tgz "-Pyarn,hadoop-provided,hadoop-2.7,parquet-provided,orc-provided"
    

3. 配置Hive

3.1 拷贝spark下的jar包到hive的lib下

  • cp scala-library-2.11.8.jar /usr/share/hive-2.3.0/lib/
  • cp spark-core_2.11-2.0.2.jar /usr/share/hive-2.3.0/lib/
  • cp spark-network-common_2.11-2.0.2.jar /usr/share/hive-2.3.0/lib/

3.2 配置Hive执行引擎以使用Spark

hive-site.xml文件中添加:

<property>
        <name>hive.execution.engine</name>
        <value>spark</value>
  </property>

4. 允许Yarn在节点上缓存必要的spark依赖关系jar,这样每次应用程序运行时都不需要分发它。

  • 在Hive 2.2.0之前,将spark-assembly jar上传到hdfs文件(例如:hdfs:// xxxx:8020 / spark-assembly.jar)并在hive-site.xml中添加以下内容

    <property>
      <name>spark.yarn.jar</name>
      <value>hdfs://xxxx:8020/spark-assembly.jar</value>
    </property>
    

  • Hive 2.2.0,将$ SPARK_HOME / jars中的所有jar上传到hdfs文件夹(例如:hdfs:/// xxxx:8020 / spark-jars)并在hive-site.xml中添加以下内容

    <property>
      <name>spark.yarn.jars</name>
      <value>hdfs://xxxx:8020/spark-jars/*</value>
    </property>
    

5. 执行hive命令

image.png
 posted on   大码王  阅读(635)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具

成都

复制代码

喜欢请打赏

扫描二维码打赏

了解更多

点击右上角即可分享
微信分享提示

目录导航