Apache DolphinScheduler中ZooKeeperCDH不兼容问题的解决方案

打印 上一主题 下一主题

主题 817|帖子 817|积分 2451

背景

看到Apache DolphinScheduler社区群有很多用户反馈和讨论这块问题,针对不兼容的问题,不仅需要自己重新编译各一个新包,而且因为默认是使用zk-3.8的配置,所以会出现不兼容问题。使用zk-3.4配置即可适配3.4.x
解决办法(一)

切换到项目源码的根路径中执行
  1. mvn clean package -T 1C -Prelease '-Dmaven.test.skip=true' '-Dcheckstyle.skip=true' '-Dmaven.javadoc.skip=true' '-Dzk-3.4'
复制代码
上述命令解释
  1. mvn clean package  依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7个阶段。
复制代码
指定多线程编译,可以增加~
拓展
  1. -Dmaven.compile.fork=true 表示开启多线程
  2. mvn -T 4 install -- will use 4 threads
  3. mvn -T 1C install -- will use 1 thread per available CPU core
  4. mvn clean package -T 1C -Dmaven.compile.fork=true
  5. -Prelease 是 Maven Release Plugin 的配置
复制代码
Maven中-DskipTests和-Dmaven.test.skip=true的区别
在使用mvn package进行编译、打包时,Maven会执行src/test/java中的JUnit测试用例,有时为了编译过程中跳过测试步骤,会使用参数-DskipTests和-Dmaven.test.skip=true,这两个参数的主要区别是:
  1. -DskipTests,不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下。
  2. -Dmaven.test.skip=true,不执行测试用例,也不编译测试用例类。
  3. -D参数
  4. 如果参数不存在于 pom.xml 文件中,它将被设置。如果参数已经存在 pom.xml 文件中,其值将被作为参数传递的值覆盖。
复制代码
解决办法(二)

修改源码中的pom.xml配置文件
1、从github下载源码

直接访问https://github.com/,登陆之后搜索Apache DolphinScheduler!

在百度直接搜:



官网网址:
https://github.com/apache/dolphinscheduler
选择 release版本


2、将下载好的zip包解压出来,并导入IDEA工具中



3、修改maven和jdk配置



4、MVN命令操作

根目录执行
mvn clean package -T 1C -Prelease '-Dmaven.test.skip=true' '-Dcheckstyle.skip=true' '-Dmaven.javadoc.skip=true' '-Dzk-3.4'
报错如下
Failed to execute goal com.diffplug.spotless:spotless-maven-plugin:2.27.2:check (default) on project dolphinscheduler: The following files had format violations:

这个是问题没有因为没有格式化代码,所以在校验的时候不通过
根据上面的提示只需要执行下命令:mvn spotless:apply 就可以了

随后会刷屏,过一会就会出现如下图,完事了

再次根目录执行
mvn clean package -T 1C -Prelease '-Dmaven.test.skip=true' '-Dcheckstyle.skip=true' '-Dmaven.javadoc.skip=true' '-Dzk-3.4'
报错如下

从提示中可以看出来,com.github.eirslett:frontend-maven-plugin这个插件有问题
首先看看本地的maven仓库中,有没有把这个插件通过依赖下载出来

d:\IdeaProjects\dolphinscheduler-3.2.0-release\dolphinscheduler-ui\pom.xml文件中
把标签全都删除掉,防止构建时用npm的方式下载插件。

再次根目录执行
mvn clean package -T 1C -Prelease '-Dmaven.test.skip=true' '-Dcheckstyle.skip=true' '-Dmaven.javadoc.skip=true' '-Dzk-3.4'

可以看到,已经编译成功了。找到打好包生成的目标文件,位置是:项目源码目录\dolphinscheduler-dist\target
我的位置是 D:\IdeaProjects\dolphinscheduler-3.2.0-release\dolphinscheduler-dist\target

5、修改源码中的依赖配置

我不知道配置文件的指定的位置,在IDEA开发工具中按ctrl+shift+f组合键, 在项目所有文件中搜索:zookeeper.version

在d:\\IdeaProjects\\dolphinscheduler-3.2.0-release\\dolphinscheduler-bom\\pom.xml文件中找到

修改一下源码,修改后如下图所示

根目录执行
  1. mvn clean package -T 1C -Prelease '-Dmaven.test.skip=true' '-Dcheckstyle.skip=true' '-Dmaven.javadoc.skip=true'
复制代码

可以看到,已经编译成功了。希望本文能帮助更多用户解决问题,如果您对这个话题感兴趣,欢迎来社区交流!
本文由 白鲸开源 提供发布支持!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

梦见你的名字

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表