【spark源码修改】hive3.1.3 spark3.5.4编译,需要修改源码,最终编译成功


1. 准备安装包与maven编译环境

1.1 安装环境准备

安装包到官网找, hive.apache.org, spark.apache.org
maven环境准备: 初始化只改了settings的ali源

1.2 修改pom

pom版本修改前:

    <spark.version>2.3.0</spark.version>
    <scala.binary.version>2.11</scala.binary.version>
    <scala.version>2.11.8</scala.version>

修改后:

    <spark.version>3.5.4</spark.version>
    <scala.binary.version>2.13</scala.binary.version>
    <scala.version>2.13.8</scala.version>

1.3 打包命令

mvn clean package -Pdist -DskipTests -Dmaven.javadoc.skip=true

2. 编译与问题解决

2.1 开始编译 失败, 缺包pentaho-aggdesigner-algorithm:pom:5.1.5-jhyde

pentaho-aggdesigner-algorithm:pom:5.1.5-jhyde 找不到

Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/hadoop/hadoop-mapreduce-client-core/2.7.2/hadoop-mapreduce-client-core-2.7.2.pom (3.5 kB at 12 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/hadoop/hadoop-common/2.6.4/hadoop-common-2.6.4.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/hadoop/hadoop-common/2.6.4/hadoop-common-2.6.4.pom (31 kB at 77 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/hadoop/hadoop-project-dist/2.6.4/hadoop-project-dist-2.6.4.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/hadoop/hadoop-project-dist/2.6.4/hadoop-project-dist-2.6.4.pom (18 kB at 48 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/hadoop/hadoop-project/2.6.4/hadoop-project-2.6.4.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/hadoop/hadoop-project/2.6.4/hadoop-project-2.6.4.pom (43 kB at 106 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/hadoop/hadoop-main/2.6.4/hadoop-main-2.6.4.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/hadoop/hadoop-main/2.6.4/hadoop-main-2.6.4.pom (18 kB at 47 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/hadoop/hadoop-annotations/2.6.4/hadoop-annotations-2.6.4.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/hadoop/hadoop-annotations/2.6.4/hadoop-annotations-2.6.4.pom (2.4 kB at 8.0 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/hadoop/hadoop-auth/2.6.4/hadoop-auth-2.6.4.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/hadoop/hadoop-auth/2.6.4/hadoop-auth-2.6.4.pom (7.7 kB at 20 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/hive/hive-storage-api/2.2.1/hive-storage-api-2.2.1.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/hive/hive-storage-api/2.2.1/hive-storage-api-2.2.1.pom (5.4 kB at 12 kB/s)
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for Hive 3.1.3:
[INFO] 
[INFO] Hive Upgrade Acid .................................. FAILURE [02:30 min]
[INFO] Hive ............................................... SKIPPED
[INFO] Hive Classifications ............................... SKIPPED
[INFO] Hive Shims Common .................................. SKIPPED
[INFO] Hive Shims 0.23 .................................... SKIPPED
[INFO] Hive Shims Scheduler ............................... SKIPPED
[INFO] Hive Shims ......................................... SKIPPED
[INFO] Hive Common ........................................ SKIPPED
[INFO] Hive Service RPC ................................... SKIPPED
[INFO] Hive Serde ......................................... SKIPPED
[INFO] Hive Standalone Metastore .......................... SKIPPED
[INFO] Hive Metastore ..................................... SKIPPED
[INFO] Hive Vector-Code-Gen Utilities ..................... SKIPPED
[INFO] Hive Llap Common ................................... SKIPPED
[INFO] Hive Llap Client ................................... SKIPPED
[INFO] Hive Llap Tez ...................................... SKIPPED
[INFO] Hive Spark Remote Client ........................... SKIPPED
[INFO] Hive Query Language ................................ SKIPPED
[INFO] Hive Llap Server ................................... SKIPPED
[INFO] Hive Service ....................................... SKIPPED
[INFO] Hive Accumulo Handler .............................. SKIPPED
[INFO] Hive JDBC .......................................... SKIPPED
[INFO] Hive Beeline ....................................... SKIPPED
[INFO] Hive CLI ........................................... SKIPPED
[INFO] Hive Contrib ....................................... SKIPPED
[INFO] Hive Druid Handler ................................. SKIPPED
[INFO] Hive HBase Handler ................................. SKIPPED
[INFO] Hive JDBC Handler .................................. SKIPPED
[INFO] Hive HCatalog ...................................... SKIPPED
[INFO] Hive HCatalog Core ................................. SKIPPED
[INFO] Hive HCatalog Pig Adapter .......................... SKIPPED
[INFO] Hive HCatalog Server Extensions .................... SKIPPED
[INFO] Hive HCatalog Webhcat Java Client .................. SKIPPED
[INFO] Hive HCatalog Webhcat .............................. SKIPPED
[INFO] Hive HCatalog Streaming ............................ SKIPPED
[INFO] Hive HPL/SQL ....................................... SKIPPED
[INFO] Hive Streaming ..................................... SKIPPED
[INFO] Hive Llap External Client .......................... SKIPPED
[INFO] Hive Shims Aggregator ...................
<think>好的,我需要解决用户的问题:寻找与Hive 3.1.3兼容的Spark 3.3.1安装包。根据用户提供的引用资料,首先需要确认HiveSpark的默认兼容性。 根据引用[1],官网下载的Hive 3.1.3默认支持的Spark版本是2.3.0,这说明官方版本并不兼容Spark 3.3.1。用户可能需要通过其他方法来实现兼容,比如重新编译HiveSpark。 引用[4]提到用户通过修改Hive源码,调整pom.xml中的Spark版本和Scala版本,并重新编译成功Hive 3.1.3支持Spark 3.3.0。这说明手动编译是一种可行的方法,但需要用户有一定的技术背景。 用户现在需要的是Spark 3.3.1的兼容包。考虑到引用[4]中处理的是Spark 3.3.0,类似的方法可能适用于3.3.1,但需要验证依赖项是否有变化。此外,用户可能需要自行下载Spark源码,调整相关配置后重新编译生成安装包。 另外,引用[2]和[3]提供了Hive 3.1.3Spark 3.0.0上的安装指南和资源,但版本较低。用户可能需要参考这些资源中的步骤,但需要针对Spark 3.3.1进行相应的调整。 综合来看,用户需要自行编译HiveSpark,或者寻找社区提供的预编译包。目前官方可能没有现成的兼容版本,因此需要指导用户进行手动编译,或者建议他们使用已经验证过的较新版本组合,比如Hive 3.1.3Spark 3.0.0,或者升级Hive版本以获得更好的兼容性。</think>### 解答 根据引用内容,Hive 3.1.3 默认支持的 Spark 版本是 2.3.0[^1],而直接使用 Spark 3.3.1 需要重新编译 Hive 源码并调整依赖关系。以下是具体步骤和建议: --- #### **1. 现状分析** - **官方兼容性**:Hive 3.1.3 官方仅支持 Spark 2.3.0[^1],无法直接使用 Spark 3.3.1。 - **社区实践**:部分用户通过修改 Hive 的 Maven 配置并重新编译成功适配 Spark 3.3.0[^4]。类似方法可能适用于 Spark 3.3.1,但需验证依赖冲突。 --- #### **2. 解决方案** ##### **方案一:手动编译 Hive 源码** 1. **下载 Hive 源码**: ```bash git clone https://github.com/apache/hive.git ``` 2. **修改依赖版本**: 在 `pom.xml` 中调整以下参数: ```xml <spark.version>3.3.1</spark.version> <scala.binary.version>2.12</scala.binary.version> <scala.version>2.12.15</scala.version> <SPARK_SCALA_VERSION>2.12</SPARK_SCALA_VERSION> ``` 3. **编译 Hive**: ```bash mvn clean -DskipTests package -Pdist ``` - 编译成功后,生成的 `hive-3.1.3-SNAPSHOT` 将包含 Spark 3.3.1 适配的 JAR 包。 ##### **方案二:使用社区提供的编译包** - 参考引用[2][^2]和[3][^3],部分社区项目提供了预编译Hive-on-Spark 适配包(例如 Spark 3.0.0)。 - 若需 Spark 3.3.1,可尝试联系社区或查找类似资源。 --- #### **3. 替代建议** - **降级 Spark**:使用已验证的 Spark 3.0.0,通过引用[3]的教程部署。 - **升级 Hive**:考虑使用更高版本的 Hive(如 Hive 4.x),可能原生支持 Spark 3.3.1。 --- #### **验证步骤** 1. **上传 Spark JAR 包**: ```bash hadoop fs -mkdir /spark-jars hadoop fs -put spark-3.3.1-bin-without-hadoop/jars/* /spark-jars ``` 2. **配置 Hive**: 在 `hive-site.xml` 中指定 Spark 路径: ```xml <property> <name>spark.home</name> <value>/path/to/spark-3.3.1</value> </property> ``` 3. **测试任务**:运行简单 Hive-on-Spark 查询验证兼容性。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值