centos7搭建dolphinscheduler集群

1、简述html

Apache DolphinScheduler是一个分布式去中心化,易扩展的可视化DAG工做流任务调度系统。致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。有以下特性:java

高可靠性

去中心化的多Master和多Worker, 自身支持HA功能, 采用任务队列来避免过载,不会形成机器卡死python

简单易用

DAG监控界面,全部流程定义都是可视化,经过拖拽任务定制DAG,经过API方式与第三方系统对接, 一键部署linux

丰富的使用场景

支持暂停恢复操做. 支持多租户,更好的应对大数据的使用场景. 支持更多的任务类型,如 spark, hive, mr, python, sub_process, shellgit

高扩展性

支持自定义任务类型,调度器使用分布式调度,调度能力随集群线性增加,Master和Worker支持动态上下线github

2、搭建过程shell

1.环境配置数据库

 集群服务划分:apache

192.168.30.141 s141 (master)
192.168.30.142 s142 (master) 192.168.30.143 s143 (api) 192.168.30.144 s144 (worker) 192.168.30.145 s145 (worker) 192.168.30.146 s146 (worker) 192.168.30.147 s147 (worker)

1>安装软件vim

PostgreSQL (8.2.15+) or MySQL (5.7系列) : 二者任选其一便可, 如MySQL则须要JDBC Driver 5.1.47+

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,用于对应任务的提交。

2>建立部署用户
# 建立用户需使用root登陆,设置部署用户名,请自行修改,后面以dolphinscheduler为例
useradd dolphinscheduler;

# 设置用户密码,请自行修改,后面以111111为例
echo "111111" | passwd --stdin dolphinscheduler

# 配置sudo免密
echo 'dolphinscheduler  ALL=(ALL)  NOPASSWD: NOPASSWD: ALL' >> /etc/sudoers
sed -i 's/Defaults    requirett/#Defaults    requirett/g' /etc/sudoers

注意: - 由于是以 sudo -u {linux-user} 切换不一样linux用户的方式来实现多租户运行做业,因此部署用户须要有 sudo 权限,并且是免密的。 - 若是发现/etc/sudoers文件中有"Default requiretty"这行,也请注释掉 - 若是用到资源上传的话,还须要在`HDFS或者MinIO`上给该部署用户分配读写的权限

3>配置host映射和ssh打通

vim /etc/hosts

192.168.30.141 s141
192.168.30.142 s142
192.168.30.143 s143
192.168.30.144 s144
192.168.30.145 s145
192.168.30.146 s146
192.168.30.147 s147

在s141上,切换到部署用户并配置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

注意:正常设置后,dolphinscheduler用户在执行命令ssh localhost 是不须要再输入密码的

在s141上,配置部署用户dolphinscheduler ssh打通到其余待部署的机器(其余机器同理)

su dolphinscheduler;
for ip in s142 s143 s144 s145 s146 s147;     #请将此处s142 s143等替换为本身要部署的机器的hostname
do
    ssh-copy-id  $ip   #该操做执行过程当中须要手动输入dolphinscheduler用户的密码
done
# 固然 经过 sshpass -p xxx ssh-copy-id $ip 就能够省去输入密码了

在s141上,修改目录权限,建立并使得部署用户对/opt/dolphinscheduler目录有操做权限(其余机器同理)

cd /opt
mkdir dolphinscheduler
sudo chown -R dolphinscheduler:dolphinscheduler dolphinscheduler

2.安装包获取

能够下载最新版本的后端安装包,也能够从github上clone源代码本身打包,推荐后者,能够先把datasource.properties中数据库链接修改成对应的,把dolphinscheduler_env.sh中环境变量修改本身对应的位置,将代码包上传至服务器 /opt/dolphinscheduler 下

3.安装脚本

该脚本只启动了worker,若是要启动其余服务,能够解开注释或添加对应服务的命令便可,划分好集群中各机器部署的服务,对应相应的脚本

#!/bin/sh
workDir=`dirname $0`
workDir=`cd ${workDir};pwd`

files=$(ls -l /opt/dolphinscheduler/ |awk '/^-/ {print $NF}' | grep 'apache-dolphinscheduler-incubating')
file=''
for i in $files
do
 file=$i
done
tar -zxvf $workDir/$file -C $workDir
ds_dir=${file%%.tar.gz*}

#sh $workDir/dolphinscheduler/bin/dolphinscheduler-daemon.sh stop master-server
sh $workDir/dolphinscheduler/bin/dolphinscheduler-daemon.sh stop worker-server
#sh $workDir/dolphinscheduler/bin/dolphinscheduler-daemon.sh stop api-server


rm -rf $workDir/dolphinscheduler
echo "mv $workDir/$ds_dir to $workDir/dolphinscheduler"
mv $workDir/$ds_dir $workDir/dolphinscheduler

chmod 755 $workDir/dolphinscheduler/bin/*
sed -i 's/\r$//' $workDir/dolphinscheduler/bin/dolphinscheduler-daemon.sh
sed -i 's/\r$//' $workDir/dolphinscheduler/conf/env/dolphinscheduler_env.sh


#sh $workDir/dolphinscheduler/bin/dolphinscheduler-daemon.sh start master-server
sh $workDir/dolphinscheduler/bin/dolphinscheduler-daemon.sh start worker-server
#sh $workDir/dolphinscheduler/bin/dolphinscheduler-daemon.sh start api-server

4.部署

这里使用Alibaba Cloud Toolkit插件,能够很方便部署到多台机器上

 

 

 

 查看服务:

 

 集群服务启动成功

访问页面:http://192.168.30.143:12345/dolphinscheduler

 部署成功

相关文章
相关标签/搜索