hudi0.13.1集成cdh6.3.1编译

一、组件版本

  1. hive 2.1.1-cdh6.3.1
  2. hadoop 3.0.0-cdh6.3.1
  3. maven 3.6.3

二、maven镜像配置环境配置

<mirrors>

      <mirror>
        <id>alimaven</id>
        <name>aliyun maven</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        <mirrorOf>*,!cloudera-repo-releases</mirrorOf>
    </mirror>
    <mirror>
        <id>aliyunmaven</id>
        <mirrorOf>central,!cloudera-repo-releases</mirrorOf>
        <name>阿里云spring插件仓库</name>
        <url>https://maven.aliyun.com/repository/spring-plugin</url>
    </mirror>
    <mirror>
        <id>repo1-maven-org</id>
        <mirrorOf>central</mirrorOf>
        <name>Repo1 Maven Mirror</name>
        <url>https://repo1.maven.org/maven2/</url>
    </mirror>
    <mirror>
        <id>repo2</id>
        <name>Mirror from Maven Repo2</name>
        <url>https://repo.spring.io/plugins-release/</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
    <mirror>
        <id>UK</id>
        <name>UK Central</name>
        <url>http://uk.maven.org/maven2</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
    <mirror>
        <id>jboss-public-repository-group</id>
        <name>JBoss Public Repository Group</name>
        <url>http://repository.jboss.org/nexus/content/groups/public</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
    <mirror>
        <id>CN</id>
        <name>OSChina Central</name>
        <url>http://maven.oschina.net/content/groups/public/</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
    <mirror>
        <id>google-maven-central</id>
        <name>GCS Maven Central mirror Asia Pacific</name>
        <url>https://maven-central-asia.storage-download.googleapis.com/maven2/</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
    <mirror>
        <id>confluent</id>
        <name>confluent maven</name>
        <url>http://packages.confluent.io/maven/</url>
        <mirrorOf>confluent</mirrorOf>
    </mirror>

需要注意的是阿里云镜像仓库中没有cloudera的仓库包,cloudera是一个单独的仓库。在hudi0.13.1这版本中已经在pom中引用了仓库不需要在maven中配置,只需要在阿里云镜像库中排除即可。<mirrorOf>*,!cloudera-repo-releases</mirrorOf> 如这样配置,!cloudera-repo-releases 代表排除cloudera-repo-releases的仓库搜索,cdh依赖的包就不会再从阿里云仓库中下载了,也不会报出阿里云镜像中找不到cdh的jar包。

如果上述还是搞不定chd包依赖的问题,可以尝试从chd仓库手动下载安装下载地址如下:

Index of cloudera-repos/

maven安装包命令示例

mvn install:install-file \
-Dpackaging=jar \
-Dclassifier=tests \
-DgroupId=org.apache.hadoop \
-DartifactId=hadoop-hdfs \
-Dversion=3.0.0-cdh6.3.1 \
-Dfile=./hadoop-hdfs-3.0.0-cdh6.3.1-tests.jar


mvn install:install-file \
-Dfile=./hadoop-auth-3.0.0-cdh6.3.1.jar \
-DgroupId=org.apache.hadoop \
-DartifactId=hadoop-auth \
-Dversion=3.0.0-cdh6.3.1 \
-Dpackaging=jar

三、修改hudi编译版本

1、修改pom文件

1.1 根pom文件中修改hadoop和hive为需要的版本

        文件路径hudi/pom.xml

        

1.2 修改hudi/packaging/hudi-flink-bundle/pom.xml

        

 2、执行编译命令

mvn clean install -T 6 -DskipTests -DskipITs -Dcheckstyle.skip=true -Drat.skip=true  -Pflink-bundle-shade-hive2

  flink版本和spark版本都选择默认,因为我这边都是flink为主要测试点。

3、编译过程会遇到的报错问题

3.1 javax.annotation.concurrent.Immutable 类不存在

解决: 在hudi-sync-common的pom.xml文件中添加依赖包

<dependency>
  <groupId>com.google.code.findbugs</groupId>
  <artifactId>jsr305</artifactId>
  <version>3.0.2</version>
</dependency>

3.2 DistributedFileSystem 类不存在

解决: 在hudi-client/hudi-client-common/pom.xml中添加依赖

<dependency>
  <groupId>org.apache.hadoop</groupId>
  <artifactId>hadoop-hdfs-client</artifactId>
  <version>${hadoop.version}</version>
  <scope>provided</scope>
</dependency>

3.3 org.json.JSONObject 抛出异常与捕获问题

解决: hudi-utilities/pom.xml添加依赖

<dependency>
  <groupId>com.tdunning</groupId>
  <artifactId>json</artifactId>
  <version>1.8</version>
</dependency>

 出现如上结果,说明编译成功。

如果是在IDEA中build后出现scala代码中一些类不存在而报红警告,可以尝试直接编译。

4、编译过程中排查问题用到的maven命令

mvn dependency:tree -Dincludes=org.apache.hadoop:hadoop-common
mvn dependency:list -DincludeArtifactIds=jsr305

参考博客:

[1] https://7e2hj.com/hudi%e9%9b%86%e6%88%90cdh/​​​​​​

[2] 整合Apache Hudi+Mysql+FlinkCDC2.1+CDH6.3.0_江南独孤客的技术博客_51CTO博客 

[3] https://www.cnblogs.com/felixzh/p/15923146.html

[4] Hudi 集成 | 超详细步骤!整合 Apache Hudi + Flink + CDH-轻识 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值