1. 资源规划

组件 bigdata-hk-node1 bigdata-hk-node2 bigdata-hk-node3
OS centos7.6 centos7.6 centos7.6
JDK jvm jvm jvm
Zookeeper QuorumPeerMain QuorumPeerMain QuorumPeerMain
MySQL N.A N.A mysqld
DS MasterServer / ApiApplicationServer MasterServer / WorkerServer / AlertServer / LoggerServer WorkerServer / LoggerServer

2. 安装介质

版本:apache-dolphinscheduler-1.3.9-bin.tar.gz
下载:https://dolphinscheduler.apache.org/zh-cn/download/download.html

3. 环境准备

  • 安装JDK(v1.8+)

参考:《CentOS7.6-安装JDK-1.8.221

  • 安装MySQL(v5.7+,JDBC Driver v5.1.47+)

参考:《CentOS7.6-安装MySQL-5.7.30

  • 安装ZooKeeper(v3.4.6+)

参考:《CentOS7.6-安装ZooKeeper-3.6.3
说明:节点内存建议分配大于4G,否则告警服务器、日志服务器等无法正常启动。

4. 安装DS

4.1. 解压缩

  1. cd /share
  2. tar -zxvf apache-dolphinscheduler-1.3.9-bin.tar.gz -C /opt/module/
  3. mv /opt/module/apache-dolphinscheduler-1.3.9-bin /opt/module/dolphinscheduler-1.3.9

4.2. 创建部署用户

先在“bigdata-hk-node1”节点部署DolphinScheduler,之后分发到其他节点,所有安装节点均需新建用户:**dolphinscheduler**

  1. sudo su
  2. # 新建用户(所有DS相关节点执行)
  3. useradd dolphinscheduler
  4. # 设置密码
  5. echo "dolphinscheduler" | passwd --stdin dolphinscheduler

设置sudo免密:

  1. sudo su
  2. echo 'dolphinscheduler ALL=(ALL) NOPASSWD: NOPASSWD: ALL' >> /etc/sudoers
  3. sed -i 's/Defaults requirett/#Defaults requirett/g' /etc/sudoers

4.3. 配置hosts映射

安装虚拟机时已配置好映射,此处可省略。

  1. sudo vi /etc/hosts
  2. 192.168.56.101 bigdata-hk-node1
  3. 192.168.56.102 bigdata-hk-node2
  4. 192.168.56.103 bigdata-hk-node3

4.3. 配置ssh免密登录

配置节点“bigdata-hk-node1”到其他节点的ssh免密登录,以下操作均在bigdata-hk-node1节点上执行

  1. 修改DolphinScheduler安装目录权限。

    1. sudo chown -R dolphinscheduler:dolphinscheduler /opt/module/dolphinscheduler-1.3.9
  2. 生成密钥。

    1. su - dolphinscheduler
    2. ssh-keygen
  3. 将生成的公钥复制到其他节点。

    1. ssh-copy-id bigdata-hk-node1
    2. ssh-copy-id bigdata-hk-node2
    3. ssh-copy-id bigdata-hk-node3

    4.4. 配置数据库

    1. # bigdata-hk-node3(MySQL安装节点,root)
    2. sudo su
    3. source /etc/profile
    4. mysql -uroot -p123456

    内容如下:

    1. CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    2. GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphinscheduler'@'%' IDENTIFIED BY 'dolphinscheduler';
    3. GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphinscheduler'@'localhost' IDENTIFIED BY 'dolphinscheduler';
    4. flush privileges;
    5. quit

    4.5. 创建表和导入基础数据

    修改“conf”目录下“datasource.properties”中的配置。如果选择MySQL,请注释掉PostgreSQL相关配置(反之同理),还需要手动添加MySQL驱动jar包到“lib”目录下,这里下载的是:mysql-connector-java-5.1.47.jar,然后正确配置数据库连接相关信息。

    1. cd /opt/module/dolphinscheduler-1.3.9
    2. cp /share/mysql-connector-java-5.1.47.jar /opt/module/dolphinscheduler-1.3.9/lib/
    3. vi conf/datasource.properties

    内容如下: ```

    postgre

    spring.datasource.driver-class-name=org.postgresql.Driver

    spring.datasource.url=jdbc:postgresql://localhost:5432/dolphinscheduler

mysql

spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://192.168.56.103:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true spring.datasource.username=dolphinscheduler spring.datasource.password=dolphinscheduler

  1. 修改并保存完后,执行“script”目录下的创建表及导入基础数据脚本。
  2. ```bash
  3. cd /opt/module/dolphinscheduler-1.3.9
  4. sh script/create-dolphinscheduler.sh

4.6. 修改运行参数

  1. cd /opt/module/dolphinscheduler-1.3.9
  2. rm -rf conf/env/dolphinscheduler_env.sh
  3. vi conf/env/dolphinscheduler_env.sh

内容如下:

  1. export HADOOP_HOME=/opt/module/hadoop-3.2.2
  2. export HADOOP_CONF_DIR=/opt/module/hadoop-3.2.2/etc/hadoop
  3. export SPARK_HOME2=/opt/module/spark
  4. export PYTHON_HOME=/usr/bin/python
  5. export JAVA_HOME=/opt/module/jdk1.8.0_221
  6. export HIVE_HOME=/opt/module/apache-hive-3.1.2-bin
  7. export DATAX_HOME=/opt/module/datax/bin/datax.py
  8. export PATH=$HADOOP_HOME/bin:$SPARK_HOME2/bin:$PYTHON_HOME:$JAVA_HOME/bin:$HIVE_HOME/bin:$DATAX_HOME:$PATH

创建JDK软链接:

  1. sudo ln -s /opt/module/jdk1.8.0_221/bin/java /usr/bin/java

4.7. 修改一键部署参数

  1. cd /opt/module/dolphinscheduler-1.3.9
  2. vi conf/config/install_config.conf

内容如下:

  1. # 这里填mysql或postgresql
  2. dbtype="mysql"
  3. # 数据库连接地址
  4. dbhost="192.168.56.103:3306"
  5. # 数据库名
  6. dbname="dolphinscheduler"
  7. # 数据库用户名
  8. username="dolphinscheduler"
  9. # 数据库密码,如果有特殊字符,请使用 \ 转义
  10. password="dolphinscheduler"
  11. # Zookeeper 地址
  12. zkQuorum="192.168.56.101:2181,192.168.56.102:2181,192.168.56.103:2181"
  13. # 将DS安装到哪个目录,不同于解压目录,在解压目录中新建了一个install_path作为安装目录
  14. installPath="/opt/module/dolphinscheduler-1.3.9/install"
  15. # 使用哪个用户部署,使用第 3 节创建的用户
  16. deployUser="dolphinscheduler"
  17. # 邮件协议
  18. mailProtocol="SMTP"
  19. # 邮件服务地址
  20. mailServerHost="smtp.qq.com"
  21. # 发送者
  22. mailSender="xxx@qq.com"
  23. # 发送用户
  24. mailUser="xxx@qq.com"
  25. # 邮件服务地址值,与${mailServerHost}保持一致
  26. sslTrust="smtp.qq.com"
  27. # 业务用到的比如sql等资源文件上传到哪里,可以设置:HDFS、S3、NONE
  28. # 单机如果想使用本地文件系统,请配置为 HDFS,因为 HDFS 支持本地文件系统;
  29. # 如果不需要资源上传功能请选择NONE。强调一点:使用本地文件系统不需要部署hadoop
  30. resourceStorageType="HDFS"
  31. # 用户数据本地目录,请确保该目录存在,且具有读写权限
  32. dataBasedirPath="/opt/module/dolphinscheduler-1.3.9/data"
  33. # 如果上传资源保存想保存在hadoop上,hadoop集群的NameNode 启用了HA的话,
  34. # 需要将hadoop的配置文件core-site.xml和hdfs-site.xml 放到安装路径的conf目录下
  35. # 本例即是放到/opt/module/dolphinscheduler/conf下面,并配置namenode cluster名称;
  36. # 如果NameNode不是HA,则只需要将mycluster修改为具体的ip或者主机名即可
  37. defaultFS="hdfs://bigdata-hk-node1:8020"
  38. # 如果没有使用到Yarn,保持以下默认值即可;
  39. # 如果ResourceManager是HA,则配置为ResourceManager节点的主备ip或者 hostname
  40. # 比如"192.168.xx.xx,192.168.xx.xx";
  41. # 如果是单ResourceManager请配置yarnHaIps=""即可
  42. yarnHaIps=""
  43. # 如果ResourceManager是HA或者没有使用到Yarn保持默认值即可;
  44. # 如果是单ResourceManager,请配置真实的ResourceManager主机名或者ip
  45. singleYarnIp="192.168.56.102"
  46. # 资源上传根路径,主持HDFS和S3,由于hdfs支持本地文件系统,需要确保本地文件夹存在且有读写权限
  47. resourceUploadPath="/opt/module/dolphinscheduler-1.3.9/resource"
  48. # 在哪些机器上部署DS服务
  49. ips="192.168.56.101,192.168.56.102,192.168.56.103"
  50. # master服务部署在哪台机器上
  51. masters="192.168.56.101,192.168.56.102"
  52. # worker服务部署在哪台机器上,并指定此worker属于哪一个worker组
  53. # 下面示例的default即为组名
  54. workers="192.168.56.102:default,192.168.56.103:default"
  55. # 报警服务部署在哪台机器上
  56. alertServer="192.168.56.102"
  57. # api 服务端口(默认)
  58. apiServerPort="12345"
  59. # 后端api服务部署在在哪台机器上
  60. apiServers="192.168.56.101"

4.8. 一键部署

  1. su - dolphinscheduler
  2. cd /opt/module/dolphinscheduler-1.3.9
  3. sh install.sh

进程查看:

  1. # bigdata-hk-node1
  2. jps
  3. **** MasterServer
  4. **** ApiApplicationServer
  5. # bigdata-hk-node2
  6. jps
  7. **** MasterServer
  8. **** WorkerServer
  9. **** AlertServer
  10. **** LoggerServer
  11. # bigdata-hk-node3
  12. jps
  13. **** WorkerServer
  14. **** LoggerServer

日志查看:

  1. ls -l /opt/module/dolphinscheduler-1.3.9/install/logs
  2. tail -200f /opt/module/dolphinscheduler-1.3.9/install/logs/dolphinscheduler-*.out
  3. tail -200f /opt/module/dolphinscheduler-1.3.9/install/logs/dolphinscheduler-*.log

5. 服务启停

  1. cd /opt/module/dolphinscheduler-1.3.9/install
  2. # 一键启停
  3. sh ./bin/start-all.sh
  4. sh ./bin/stop-all.sh

注意:需要启动ZooKeeper服务才能正常访问Web端。

6. 验证

WebUI:http://bigdata-hk-node1:12345/dolphinscheduler
默认账户口令:admin/dolphinscheduler123