暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Apache DolphinScheduler中ZK与CDH不兼容问题的解决方案

海豚调度 2024-02-19
665

|王昱翔

编辑整理 曾辉

背景

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

解决办法(一)

#切换到项目源码的根路径中执行

mvn clean package -T 1C -Prelease '-Dmaven.test.skip=true' '-Dcheckstyle.skip=true' '-Dmaven.javadoc.skip=true' '-Dzk-3.4'

上述命令解释

mvn clean package  依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7个阶段。

指定多线程编译,可以增加~

拓展

-Dmaven.compile.fork=true 表示开启多线程
mvn -T 4 install -- will use 4 threads
mvn -T 1C install -- will use 1 thread per available CPU core
mvn clean package -T 1C -Dmaven.compile.fork=true
-Prelease 是 Maven Release Plugin 的配置

Maven中-DskipTests和-Dmaven.test.skip=true的区别

在使用mvn package进行编译、打包时,Maven会执行src/test/java中的JUnit测试用例,有时为了编译过程中跳过测试步骤,会使用参数-DskipTests和-Dmaven.test.skip=true,这两个参数的主要区别是:

-DskipTests,不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下。
-Dmaven.test.skip=true,不执行测试用例,也不编译测试用例类。
-D参数
如果参数不存在于 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
      文件中找到

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

      根目录执行

      mvn clean package -T 1C -Prelease '-Dmaven.test.skip=true' '-Dcheckstyle.skip=true' '-Dmaven.javadoc.skip=true'

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

      用户实践案例
      奇富科技  蜀海供应链 联通数科 拈花云科
      蔚来汽车 长城汽车 集度 长安汽车
      思科网讯 生鲜电商 联通医疗 联想
      新网银行 消费金融  腾讯音乐 自如
      有赞 伊利 当贝大数据
      联想 传智教育 Bigo
      通信行业  作业帮


      迁移实践
      Azkaban   Ooize   
      Airflow (有赞案例) Air2phin(迁移工具)
      Airflow迁移实践
      Apache DolphinScheduler 3.0.0 升级到 3.1.8 教程


      新手入门
      选择Apache DolphinScheduler的10个理由
      Apache DolphinScheduler 3.1.8 保姆级教程【安装、介绍、项目运用、邮箱预警设置】轻松拿捏!
      Apache DolphinScheduler 如何实现自动化打包+单机/集群部署?
      Apache DolphinScheduler-3.1.3 版本安装部署详细教程
      Apache DolphinScheduler 在大数据环境中的应用与调优

      参与Apache DolphinScheduler 社区有非常多的参与贡献的方式,包括:


      贡献第一个PR(文档、代码) 我们也希望是简单的,第一个PR用于熟悉提交的流程和社区协作以及感受社区的友好度。

      社区汇总了以下适合新手的问题列表:https://github.com/apache/dolphinscheduler/issues/5689

      非新手问题列表:https://github.com/apache/dolphinscheduler/issues?
      q=is%3Aopen+is%3Aissue+label%3A%22volunteer+wanted%22

      如何参与贡献链接:https://dolphinscheduler.apache.org/zh-cn/community/development/contribute.html

      来吧,DolphinScheduler开源社区需要您的参与,为中国开源崛起添砖加瓦吧,哪怕只是小小的一块瓦,汇聚起来的力量也是巨大的。

      文章转载自海豚调度,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

      评论