集群部署(Cluster)
DolphinScheduler集群部署分为后端部署和前端部署两部分:
1、后端部署
1.1 : 基础软件安装(必装项请自行安装)
- PostgreSQL (8.2.15+) or Mysql (5.6或者5.7系列) : 两者任选其一即可
- JDK (1.8+) : 必装,请安装好后在/etc/profile下配置 JAVA_HOME 及 PATH 变量
- ZooKeeper (3.4.6+) :必装
- Hadoop (2.6+) or MinIO :选装,如果需要用到资源上传功能,可以选择上传到Hadoop or MinIO上
注意:DolphinScheduler本身不依赖Hadoop、Hive、Spark,仅是会调用他们的Client,用于对应任务的提交。
1.2 : 下载后端tar.gz包
- 请下载最新版本的后端安装包至服务器部署目录,比如创建 /opt/dolphinscheduler 做为安装部署目录,下载地址: 下载 (以1.2.0版本为例),下载后上传tar包到该目录中,并进行解压
# 创建部署目录
mkdir -p /opt/dolphinscheduler;
cd /opt/dolphinscheduler;
# 解压缩
tar -zxvf apache-dolphinscheduler-incubating-1.2.0-dolphinscheduler-backend-bin.tar.gz -C /opt/dolphinscheduler;
mv apache-dolphinscheduler-incubating-1.2.0-dolphinscheduler-backend-bin dolphinscheduler-backend
1.3:创建部署用户和hosts映射
- 在所有部署调度的机器上创建部署用户,并且一定要配置sudo免密。假如我们计划在ds1,ds2,ds3,ds4这4台机器上部署调度,首先需要在每台机器上都创建部署用户
# 设置用户名,请自行修改,后面以dolphinscheduler为例
useradd dolphinscheduler;
# 设置用户密码,请自行修改,后面以dolphinscheduler123为例
echo "dolphinscheduler123" | passwd --stdin dolphinscheduler
# 配置sudo免密
echo 'dolphinscheduler ALL=(ALL) NOPASSWD: NOPASSWD: ALL' >> /etc/sudoers
注意:
- 因为是以 sudo -u {linux-user} 切换不同linux用户的方式来实现多租户运行作业,所以部署用户需要有 sudo 权限,而且是免密的。
- 如果发现/etc/sudoers文件中有"Default requiretty"这行,也请注释掉
- 如果用到资源上传的话,还需要在`HDFS或者MinIO`上给该部署用户分配读写的权限
1.4 : 配置hosts映射和ssh打通及修改目录权限
-
以第一台机器(hostname为ds1)作为部署机,在ds1上配置所有待部署机器的hosts, 在ds1以root登录
vi /etc/hosts #add ip hostname 192.168.xxx.xxx ds1 192.168.xxx.xxx ds2 192.168.xxx.xxx ds3 192.168.xxx.xxx ds4
注意:请删掉或者注释掉127.0.0.1这行
-
同步ds1上的/etc/hosts到所有部署机器
for ip in ds2 ds3; #请将此处ds2 ds3替换为自己要部署的机器的hostname do sudo scp -r /etc/hosts $ip:/etc/ #在运行中需要输入root密码 done
备注:当然 通过
sshpass -p xxx sudo scp -r /etc/hosts $ip:/etc/
就可以省去输入密码了centos下sshpass的安装:
-
先安装epel
yum install -y epel-release
yum repolist
-
安装完成epel之后,就可以按照sshpass了
yum install -y sshpass
-
-
在ds1上,切换到部署用户并配置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
注意:*正常设置后