• Dolphin Scheduler 2.x版本部署篇


    🙂🙂小编本身使用过开源的各种调度系统,从Azkaban、Airflow、DolphinScheduler,最舒服、方便快捷的还是DS。算是DS最开始的一批使用者,从1.x到2.x,最新的3.x还没有使用,小编推荐大家使用1.3.8版本。

    前置准备工作

    • JDK:下载JDK (1.8+),并将 JAVA_HOME 配置到以及 PATH 变量中。如果你的环境中已存在,可以跳过这步。
    • 二进制包:在下载页面下载 DolphinScheduler 二进制包
    • 数据库:PostgreSQL (8.2.15+) 或者 MySQL (5.7+),两者任选其一即可。这里小编选择的是mysql,另外 MySQL 则需要 JDBC Driver 8.0.16,1.x版本使用driver版本低,2.x版本必须使用高版本的driver,要不后面在配置数据源中心mysql的时候,创建会失败
    • 注册中心:ZooKeeper (3.4.6+),下载地址
    • 进程树分析(这里小编并没有使用这个
      • macOS安装pstree
      • Fedora/Red/Hat/CentOS/Ubuntu/Debian安装psmisc

    环境是第一步,大家无论安装什么软件时一定要保证自己的环境是可以使用的

    准备DolphinScheduler 启动环境

    配置用户免密及权限

    创建部署用户,并且一定要配置 sudo 免密。以创建 dolphinscheduler 用户为例(这里小编是以dolphinscheduler用户部署的)

    # 创建用户需使用 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 因为任务执行服务是以 sudo -u {linux-user} 切换不同 linux 用户的方式来实现多租户运行作业,所以部署用户需要有 sudo 权限,而且是免密的。
    • 如果发现 /etc/sudoers 文件中有 “Defaults requirett” 这行,也请注释掉

    配置机器SSH免密登陆

    由于安装的时候需要向不同机器发送资源(DS安装集群模式是分布式,它会向不同的节点去创建DS目录、资源),所以要求各台机器间能实现SSH免密登陆。

    su dolphinscheduler
    
    ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys
    
    • 1
    • 2
    • 3
    • 4
    • 5

    启动ZK

    进入 zookeeper 的安装目录,将 zoo_sample.cfg 配置文件复制到 conf/zoo.cfg,并将 conf/zoo.cfg 中 dataDir 中的值改成 dataDir=./tmp/zookeeper

    # 启动 zookeeper
    ./bin/zkServer.sh start
    
    • 1
    • 2

    修改相关配置

    完成了基础环境的准备后,在运行部署钱,还需要根据环境修改配置文件。配置文件在路径conf/config/install_config.conf下,一般部署只需要修改INSTALL MACHINE、DolphinScheduler ENV、Database、Registry Server部分即可完成部署,下面对必须修改参数进行说明。这里小编会把伪集群部署和集群部署的安装文件都贴出来

    • 伪集群部署
    ips="localhost"
    sshPort="22"
    masters="localhost"
    workers="localhost:default"
    
    alertServer="localhost"
    
    apiServers="localhost"
    
    pythonGatewayServers="localhost"
    #ds会创建一个新的目录来执行调度的工作
    installPath="/opt/dolphinscheduler"
    #部署用户
    deployUser="dolphinscheduler"
    #资源存储位置
    dataBasedirPath="/data/dolphinscheduler"
    
    javaHome="/etc/alternatives/jre"
    
    apiServerPort="12345"
    #元数据库类型
    DATABASE_TYPE="mysql"
    #元数据url
    SPRING_DATASOURCE_URL="jdbc:mysql://mysql的ip:3306/dolphinscheduler?characterEncoding=UTF-8&allowMultiQueries=true"
    #mysql的账户
    SPRING_DATASOURCE_USERNAME="账户"
    #mysql的密码
    SPRING_DATASOURCE_PASSWORD="密码"
    
    registryPluginName="zookeeper"
    #注册中心的zk的ip
    registryServers="zk的ip:2181"
    
    registryNamespace="dolphinscheduler"
    
    
    taskPluginDir="lib/plugin/task"
    #资源中心的文件类型,伪集群、集群部署一定要选HDFS
    resourceStorageType="HDFS"
    #资源中心的地址,这里选择是本地目录
    resourceUploadPath="/data/dolphinscheduler"
    #资源中心的本地目录
    defaultFS="file:///data/dolphinscheduler"
    
    s3Endpoint="http://192.168.xx.xx:9010"
    s3AccessKey="xxxxxxxxxx"
    s3SecretKey="xxxxxxxxxx"
    
    resourceManagerHttpAddressPort="8088"
    #HA的yarn话填高可用的yarn地址
    yarnHaIps=""
    #yarn的ip,伪集群模式一般是单节点的yarn
    singleYarnIp="yarn的ip"
    
    hdfsRootUser="hdfs"
    
    kerberosStartUp="false"
    krb5ConfPath="$installPath/conf/krb5.conf"
    keytabUserName="hdfs-mycluster\\@ESZ.COM"
    keytabPath="$installPath/conf/hdfs.headless.keytab"
    kerberosExpireTime="2"
    
    sudoEnable="true"
    
    workerTenantAutoCreate="false"
    
    
    • 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
    • 65
    • 66
    • 集群模式
    ips="172.19.106.23,172.19.106.24,172.19.106.25"
    sshPort="22"
    #DS高可用模式,支持多masters
    masters="172.19.106.23,172.19.106.24"
    #工作节点
    workers="172.19.106.23:default,172.19.106.24:default,172.19.106.25:default"
    alertServer="172.19.106.25"
    apiServers="172.19.106.25"
    pythonGatewayServers="172.19.106.24"
    #ds会创建一个新的目录来执行调度的工作
    installPath="/opt/dolphinscheduler"
    #部署用户
    deployUser="dolphinscheduler"
    #资源存储位置
    dataBasedirPath="/data/dolphinscheduler"
    javaHome="/etc/alternatives/jre"
    apiServerPort="12345"
    #元数据库类型
    DATABASE_TYPE="mysql"
    #元数据url
    SPRING_DATASOURCE_URL="jdbc:mysql://mysql的ip:3306/dolphinscheduler?characterEncoding=UTF-8&allowMultiQueries=true"
    #mysql的账户
    SPRING_DATASOURCE_USERNAME="账户"
    #mysql的密码
    SPRING_DATASOURCE_PASSWORD="密码"
    registryPluginName="zookeeper"
    #注册中心的ip
    registryServers="172.19.106.23:2181,172.19.106.24:2181,172.19.106.25:2181"
    registryNamespace="dolphinscheduler"
    taskPluginDir="lib/plugin/task"
    #资源中心的文件类型,伪集群、集群部署一定要选HDFS
    resourceStorageType="HDFS"
    #资源中心上传到HDFS的目录
    resourceUploadPath="hdfs://172.19.106.23/dolphinscheduler"
    #资源中心hdfs的地址
    defaultFS="hdfs://172.19.106.23"
    s3Endpoint="http://192.168.xx.xx:9010"
    s3AccessKey="xxxxxxxxxx"
    s3SecretKey="xxxxxxxxxx"
    resourceManagerHttpAddressPort="8088"
    #集群下yarn是高可用的
    yarnHaIps="172.19.106.23,172.19.106.24,172.19.106.25"
    singleYarnIp="yarnIp1"
    #hdfs的用户
    hdfsRootUser="hdfs"
    kerberosStartUp="false"
    krb5ConfPath="$installPath/conf/krb5.conf"
    keytabUserName="hdfs-mycluster\\@ESZ.COM"
    keytabPath="$installPath/conf/hdfs.headless.keytab"
    kerberosExpireTime="2"
    sudoEnable="true"
    workerTenantAutoCreate="false"
    
    • 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
    • 运行环境配置在2.x版本有两种方式,一个是去修改/opt/dolphinscheduler/conf/env目录下的dolphinscheduler_env.sh,也可以去安全中心那里去配置(如下图)
      在这里插入图片描述

    初始化数据库

    DolphinScheduler 元数据存储在关系型数据库中,目前支持 PostgreSQL 和 MySQL,如果使用 MySQL 则需要手动下载mysql-connector-java 驱动 (8.0.16)(这里一定要使用高版本的,低版本的会出现bug,导致数据源中心的mysql创建不了) 并移动到 DolphinScheduler 的 lib目录下。下面以 MySQL 为例,说明如何初始化数据库(这里创建的账号密码就是配置在install_config.conf中的

    mysql -uroot -p
    
    mysql> CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    
    # 修改 {user} 和 {password} 为你希望的用户名和密码
    mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'%' IDENTIFIED BY '{password}';
    mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'localhost' IDENTIFIED BY '{password}';
    
    mysql> flush privileges;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    完成上述步骤后,您已经为 DolphinScheduler 创建一个新数据库,现在你可以通过快速的 Shell 脚本来初始化数据库

    sh script/create-dolphinscheduler.sh
    
    • 1

    启动DolphinScheduler

    sh install.sh
    
    • 1

    登录DolphinScheduler

    浏览器访问地址 http://localhost:12345/dolphinscheduler 即可登录系统UI。默认的用户名和密码是 admin/dolphinscheduler123
    在这里插入图片描述

  • 相关阅读:
    使用Blender编辑Character Creater 4的人物形象
    Elasticsearch最详细集群环境搭建
    Java 21 新特性:虚拟线程(Virtual Threads)
    K-verse 小型活动来袭!
    查询物流有多简单,具体步骤如下
    SystemVerilog Assertions应用指南 Chapter 1.17使用参数的SVA检验器
    ​孤网双机并联逆变器下垂控制策略(包括仿真模型,功率计算模块、下垂控制模块、电压电流双环控制模块​)(Simulink仿真)
    工具-visio2016和本地正版office2016安装冲突问题(已解决,成功安装并存)
    微服务治理热门技术揭秘:动态读写分离
    【深度学习笔记】计算机视觉——风格迁移
  • 原文地址:https://blog.csdn.net/qq_43182741/article/details/126226924