Hudi数据湖技术引领大数据新风口(三)解决spark模块依赖冲突

文章目录

    • 解决spark模块依赖冲突
      • 2.2.6 执行编译命令
      • 2.2.7 编译成功
    • 下一章 核心概念
    • 后记

解决spark模块依赖冲突

修改了Hive版本为3.1.2,其携带的jetty是0.9.3,hudi本身用的0.9.4,存在依赖冲突。

1)修改hudi-spark-bundle的pom文件,排除低版本jetty,添加hudi指定版本的jetty:

vim /opt/software/hudi-0.12.0/packaging/hudi-spark-bundle/pom.xml

在382行的位置,修改如下(红色部分):



  

   ${hive.groupid}

   hive-service

   ${hive.version}

   ${spark.bundle.hive.scope}

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

   

  

 

  

   ${hive.groupid}

   hive-service-rpc

   ${hive.version}

   ${spark.bundle.hive.scope}

  

 

  

   ${hive.groupid}

   hive-jdbc

   ${hive.version}

   ${spark.bundle.hive.scope}

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

   

  

 

  

   ${hive.groupid}

   hive-metastore

   ${hive.version}

   ${spark.bundle.hive.scope}

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

   

  

 

  

   ${hive.groupid}

   hive-common

   ${hive.version}

   ${spark.bundle.hive.scope}

   org.eclipse.jetty.orbitjavax.servletorg.eclipse.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}

  

否则在使用spark向hudi表插入数据时,会报错如下:

java.lang.NoSuchMethodError: org.apache.hudi.org.apache.jetty.server.session.SessionHandler.setHttpOnly(Z)V

Hudi数据湖技术引领大数据新风口(三)解决spark模块依赖冲突_第1张图片

2)修改hudi-utilities-bundle的pom文件,排除低版本jetty,添加hudi指定版本的jetty:

vim /opt/software/hudi-0.12.0/packaging/hudi-utilities-bundle/pom.xml

在405行的位置,修改如下(红色部分):

  

  

   org.apache.hudi

   hudi-common

   ${project.version}

   org.eclipse.jetty*

   

  

  

   org.apache.hudi

   hudi-client-common

   ${project.version}

   org.eclipse.jetty*

   

  

 

 



  

   ${hive.groupid}

   hive-service

   ${hive.version}

   ${utilities.bundle.hive.scope}

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

   

  

 

  

   ${hive.groupid}

   hive-service-rpc

   ${hive.version}

   ${utilities.bundle.hive.scope}

  

 

  

   ${hive.groupid}

   hive-jdbc

   ${hive.version}

   ${utilities.bundle.hive.scope}

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

   

  

 

  

   ${hive.groupid}

   hive-metastore

   ${hive.version}

   ${utilities.bundle.hive.scope}

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

   

  

 

  

   ${hive.groupid}

   hive-common

   ${hive.version}

   ${utilities.bundle.hive.scope}

   org.eclipse.jetty.orbitjavax.servletorg.eclipse.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}

  

否则在使用DeltaStreamer工具向hudi表插入数据时,也会报Jetty的错误。

2.2.6 执行编译命令

mvn clean package -DskipTests -Dspark3.2 -Dflink1.13 -Dscala-2.12 -Dhadoop.version=3.1.3 -Pflink-bundle-shade-hive3

2.2.7 编译成功

编译成功后,进入hudi-cli说明成功:

img

Hudi数据湖技术引领大数据新风口(三)解决spark模块依赖冲突_第2张图片

编译完成后,相关的包在packaging目录的各个模块中:

img

比如,flink与hudi的包:

img

下一章 核心概念

后记

博客主页:https://manor.blog.csdn.net

欢迎点赞 收藏 ⭐留言 如有错误敬请指正!
本文由 Maynor 原创,首发于 CSDN博客
不能老盯着手机屏幕,要不时地抬起头,看看老板的位置⭐
数据湖专栏持续更新,欢迎订阅:https://blog.csdn.net/xianyu120/category_12388063.html

你可能感兴趣的:(数据湖,湖仓一体,大数据,spark,分布式)