美文网首页
Dolphinscheduler解决zookeeper版本不兼容

Dolphinscheduler解决zookeeper版本不兼容

作者: 圆企鹅i | 来源:发表于2023-11-20 14:18 被阅读0次

前言

dolphinscheduler安装版本:3.1.8
zookeeper版本:3.4.5-cdh6.3.2

发现问题&分析问题

  1. 启动运行发现worker有错误日志
Exception in thread "Worker-Server" org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'workerServer': Unsatisfied dependency expressed through field 'workerRegistryClient'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'workerRegistryClient': Unsatisfied dependency expressed through field 'registryClient'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'registryClient': Invocation of init method failed; nested exception is org.apache.dolphinscheduler.registry.api.RegistryException: Failed to put registry key: /nodes/master
.....
Caused by: org.apache.zookeeper.KeeperException$UnimplementedException: KeeperErrorCode = Unimplemented for /dolphinscheduler/nodes/master
...
  1. 通过查询github发现有老哥遇到相同的错误
    [Bug] [Config] The rootPath for modifying the registration of zookeeper by dolphinescheduler is invalid · Issue #12516 · apache/dolphinscheduler (github.com)
    curator官网也有相对应的公布 3.4.x需要对应curator的4.2.0版本
    ZooKeeper Version 3.4.x Compatibility | Apache Curator

  2. 官方文档上显示,3.4.6+版本即可,随即尝试升级了zk到3.4.14发现任然有问题

  1. 问了社区群里的老哥 发现dolphinscheduler 有在这方面做准备 但是需要自己重新编译各一个新包
    瞅了一眼源码
    <profiles>
        <profile>
            <id>zk-3.8</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <zookeeper.version>3.8.0</zookeeper.version>
                <curator.version>5.3.0</curator.version>
            </properties>
        </profile>
        <profile>
            <id>zk-3.4</id>
            <activation>
                <property>
                    <name>zk-3.4</name>
                </property>
            </activation>
            <properties>
                <curator.version>4.3.0</curator.version>
                <zookeeper.version>3.4.14</zookeeper.version>
            </properties>
        </profile>
    </profiles>

默认是使用zk-3.8的配置,所以会出现不兼容问题。
使用zk-3.4配置即可适配3.4.x
ps:之前还有shell的问题,* [BUG][install.sh] fix the install Error "Command not found rmr" & support ZooKeeper (3.4.6+)
2023.1.12已经被社区解决

解决办法

#clone
git clone https://github.com/apache/dolphinscheduler.git
#切换到3.1.8的tag
git -c core.quotepath=false -c log.showSignature=false checkout 3.1.8

根目录执行

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

大约三四十分钟后打包完成

拿到打包好的新安装包 按照文档继续安装
{path}\dolphinscheduler\dolphinscheduler-dist\target\apache-dolphinscheduler-3.1.8-bin.tar.gz

总结

感谢github
感谢群里挖呀挖呀挖老哥

相关文章

网友评论

      本文标题:Dolphinscheduler解决zookeeper版本不兼容

      本文链接:https://www.haomeiwen.com/subject/qfevwdtx.html