前置准备
服务器
node01,node02,node03三台服务器(本教程服务器系统版本Linux version 3.10.0-1160.el7.x86_64)
node01作为master,api,alert节点,node02和node03作为worker节点
安装包下载
下载dolphinscheduler和zookeeper安装包
参考
https://dolphinscheduler.apache.org/zh-cn/docs/latest/user_doc/guide/installation/pseudo-cluster.html
下载时注意,现在的都是二进制包,bin
文件下载apache-dolphinscheduler-3.0.0-bin.tar.gz和apache-zookeeper-3.8.0-bin.tar.gz到node01
目录下(自己创建)解压
tar -zxvf apache-dolphinscheduler-3.0.0-bin.tar.gz
tar -zxvf apache-zookeeper-3.8.0-bin.tar.gz
下载mysql的驱动mysql-connector-java-8.0.16
放到apache-dolphinscheduler-3.0.0-bin下的
准备 DolphinScheduler 启动环境
配置用户免密及权限
https://dolphinscheduler.apache.org/zh-cn/docs/latest/user_doc/guide/installation/pseudo-cluster.html
参考上面地址的官方文档
注意,在配置sudo免密后
在node01上执行
ssh-copy-id node02
ssh-copy-id node03
启动zookeeper(如果已经有该服务了,跳过)
进入 zookeeper 的安装目录,将 zoo_sample.cfg 配置文件复制到 conf/zoo.cfg,并将 conf/zoo.cfg 中 dataDir 中的值改成 dataDir=./tmp/zookeeper
启动 zookeeper
cd apache-zookeeper-3.8.0-bin
./bin/zkServer.sh start
查看zookeeper状态
./bin/zkServer.sh status
结果
配置mysql数据源作为元数据管理数据库
docker 在node01上部署mysql5.7
docker pull mysql:5.7
启动容器,映射端口自己定,别冲突就好,密码自己写
docker run --name dolphin_mysql5.7 -p 23306:3306 -v /etc/localtime:/etc/localtime -e MYSQL_ROOT_PASSWORD='123456' -d --restart=always mysql:5.7
数据库初始化
参考
https://dolphinscheduler.apache.org/zh-cn/docs/latest/user_doc/guide/howto/datasource-setting.html
对应的mysql5.7
修改/apache-dolphinscheduler-3.0.0-bin/bin/env下的dolphinscheduler_env.sh
完成上述步骤后,您已经为 DolphinScheduler 创建一个新数据库,现在你可以通过快速的 Shell 脚本来初始化数据库
bash apache-dolphinscheduler-3.0.0-bin/tools/bin/upgrade-schema.sh
会在数据库dolphinscheduler创建一些表.
修改相关配置
完成基础环境的准备后,需要根据你的机器环境修改配置文件。配置文件可以在目录 bin/env 中找到,他们分别是 并命名为 install_env.sh 和 dolphinscheduler_env.sh。
修改 install_env.sh 文件
文件 install_env.sh 描述了哪些机器将被安装 DolphinScheduler 以及每台机器对应安装哪些服务。您可以在路径 /apache-dolphinscheduler-3.0.0-bin/bin/env/install_env.sh 中找到此文件,可通过以下方式更改env变量,export <ENV_NAME>=,配置详情如下。
参考,https://dolphinscheduler.apache.org/zh-cn/docs/latest/user_doc/guide/installation/cluster.html
按照自己的服务配置,可以用服务器名或ip
# ---------------------------------------------------------
# INSTALL MACHINE
# ---------------------------------------------------------
# 需要配置master、worker、API server,所在服务器的IP均为机器IP或者localhost
# 如果是配置hostname的话,需要保证机器间可以通过hostname相互链接
# 如下图所示,部署 DolphinScheduler 机器的 hostname 为 ds1,ds2,ds3,ds4,ds5,其中 ds1,ds2 安装 master 服务,ds3,ds4,ds5安装 worker 服务,alert server安装在ds4中,api server 安装在ds5中
ips="node01,node02,node03"
masters="node01"
workers="node02:default,node03:default"
alertServer="node01"
apiServers="node01"
修改 dolphinscheduler_env.sh 文件
/apache-dolphinscheduler-3.0.0-bin/bin/env下的dolphinscheduler_env.sh
启动 DolphinScheduler
bash apache-dolphinscheduler-3.0.0-bin/bin/install.sh
配置资源文件上传到hdfs上
- 如果是部署完成后,执行install.sh后
如果是部署完成后,执行install.sh后,
可以修改如下配置文件./conf/common.properties
注意:如果hadoop配置了HA
fs.defaultFS后面的值不能写ip:8020,要根据core-site.html中的内容填写,否则如果指定的ip的namenode的状态是standby,就会报错 Operation category READ is not supported in state standby
注意:
如果只配置了 api-server/conf/common.properties 的文件,则只是开启了资源上传的操作,并不能满足正常使用。如果想要在工作流中执行相关文件则需要额外配置 worker-server/conf/common.properties。
如果用到资源上传的功能,那么安装部署中,部署用户需要有这部分的操作权限。
如果 Hadoop 集群的 NameNode 配置了 HA 的话,需要开启 HDFS 类型的资源上传,同时需要将 Hadoop 集群下的 core-site.xml 和 hdfs-site.xml 复制到 worker-server/conf 以及 api-server/conf,非 NameNode HA 跳过次步骤。
DolphinScheduler 支持时区设置。
服务时区
使用脚本 bin/dolphinshceduler_daemon.sh启动服务, 服务的默认时区为UTC, 可以在bin/env/dolphinscheduler_env.sh中进行修改, 如export SPRING_JACKSON_TIME_ZONE=${SPRING_JACKSON_TIME_ZONE:-Asia/Shanghai}。