Apache DolphinScheduler中ZooKeeperCDH不兼容问题的解决方案
背景
看到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文件中
把<goals>标签全都删除掉,防止构建时用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'
可以看到,已经编译成功了。希望本文能帮助更多用户解决问题,如果您对这个话题感兴趣,欢迎来社区交流!
本文由 白鲸开源科技 提供发布支持!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Spring事务实现原理
1、引言 spring的spring-tx模块提供了对事务管理支持,使用spring事务可以让我们从复杂的事务处理中得到解脱,无需要去处理获得连接、关闭连接、事务提交和回滚等这些操作。 spring事务有编程式事务和声明式事务两种实现方式。编程式事务是通过编写代码来管理事务的提交、回滚、以及事务的边界。这意味着开发者需要在代码中显式地调用事务的开始、提交和回滚。声明式事务是通过配置来管理事务,您可以使用注解或XML配置来定义事务的边界和属性,而无需显式编写事务管理的代码。 下面我们逐步分析spring源代码,理解spring事务的实现原理。 2、编程式事务 2.1 使用示例 // transactionManager是某一个具体的PlatformTransactionManager实现类的对象 private PlatformTransactionManager transactionManager; // 定义事务属性 DefaultTransactionDefinition def = new DefaultTransactionDefinition(); //...
- 下一篇
哎呀,当时怎么没有想到 | 京东云技术团队
在我们的测试工作中,是不是经常遇到这样的情形,发生了线上问题,产品、研发或者测试同学一拍脑袋:当时怎么没有想到,怎么给漏掉了呢?明明是一个非常简单的事情,用大拇指都能想到的验证场景,为何当时就漏测了呢?但实际情况是,逃逸到线上的缺陷,疑难杂症式的极端异常的问题很少,大部分都不复杂且可以在设计和开发中规避,或者在测试过程中被识别出来。针对此类问题,从测试覆盖度的角度,本文试图解释一下为何会发生这样的事情,以及如何有效规避。 一. 为什么经常会发生测试场景覆盖不全的问题 高质量的测试覆盖率是确保产品质量和用户体验的关键因素,但为何会经常发生测试场景覆盖不全的问题,这里面既有主观因素的缺失,也有客观因素的限制,具体包括: 1. 主观原因 • 粗心大意:认为需求非常简单,没有认真分析验证场景及异常流程、分支流程,没有识别隐藏的细节,或者对于存在的风险,存在侥幸心理,不去进一步求证或验证。 • 经验主义:思维固化,认为老办法同样可以解决新问题,没有进一步思考对测试场景、测试数据、验证方式的不同之处。 • 需求理解不充分:测试用例只覆盖到了产品PRD里的显式功能,没有覆盖隐性需求,只进行了黑盒测...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7设置SWAP分区,小内存服务器的救世主
- Mario游戏-低调大师作品
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- 2048小游戏-低调大师作品
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库