首先,如果想要在hive 3.1.3上使用spark 3.0.0,不可避免地要重新編譯hive
如果只是配置了hive-site.xml和spark-defaults.conf,那么在插入測試的時候會報如下錯誤:
FAILED: Execution Error, return code 3 from org.apache.hadoop.hive.ql.exec.spark.SparkTask. Spark job failed during runtime. Please check stacktrace for the root cause.
1. 下載hive源碼包
把hive 3.1.3 的源碼包下載到本地,目的是可以用intellij打開,方便修改相關源碼。
hive源碼包
2. 解壓并用idea打開,改寫源碼
解壓后,文件夾內有一個同名文件夾apache-hive-3.1.3-src,用intellij打開。
修改內容參考鏈接:修改內容
具體需要修改的部分如下
以上圈起來的部分,一個個點進去照著改。怕有的人看不懂,以下圖為例:
最上面表示文件名,直接從intellij找到相關文件修改即可。綠色部分表示要添加的內容,紅色部分表示要刪除的內容。
修改完畢后,重新打包成 .tar.gz 的格式。
如果你不想自己動手,沒關系,我提供了修改好的源碼包,里面還有不帶hadoop的純凈spark。為啥沒有maven編譯好的jar包呢,因為租的服務器帶寬太垃了,下到本地要半年。
鏈接:https://pan.baidu.com/s/1FCOJp29P56xZ8RMUYD9A3w
提取碼:jjc6
3. 上傳壓縮包至服務器并maven編譯
上傳至服務器,例如我上傳至 /opt/software/。
在下一步操作前,要先自行安裝好maven,沒安裝的請自行百度。
cd $MAVEN_HOME/conf/
vim settings.xml
在 settings.xml
中,添加以下鏡像:
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>spring-plugin</name>
<url>https://maven.aliyun.com/repository/spring-plugin</url>
</mirror>
<mirror>
<id>repo2</id>
<name>Mirror from Maven Repo2</name>
<url>https://repo.spring.io/plugins-release/</url>
<mirrorOf>central</mirrorOf>
</mirror>
進入剛剛壓縮包上傳的路徑,解壓壓縮包:
cd /opt/software/
# 解壓
tar -zxvf apache-hive-3.1.3-src.tar.gz
# 進入目錄
cd apache-hive-3.1.3-src/
# 使用Maven進行編譯打包
mvn clean package -Pdist -DskipTests -Dmaven.javadoc.skip=true
打包需要一段時間,完成后,進入到 cd packaging/target/
文件夾,看到有一個編譯好的包:
4. 改造原有hive環(huán)境
由于我之前是安裝過hive的,此時需要先把舊的hive重命名,比如mv hive hive_old
然后解壓我們編譯好的包 tar -zxvf apache-hive-3.1.3-bin.tar.gz -C /opt/module/
這里我把解壓出來的文件夾重命名成hive。
# 拷貝原先的 hive-site.xml 和 spark-defaults.conf
cp hive_old/conf/hive-site.xml hive/conf/
cp hive_old/conf/spark-defaults.conf hive/conf/
# 拷貝lib下的 mysql jar包,沒有的可以自行下載,我上面的鏈接也有提供
cp hive_old/lib/mysql-connector-java-5.1.37-bin.jar hive/lib/
5. 上傳純凈spark jar包至集群
需要spark-3.0.0-bin-without-hadoop.tgz
,可以自行下載,也可以從我的鏈接里下
# 解壓
tar -zxvf spark-3.0.0-bin-without-hadoop.tgz
# 創(chuàng)建目錄
hadoop fs -mkdir /spark-jars
# 上傳至集群
hadoop fs -put spark-3.0.0-bin-without-hadoop/jars/* /spark-jars
6. 啟動集群并測試
分別啟動 hadoop, metastore, hiveserver2
然后用 bin/hive
啟動hive測試一下
create table student(id int, name string);
insert into table student values(1,'abc');
如果出現(xiàn)以下內容,表示 hive 3.1.3 on spark 3.0.0 部署成功了文章來源:http://www.zghlxwxcb.cn/news/detail-811184.html
如果本文對你有幫助,請點個贊支持一下~~文章來源地址http://www.zghlxwxcb.cn/news/detail-811184.html
到了這里,關于hive 3.1.3 on spark 3.0.0 安裝教程 (內附重新編譯好的jar包)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!