1. 编译环境
[root@t200 ~]# mvn --version
Apache Maven 3.2.5 (12a6b3acb947671f09b81f49094c53f426d8cea1; 2014-12-15T01:29:23+08:00)
Maven home: /usr/local/maven-3.2.5
Java version: 1.8.0_112, vendor: Oracle Corporation
Java home: /usr/local/jdk1.8.0_112/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.el7.x86_64", arch: "amd64", family: "unix"
2. 升级版本
组件 | 原版本 | 修版本 |
Spark | 2.3.0 | 3.2.3 |
Hadoop | 3.1.0 | 3.1.3 |
Scala | 2.11 | 2.12 |
3. 下载源码
GitHub - apache/hive: Apache Hive
4. 修改pom
<hadoop.version>3.1.3</hadoop.version>
<spark.version>3.2.3</spark.version>
<scala.binary.version>2.12</scala.binary.version>
<scala.version>2.12.10</scala.version>
<guava.version>27.0-jre</guava.version>
5. 修改源码
参考文献: Commits · gitlbo/hive · GitHub
5.1 由修改guava引起的
共8个
druid-handler模块
llap-server模块
ql模块 
llap-tez模块
llap-common模块
5.2 由修改Spark版本引起的
共3个
ql模块
spark-client模块
6. 编译
# 清理缓存
[root@t60 hive-3.1.2]# mvn clean
# 对该模块进行package
# 以免报 构造器 org.eclipse.jetty.servlet.FilterHolder.FilterHolder(java.lang.Class<? extends javax.servlet.Filter>)不适用
[root@t60 hive-build-3.1.2]# cd hcatalog/webhcat/svr/
[root@t60 svr]# mvn package -Pdist -DskipTests
[root@t60 hive-build-3.1.2]# mvn package -Pdist -DskipTests
# 或直接
mvn clean package -Pdist -DskipTests -Dmaven.javadoc.skip=true
7. tar包
apache-hive/packaging/target/apache-hive-3.1.3-bin.tar.gz