hadoop3.x大數(shù)據(jù)集群搭建系列7-安裝Hudi-創(chuàng)新互聯(lián)

文章目錄
  • 編譯環(huán)境準備
  • 一. 下載并解壓hudi
  • 二. maven的下載和配置
    • 2.1 maven的下載和解壓
    • 2.2 添加環(huán)境變量到/etc/profile中
    • 2.3 修改為阿里鏡像
  • 三. 編譯hudi
    • 3.1 修改pom文件
    • 3.2 修改源碼兼容hadoop3
    • 3.3 手動安裝Kafka依賴
    • 3.4 解決spark模塊依賴沖突
      • 3.4.1 修改hudi-spark-bundle的pom文件
      • 3.4.2 修改hudi-utilities-bundle的pom文件
    • 3.5 編譯
  • 參考:

創(chuàng)新互聯(lián)主營斗門網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,重慶App定制開發(fā),斗門h5重慶小程序開發(fā)公司搭建,斗門網(wǎng)站營銷推廣歡迎斗門等地區(qū)企業(yè)咨詢編譯環(huán)境準備
軟件版本
Hadoop3.3.2
Hive3.1.2
Spark3.3.1
Flink1.15.2
一. 下載并解壓hudi
cd /home/software
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hudi/0.12.0/hudi-0.12.0.src.tgz --no-check-certificate
tar -xvf hudi-0.12.0.src.tgz -C /home
二. maven的下載和配置 2.1 maven的下載和解壓
cd /home/software
wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz --no-check-certificate
tar -xvf apache-maven-3.8.6-bin.tar.gz -C /home
2.2 添加環(huán)境變量到/etc/profile中
vi /etc/profile

#MAVEN_HOME
export MAVEN_HOME=/home/apache-maven-3.8.6
export PATH=$PATH:$MAVEN_HOME/bin
2.3 修改為阿里鏡像
vi /home/apache-maven-3.8.6/conf/settings.xml
nexus-aliyuncentralNexus aliyunhttp://maven.aliyun.com/nexus/content/groups/public
三. 編譯hudi 3.1 修改pom文件
vim /home/hudi-0.12.0/pom.xml

新增repository加速依賴下載

nexus-aliyunnexus-aliyunhttp://maven.aliyun.com/nexus/content/groups/public/truefalse

修改依賴的組件版本

3.3.23.1.2
3.2 修改源碼兼容hadoop3

Hudi默認依賴的hadoop2,要兼容hadoop3,除了修改版本,還需要修改如下代碼:

vim /home/hudi-0.12.0/hudi-common/src/main/java/org/apache/hudi/common/table/log/block/HoodieParquetDataBlock.java

image.png

3.3 手動安裝Kafka依賴

通過網(wǎng)址下載:http://packages.confluent.io/archive/5.3/confluent-5.3.4-2.12.zip
解壓后找到以下jar包,上傳服務器hp5

common-config-5.3.4.jar
common-utils-5.3.4.jar
kafka-avro-serializer-5.3.4.jar
kafka-schema-registry-client-5.3.4.jar

install到maven本地倉庫

mvn install:install-file -DgroupId=io.confluent -DartifactId=common-config -Dversion=5.3.4 -Dpackaging=jar -Dfile=./common-config-5.3.4.jar
mvn install:install-file -DgroupId=io.confluent -DartifactId=common-utils -Dversion=5.3.4 -Dpackaging=jar -Dfile=./common-utils-5.3.4.jar
mvn install:install-file -DgroupId=io.confluent -DartifactId=kafka-avro-serializer -Dversion=5.3.4 -Dpackaging=jar -Dfile=./kafka-avro-serializer-5.3.4.jar
mvn install:install-file -DgroupId=io.confluent -DartifactId=kafka-schema-registry-client -Dversion=5.3.4 -Dpackaging=jar -Dfile=./kafka-schema-registry-client-5.3.4.jar
3.4 解決spark模塊依賴沖突

修改了Hive版本為3.1.2,其攜帶的jetty是0.9.3,hudi本身用的0.9.4,存在依賴沖突。

3.4.1 修改hudi-spark-bundle的pom文件

排除低版本jetty,添加hudi指定版本的jetty:

cp /home/hudi-0.12.0/packaging/hudi-spark-bundle/pom.xml /home/hudi-0.12.0/packaging/hudi-spark-bundle/pom.xml.bak
vim /home/hudi-0.12.0/packaging/hudi-spark-bundle/pom.xml

Hive依賴(382行):

  guavacom.google.guavaorg.eclipse.jetty  *org.pentaho  *

image.png

415行:

javax.servlet  *javax.servlet.jsp  *org.eclipse.jetty  *

image.png

436行:

javax.servlet  *org.datanucleus  datanucleus-corejavax.servlet.jsp  *  guavacom.google.guava

image.png

461行:

org.eclipse.jetty.orbit  javax.servletorg.eclipse.jetty  *

image.png

增加hudi配置版本的jetty:

org.eclipse.jetty  jetty-server${jetty.version}org.eclipse.jetty  jetty-util${jetty.version}org.eclipse.jetty  jetty-webapp${jetty.version}org.eclipse.jetty  jetty-http${jetty.version}
3.4.2 修改hudi-utilities-bundle的pom文件

排除低版本jetty,添加hudi指定版本的jetty:

vim /home/hudi-0.12.0/packaging/hudi-utilities-bundle/pom.xml

345行部分:

org.eclipse.jetty  *

image.png

357行:

org.eclipse.jetty  *

image.png

417行部分:

  servlet-apijavax.servlet  guavacom.google.guavaorg.eclipse.jetty  *org.pentaho  *

image.png

450:

javax.servlet  *javax.servlet.jsp  *org.eclipse.jetty  *

image.png

471行:

javax.servlet  *org.datanucleus  datanucleus-corejavax.servlet.jsp  *  guavacom.google.guava

image.png

496行:

org.eclipse.jetty.orbit  javax.servletorg.eclipse.jetty  *

image.png

增加:

org.eclipse.jetty  jetty-server${jetty.version}org.eclipse.jetty  jetty-util${jetty.version}org.eclipse.jetty  jetty-webapp${jetty.version}org.eclipse.jetty  jetty-http${jetty.version}

image.png

3.5 編譯
cd /home/hudi-0.12.0
mvn clean package -DskipTests -Dspark3.3 -Dflink1.15 -Dscala-2.12 -Dhadoop.version=3.3.2 -Pflink-bundle-shade-hive3

報錯:
這個報錯在網(wǎng)上找了好久都沒找到解決方案,后來想了下,我使用的是open jdk11,換回JDK8版本,此問題解決。
安裝apache的各個組件,還是繼續(xù)使用JDK8版本吧,別使用open jdk了,坑太多了。
image.png

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project hudi-common: Compilation failure: Compilation failure: 
[ERROR] /home/hudi-0.12.0/hudi-common/src/main/java/org/apache/hudi/metadata/HoodieTableMetadataUtil.java:[189,7] 對于collect(java.util.stream.Collector,capture#1, 共 ?,java.util.Map>>), 找不到合適的方法
[ERROR]     方法 java.util.stream.Stream.collect(java.util.function.Supplier,java.util.function.BiConsumer,java.util.function.BiConsumer)不適用
[ERROR]       (無法推斷類型變量 R
[ERROR]         (實際參數(shù)列表和形式參數(shù)列表長度不同))
[ERROR]     方法 java.util.stream.Stream.collect(java.util.stream.Collector)不適用
[ERROR]       (無法推斷類型變量 R,A
[ERROR]         (參數(shù)不匹配; java.util.stream.Collector,capture#1, 共 ?,java.util.Map>>無法轉(zhuǎn)換為java.util.stream.Collector))
[ERROR] /home/hudi-0.12.0/hudi-common/src/main/java/org/apache/hudi/common/util/ParquetUtils.java:[332,11] 對于collect(java.util.stream.Collector,capture#2, 共 ?,java.util.Map>>>), 找不到合適的方法
[ERROR]     方法 java.util.stream.Stream.collect(java.util.function.Supplier,java.util.function.BiConsumer,java.util.function.BiConsumer)不適用
[ERROR]       (無法推斷類型變量 R
[ERROR]         (實際參數(shù)列表和形式參數(shù)列表長度不同))
[ERROR]     方法 java.util.stream.Stream.collect(java.util.stream.Collector)不適用
[ERROR]       (無法推斷類型變量 R,A
[ERROR]         (參數(shù)不匹配; java.util.stream.Collector,capture#2, 共 ?,java.util.Map>>>無法轉(zhuǎn)換為java.util.stream.Collector))
[ERROR] ->[Help 1]

編譯成功:
image.png

編譯成功后,進入hudi-cli說明成功:

cd /home/hudi-0.12.0/hudi-cli
./hudi-cli.sh

image.png

相關的jar包:
編譯完成后,相關的包在packaging目錄的各個模塊中:
比如,flink與hudi的包:
image.png

參考:
  1. https://blog.csdn.net/weixin_36939535/article/details/125595536
  2. https://blog.csdn.net/weixin_45417821/article/details/127407461

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

名稱欄目:hadoop3.x大數(shù)據(jù)集群搭建系列7-安裝Hudi-創(chuàng)新互聯(lián)
當前地址:http://muchs.cn/article40/phieo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、外貿(mào)網(wǎng)站建設虛擬主機、域名注冊網(wǎng)站策劃、自適應網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設