kudu-spark KuduContext java.io.InvalidClassException 解决

背景:
线上kudu 集群版本为1.11.0版本, spark 使用 kudu-spark2_2.11-1.7.0.jar,
为了使用新版本中的
val wo = new KuduWriteOptions(ignoreNull = true)
特性,升级至 kudu-spark2_2.11-1.11.0.jar 版本,但是报错

java.io.InvalidClassException: org.apache.kudu.spark.kudu.KuduContext; local class incompatible: stream classdesc serialVersionUID = xxxxxxxx, local class serialVersionUID = xxxxxxx111

在https://issues.apache.org/jira/browse/KUDU-2898 中说这个已经修复,但是修复的版本是kudu 1.12.0,升级线上kudu版本这个暂时不考虑,只好自己修改源码,重新编译 kudu-spark2_2.11-1.11.0.jar

1.解压 kudu-spark2_2.11-1.11.0.jar ,将解压出的所有文件夹移动至一个空文件夹,例如tmp

2.在idea中新建maven项目,配置好 scala 等环境

3.解压 kudu-spark2_2.11-1.11.0-sources.jar,将 其中 org 文件夹 复制 至 maven中刚刚建好的项目中(org/apache/kudu/spark/kudu)

4.修改文件 KuduContext.scala 、 KuduRDD.scala, 增加或修改 @SerialVersionUID(xxxxxxxxxxL) ,xxxxxxxxxx改为报错信息中的local class serialVersionUID

请输入图片描述

请输入图片描述

请输入图片描述

tips:OperationType.scala文件也需修改,和 上面的serialVersionUID不同,走完整个流程运行会报这个文件的serialVersionUID错误,改成错误信息中的local class serialVersionUID

5.将 kudu-spark2_2.11-1.11.0.pom 中的 dependencies 粘贴至 maven 中项目的pom文件中,还需额外增加以下依赖:

        <dependency>
            <groupId>org.apache.kudu</groupId>
            <artifactId>kudu-client</artifactId>
            <version>1.11.0</version>
        </dependency>

        <dependency>
            <groupId>org.apache.yetus</groupId>
            <artifactId>audience-annotations</artifactId>
            <version>0.13.0</version>
        </dependency>
        <dependency>
            <groupId>org.hdrhistogram</groupId>
            <artifactId>HdrHistogram</artifactId>
            <version>2.1.12</version>
        </dependency>

6.idea中将maven项目打包

7.将idea中打好的包解压,将其中 org/apache/kudu/spark/kudu 下的文件覆盖至 tmp 中 org/apache/kudu/spark/kudu

8.将 tmp 文件夹下的所有目录打包成新的jar包

参考链接:
1.https://community.cloudera.com/t5/Support-Questions/KUDU-need-rebuild-post-upgrade-of-CDH-cluster/td-p/92885
2.https://issues.apache.org/jira/browse/KUDU-2898

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇