• Apache DolphinScheduler-3.2.0集群部署教程


    集群部署方案(2 Master + 3 Worker)

    主机名ip部署服务
    hadoop31192.168.0.31MasterServer、WorkerServer、ApiServer
    hadoop32192.168.0.32MasterServer、WorkerServer
    hadoop33192.168.0.33WorkerServer、AlertServer

    前置准备工作

    • 操作系统:Linux CentOS 7.9 【CPU 4核+ 内存8G+】
    • JDK:下载JDK(1.8+),安装并配置 JAVA_HOME 环境变量,并将其下的 bin 目录追加到 PATH 环境变量中。
    • 数据库:MySQL(5.7+)或者 PostgreSQL(8.2.15+),两者任选其一即可,如 MySQL 则需要JDBC Driver 8.0.16 版本。【此处使用MySQL 8.2.0,驱动使用的是:mysql-connector-j-8.2.0.jar】
    • 注册中心:Zookeeper(3.8.0+),集群模式,【此处使用 3.8.3 版本】
    • 二进制包:下载地址 https://www.apache.org/dyn/closer.lua/dolphinscheduler/3.2.0/apache-dolphinscheduler-3.2.0-bin.tar.gz
    • 注意:Apache DolphinScheduler 本身不依赖 Hadoop、Hive、Spark,但如果你运行的任务需要依赖他们,就需要有对应的环境支持。

    端口说明

    组件默认端口说明
    MasterServer5678非通信端口,只需本机端口不冲突即可
    WorkerServer1234非通信端口,只需本机端口不冲突即可
    ApiApplicationServer12345提供后端通信端口

    集群部署

    时间同步

    服务端:192.168.0.31 客户端:192.168.0.32、192.168.0.33,服务端在31执行,客户端在32、33执行

    # 服务端和客户端,安装chrony
    yum install chrony -y
    
    # 服务端和客户端,安装chrony
    yum install chrony -y
    
    # 服务端(此处也可以使用 ntp.aliyun.com 来代替 192.168.0.31,使用阿里云时间服务,如果使用31则是本机时间)
    cat > /etc/chrony.conf << EOF 
    pool 192.168.0.31 iburst
    driftfile /var/lib/chrony/drift
    makestep 1.0 3
    rtcsync
    allow 192.168.0.0/24
    local stratum 10
    keyfile /etc/chrony.keys
    leapsectz right/UTC
    logdir /var/log/chrony
    EOF
    
    # 客户端
    cat > /etc/chrony.conf << EOF 
    pool 192.168.0.31 iburst
    driftfile /var/lib/chrony/drift
    makestep 1.0 3
    rtcsync
    keyfile /etc/chrony.keys
    leapsectz right/UTC
    logdir /var/log/chrony
    EOF
    
    # 客服端和服务端,重启chrony,开机自启动
    systemctl restart chronyd
    systemctl enable chronyd
    
    #客户端进行验证
    chronyc sources -v
    
    # 参数解释
    #
    # pool ntp.aliyun.com iburst
    # 指定使用ntp.aliyun.com作为时间服务器池,iburst选项表示在初始同步时会发送多个请求以加快同步速度。
    # 
    # driftfile /var/lib/chrony/drift
    # 指定用于保存时钟漂移信息的文件路径。
    # 
    # makestep 1.0 3
    # 设置当系统时间与服务器时间偏差大于1秒时,会以1秒的步长进行调整。如果偏差超过3秒,则立即进行时间调整。
    # 
    # rtcsync
    # 启用硬件时钟同步功能,可以提高时钟的准确性。
    # 
    # allow 192.168.0.0/24
    # 允许192.168.0.0/24网段范围内的主机与chrony进行时间同步。
    # 
    # local stratum 10
    # 将本地时钟设为stratum 10,stratum值表示时钟的准确度,值越小表示准确度越高。
    # 
    # keyfile /etc/chrony.keys
    # 指定使用的密钥文件路径,用于对时间同步进行身份验证。
    # 
    # leapsectz right/UTC
    # 指定时区为UTC。
    # 
    # logdir /var/log/chrony
    # 指定日志文件存放目录。
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64

    配置用户、权限

    # 创建用户需使用 root 登录
    useradd dolphinscheduler
    
    # 添加密码
    echo "dolphinscheduler" | passwd --stdin dolphinscheduler
    
    # 配置 sudo 免密
    sed -i '$adolphinscheduler  ALL=(ALL)  NOPASSWD: NOPASSWD: ALL' /etc/sudoers
    sed -i 's/Defaults    requirett/#Defaults    requirett/g' /etc/sudoers
    
    # 修改目录权限,使得部署用户对二进制包解压后的 apache-dolphinscheduler-*-bin 目录有操作权限
    chown -R dolphinscheduler:dolphinscheduler apache-dolphinscheduler-*-bin
    chmod -R 755 apache-dolphinscheduler-*-bin
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    配置集群免密登陆

    # 使用创建的 dolphinscheduler 登陆,配置hadoop31到hadoop32、hadoop33免密登陆
    su dolphinscheduler
    
    # hadoop31节点,生成密钥
    ssh-keygen -t rsa
    
    # hadoop31节点操作,配置向hadoop31、hadoop32、hadoop33节点免密
    ssh-copy-id hadoop31
    ssh-copy-id hadoop32
    ssh-copy-id hadoop33
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    ZooKeeper集群启动

     集群安装,参考教程:ZooKeeper集群的安装,本文安装 ZK 版本为 3.8.3。参考教程中是 3.4.14,安装步骤都是一样儿的,对应着来就可以了。

    # 启动zk集群
    bin/zkServer.sh start
    • 1

    初始化数据库

    此处以 MySQL 为例

    创建数据库、用户、授权
    -- 进入MySQL命令行
    [root@hadoop01]# mysql -u root -p 
    Enter password: xxxxxx
    -- 创建 dolphinscheduler 数据库用户和密码,并限定登陆范围
    mysql > CREATE USER 'dolphinscheduler'@'%' IDENTIFIED BY 'dolphinscheduler';
    -- 创建 dolphinscheduler 的元数据,并指定编码
    mysql > CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    -- 为dolphinscheduler数据库授权
    mysql > grant all privileges on dolphinscheduler.* to 'dolphinscheduler'@'%';
    -- 刷新权限
    mysql > flush privileges;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    解压缩安装包

    # 将apache-dolphinscheduler-3.2.0-bin.tar.gz上传至/opt/targz目录下
    
    # 解压
    [root@hadoop31 targz]# tar zxvf ./apache-dolphinscheduler-3.2.0-bin.tar.gz
    
    # 修改目录权限,使得部署用户对解压缩后的文件有操作权限
    [root@hadoop31 targz]# chown -R dolphinscheduler:dolphinscheduler apache-dolphinscheduler-3.2.0-bin
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    添加MySQL驱动至libs目录

    ​ 此处使用 MySQL 8.2.0版本,对应使用 JDBC 驱动为 mysql-connector-j-8.2.0.jar,将该驱动移动至 DolphinScheduler 的每个模块下的 libs 目录下。共5个目录:

    • api-server/libs
    • alert-server/libs
    • master-server/libs
    • worker-server/libs
    • tools/libs

    配置文件修改

    dolphinscheduler_env.sh 配置
    # 修改dolphinscheduler_env.sh
    vim apache-dolphinscheduler-3.2.0-bin/bin/env/dolphinscheduler_env.sh
    
    # 在文末添加以下配置:
    # JAVA_HOME, will use it to start DolphinScheduler server
    # JDK配置
    export JAVA_HOME=${JAVA_HOME:-/opt/soft/jdk8}
    
    # Database related configuration, set database type, username and password
    # MySQL数据库配置
    export DATABASE=${DATABASE:-mysql}
    export SPRING_PROFILES_ACTIVE=${DATABASE}
    export SPRING_DATASOURCE_URL="jdbc:mysql://192.168.17.28:3307/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false"
    export SPRING_DATASOURCE_USERNAME=${SPRING_DATASOURCE_USERNAME:-"dolphinscheduler"}
    export SPRING_DATASOURCE_PASSWORD=${SPRING_DATASOURCE_PASSWORD:-"dolphinscheduler"}
    
    # DolphinScheduler server related configuration
    export SPRING_CACHE_TYPE=${SPRING_CACHE_TYPE:-none}
    export SPRING_JACKSON_TIME_ZONE=${SPRING_JACKSON_TIME_ZONE:-UTC}
    export MASTER_FETCH_COMMAND_NUM=${MASTER_FETCH_COMMAND_NUM:-10}
    
    # Registry center configuration, determines the type and link of the registry center
    # zk注册中心
    export REGISTRY_TYPE=${REGISTRY_TYPE:-zookeeper}
    export REGISTRY_ZOOKEEPER_CONNECT_STRING=${REGISTRY_ZOOKEEPER_CONNECT_STRING:-hadoop31:2181,hadoop32:2181,hadoop33:2181}
    
    # Tasks related configurations, need to change the configuration if you use the related tasks.
    # 其他环境配置(此处只配置了hadoop、hive,其他环境未部署)
    # 如果你不使用某些任务类型,可以忽略不做配置,使用默认即可。比如Flink不使用,不做处理即可
    export HADOOP_HOME=${HADOOP_HOME:-/opt/soft/hadoop-3.3.6}
    export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/opt/soft/hadoop-3.3.6/etc/hadoop}
    export SPARK_HOME=${SPARK_HOME:-/opt/soft/spark}
    export PYTHON_LAUNCHER=${PYTHON_LAUNCHER:-/opt/soft/python}
    export HIVE_HOME=${HIVE_HOME:-/opt/soft/hive-3.1.3}
    export FLINK_HOME=${FLINK_HOME:-/opt/soft/flink}
    export DATAX_LAUNCHER=${DATAX_LAUNCHER:-/opt/soft/datax/bin/python3}
    
    export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_LAUNCHER:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_LAUNCHER:$PATH
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38

    install_env.sh文件修改

    # 修改install_env.sh
    vim apache-dolphinscheduler-3.2.0-bin/bin/env/install_env.sh
    
    # 按照集群部署方案,内容如下:
    
    # 集群节点
    ips=${ips:-"hadoop31,hadoop32,hadoop33"}
    
    # ssh免密端口,使用默认
    sshPort=${sshPort:-"22"}
    
    # master节点
    masters=${masters:-"hadoop31,hadoop32"}
    
    # worker节点
    workers=${workers:-"hadoop31:default,hadoop32:default,hadoop33:default"}
    
    # alert节点
    alertServer=${alertServer:-"hadoop33"}
    
    # api节点
    apiServers=${apiServers:-"hadoop31"}
    
    # dolphinscheduler实际安装路径
    installPath=${installPath:-"/opt/soft/dolphinscheduler-3.2.0"}
    
    # 部署dolphinscheduler使用的用户名
    deployUser=${deployUser:-"dolphinscheduler"}
    
    # zk根节点
    zkRoot=${zkRoot:-"/dolphinscheduler"}
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    初始化元数据

    # 切换到apache-dolphinscheduler-3.2.0-bin目录下,执行命令
    [root@hadoop31 apache-dolphinscheduler-3.2.0-bin]# sh ./tools/bin/upgrade-schema.sh
    
    # 此操作,会向MySQL数据库写入元数据,共计65张表,如图所示:
    
    • 1
    • 2
    • 3
    • 4

    file

    安装Apache DolphinScheduler

    # 执行install.sh部署命令
    [root@hadoop31 apache-dolphinscheduler-3.2.0-bin]# ./bin/install.sh 
    
    # 当看到下图时,说明 DS 安装完成
    • 1
    • 2
    • 3

    file

    提示:

    安装完成后,此时安装用到的 apache-dolphinscheduler-3.2.0-bin 文件就没用了。

    此时,已经将 Apache DolphinScheduler 安装到配置中指定的 /opt/soft/dolphinscheduler-3.2.0 目录下了

    登录Apache DolphinScheduler 控制台

    访问地址:http://192.168.0.31:12345/dolphinscheduler/ui/

    用户名:admin

    密码:dolphinscheduler123

    file

    查看监控中心Master/Worker节点信息

    1.Master节点

    file

    2.Worker节点

    file

    启动/停止服务命令

    第一次安装后,会自动启动所有服务。如有服务问题或者后续需要启停,命令如下。以下脚本都在 DolphinScheduler安装目录的bin下

    # 一键停止集群所有服务
    sh /opt/soft/dolphinscheduler-3.2.0/bin/stop-all.sh
    
    # 一键启动集群所有服务
    sh /opt/soft/dolphinscheduler-3.2.0/bin/start-all.sh
    
    # 启/停 master 服务
    sh /opt/soft/dolphinscheduler-3.2.0/bin/dolphinscheduler-daemon.sh start master-server 
    sh /opt/soft/dolphinscheduler-3.2.0/bin/dolphinscheduler-daemon.sh stop master-server 
    
    # 启/停 worker 服务
    sh /opt/soft/dolphinscheduler-3.2.0/bin/dolphinscheduler-daemon.sh start worker-server 
    sh /opt/soft/dolphinscheduler-3.2.0/bin/dolphinscheduler-daemon.sh stop worker-server 
    
    # 启/停 api 服务
    sh /opt/soft/dolphinscheduler-3.2.0/bin/dolphinscheduler-daemon.sh start api-server 
    sh /opt/soft/dolphinscheduler-3.2.0/bin/dolphinscheduler-daemon.sh stop api-server 
    
    # 启/停 alert 服务
    sh /opt/soft/dolphinscheduler-3.2.0/bin/dolphinscheduler-daemon.sh start alert-server 
    sh /opt/soft/dolphinscheduler-3.2.0/bin/dolphinscheduler-daemon.sh stop alert-server 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    本文结束,谢谢!

    本文由 白鲸开源科技 提供发布支持!

  • 相关阅读:
    Nginx使用教程
    多线程基础篇
    阿里云ack集群升级流程
    PS之ICO插件ICOFormat
    传感器信息系统中的节能收集研究(Matlab代码实现)
    微信小程序| 用小程序复刻微信Wechat
    go-zero直连与etcd服务注册中心
    携手亚信安慧AntDB,在数智化浪潮中乘风破浪
    Redis----布隆过滤器
    读《Linux内核设计与实现》我想到了这些书
  • 原文地址:https://blog.csdn.net/DolphinScheduler/article/details/136624876