<!doctype html>
环境依赖
PostgreSQL (8.2.15+) 或 MySQL (5.7系列)
JDK (1.8+)
ZooKeeper (3.4.6+)
Hadoop (2.6+)
创建部署用户和hosts映射
在所有部署调度的机器上创建部署用户,并且一定要配置sudo免密。假如我们计划在ds1,ds2,ds3,ds4这4台机器上部署调度,首先需要在每台机器上都创建部署用户
# 创建用户需使用root登录,设置部署用户名,以dolphinscheduler为例
useradd dolphinscheduler;
# 设置用户密码,以dolphinscheduler123为例
echo "dolphinscheduler123" | passwd --stdin dolphinscheduler
# 配置sudo免密
echo 'dolphinscheduler ALL=(ALL) NOPASSWD: NOPASSWD: ALL' >> /etc/sudoers
sed -i 's/Defaults requirett/#Defaults requirett/g' /etc/sudoers
配置hosts以及各节点配置SSH免密登录
vim /etc/hosts
172.30.xxx.xxx ds1
172.30.xxx.xxx ds2
172.30.xxx.xxx ds3
172.30.xxx.xxx ds4
for ip in ds2 ds3 ds4; #请将此处ds2 ds3替换为自己要部署的机器的hostname
do
sudo scp -r /etc/hosts $ip:/etc/ #在运行中需要输入root密码
done
各节点上生成密钥
su dolphinscheduler;
ssh-keygen -t rsa
su dolphinscheduler;
for ip in ds1 ds2 ds3; #请将此处ds1 ds2 ds3替换为自己要部署的机器的hostname
do
ssh-copy-id $ip #该操作执行过程中需要手动输入dolphinscheduler用户的密码
done
二进制包tar.gz下载
创建部署目录,部署目录请不要创建在/root、/home等高权限目录
mkdir -p /opt/apache-dolphinscheduler;
cd /opt/apache-dolphinscheduler;
sudo chown -R dolphinscheduler:dolphinscheduler dolphinscheduler-install
tar -zxvf apache-dolphinscheduler-incubating-1.3.3-dolphinscheduler-bin.tar.gz -C /opt/apache-dolphinscheduler-install;
数据库初始化
以mysql为例,需添加mysql-connector-java驱动jar包至 /opt/apache-dolphinscheduler-install/lib目录下
mysql中需创建相应数据库,设置访问账号和密码。注: {user} 和 {password} 需要替换为具体的数据库用户名和密码
CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'%' IDENTIFIED BY '{password}';
GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'localhost' IDENTIFIED BY '{password}';
flush privileges;
修改apache-dolphinscheduler-install下conf/datasource.properties文件
#MySQL
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://${MySQL IP}:3306/dolphinscheduler_cdh?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true
spring.datasource.username=${user}
spring.datasource.password={password}
执行apache-dolphinscheduler-install/script目录下的创建表及导入基础数据脚本
sh script/create-dolphinscheduler.sh
相应环境及各项配置
配置apache-dolphinscheduler-install/env/dolphinscheduler_env.sh,导入相应环境
export HADOOP_HOME=/opt/cloudera/parcels/CDH/lib/hadoop
export HADOOP_CONF_DIR=/opt/cloudera/parcels/CDH/lib/hadoop/etc/hadoop
#export SPARK_HOME1=/opt/soft/spark1
export SPARK_HOME2=/opt/cloudera/parcels/CDH/lib/spark
export PYTHON_HOME=/usr/lib64/python2.7
export JAVA_HOME=/usr/java/jdk1.8.0_251-amd64
export HIVE_HOME=/opt/cloudera/parcels/CDH/lib/hive
export FLINK_HOME=/opt/cloudera/parcels/FLINK-1.9.1-BIN-SCALA_2.11/lib/flink
export DATAX_HOME=/opt/datax/bin/datax.py
export SQOOP_HOME=/opt/cloudera/parcels/CDH/lib/sqoop/
export PATH=$HADOOP_HOME/bin:$HADOOP_CONF_DIR:$SPARK_HOME2:$PYTHON_HOME:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_HOME:$SQOOP_HOME/bin:$PATH
修改一键部署文件apache-dolphinscheduler-install/conf/config/install_config.conf,根据需求进行相应修改
# 这里填 mysql or postgresql
dbtype="mysql"
# 数据库连接地址
dbhost="172.30.xx.xx:3306"
# 数据库名
dbname="dolphinscheduler"
# 数据库用户名,此处需要修改为上面设置的{user}具体值
username="xxx"
# 数据库密码, 如果有特殊字符,请使用\转义,需要修改为上面设置的{password}具体值
password="xxx"
#Zookeeper地址
zkQuorum="172.30.xx.xx:2181,172.30.xx.xx:2181,172.30.xx.xx:2181"
#将DS安装到哪个目录,如: /opt/soft/dolphinscheduler,不同于现在的目录
installPath="/opt/soft/dolphinscheduler"
#使用哪个用户部署,使用之前创建的用户
deployUser="dolphinscheduler"
# 邮件配置,以qq邮箱为例
# 邮件协议
mailProtocol="SMTP"
# 邮件服务地址
mailServerHost="smtp.qq.com"
# 邮件服务端口
mailServerPort="25"
# mailSender和mailUser配置成一样即可
# 发送者
mailSender="xxx@qq.com"
# 发送用户
mailUser="xxx@qq.com"
# 邮箱密码
mailPassword="xxx"
# TLS协议的邮箱设置为true,否则设置为false
starttlsEnable="true"
# 开启SSL协议的邮箱配置为true,否则为false。注意: starttlsEnable和sslEnable不能同时为true
sslEnable="false"
# 邮件服务地址值,参考上面 mailServerHost
sslTrust="smtp.qq.com"
# 业务用到的比如sql等资源文件上传到哪里,可以设置:HDFS,S3,NONE,单机如果想使用本地文件系统,请配置为HDFS,因为HDFS支持本地文件系统;如果不需要资源上传功能请选择NONE。强调一点:使用本地文件系统不需要部署hadoop
resourceStorageType="HDFS"
#如果上传资源保存想保存在hadoop上,hadoop集群的NameNode启用了HA的话,需要将hadoop的配置文件core-site.xml和hdfs-site.xml放到安装路径的conf目录下,本例即是放到/opt/soft/dolphinscheduler/conf下面,并配置namenode cluster名称;如果NameNode不是HA,则只需要将mycluster修改为具体的ip或者主机名即可
defaultFS="hdfs://mycluster:8020"
# 如果没有使用到Yarn,保持以下默认值即可;如果ResourceManager是HA,则配置为ResourceManager节点的主备ip或者hostname,比如"172.30.xx.xx,172.30.xx.xx";如果是单ResourceManager请配置yarnHaIps=""即可
yarnHaIps="172.30.xx.xx,172.30.xx.xx"
# 如果ResourceManager是HA或者没有使用到Yarn保持默认值即可;如果是单ResourceManager,请配置真实的ResourceManager主机名或者ip
singleYarnIp="yarnIp1"
# 资源上传根路径,主持HDFS和S3,由于hdfs支持本地文件系统,需要确保本地文件夹存在且有读写权限
resourceUploadPath="/data/dolphinscheduler"
# 具备权限创建resourceUploadPath的用户
hdfsRootUser="hdfs"
#在哪些机器上部署DS服务,本机选localhost
ips="ds1,ds2,ds3,ds4"
#ssh端口,默认22
sshPort="22"
#master服务部署在哪台机器上
masters="ds1,ds2"
#worker服务部署在哪台机器上,并指定此worker属于哪一个worker组,下面示例的default即为组名
workers="ds3:default,ds4:default"
#报警服务部署在哪台机器上
alertServer="ds2"
#后端api服务部署在在哪台机器上
apiServers="ds1"
若Hadoop集群配置了HA,需将core-site.xml和hdfs-site.xml复制到dolphinscheduler安装目录的conf下
执行一键部署
切换到部署用户dolphinscheduler,然后执行一键部署脚本
sh install.sh
脚本执行完毕后,相应节点将启动以下服务,可通过jps查看
MasterServer ----- master服务
WorkerServer ----- worker服务
LoggerServer ----- logger服务
ApiApplicationServer ----- api服务
AlertServer ----- alert服务
前端访问地址 http://172.30.xx.xx:12345/dolphinscheduler
4lw.commands.whitelist=*
服务启停操作
- 一键停止集群所有服务
sh ./bin/stop-all.sh
- 一键开启集群所有服务
sh ./bin/start-all.sh
- 启停Master
sh ./bin/dolphinscheduler-daemon.sh start master-server
sh ./bin/dolphinscheduler-daemon.sh stop master-server
- 启停Worker
sh ./bin/dolphinscheduler-daemon.sh start worker-server
sh ./bin/dolphinscheduler-daemon.sh stop worker-server
- 启停Api
sh ./bin/dolphinscheduler-daemon.sh start api-server
sh ./bin/dolphinscheduler-daemon.sh stop api-server
- 启停Logger
sh ./bin/dolphinscheduler-daemon.sh start logger-server
sh ./bin/dolphinscheduler-daemon.sh stop logger-server
- 启停Alert
sh ./bin/dolphinscheduler-daemon.sh start alert-server
sh ./bin/dolphinscheduler-daemon.sh stop alert-server
[hide reply_to_this="true"]
二进制包下载并解压
wget https://mirrors.bfsu.edu.cn/apache/incubator/dolphinscheduler/1.3.3/apache-dolphinscheduler-incubating-1.3.3-dolphinscheduler-bin.tar.gz
tar -zxvf apache-dolphinscheduler-incubating-1.3.3-dolphinscheduler-bin.tar.gz -C /export/server/
三个节点分别创建用户并配置sudo免密
所有节点
su dolphinscheduler
#生成密钥对(公钥和私钥)三次回车生成密钥
ssh-keygen -t rsa
#查看公钥
cat ~/.ssh/id_rsa.pub
#将密匙输出到/root/.ssh/authorized_keys
cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
#注意:正常设置后,dolphinscheduler用户在执行命令ssh localhost 是不需要再输入密码的(请进行测试)
以下是集群配置需要进行多机器免密,如果是单机请忽略
主节点
#追加密钥到主节点(需要操作及密码验证,追加完后查看一下该文件)--在主节点上操作,拷取从节点密匙
ssh 从节点机器IP cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/authorized_keys
#从主节点复制密钥到从节点
scp ~/.ssh/authorized_keys dolphinscheduler@从节点机器IP:~/.ssh/authorized_keys
所有节点互相进行ssh连接
ssh dolphinscheduler@172.xx.xx.xxx
ssh dolphinscheduler@172.xx.xx.xxx
#三个节点分别执行ssh-keygen -t rsa
ssh-copy-id dolphinscheduler@node03
#在node03上执行authorized_keys分发
scp authorized_keys dolphinscheduler@node02:$PWD
scp authorized_keys dolphinscheduler@node01:$PWD
[/hide]
[hide reply_to_this="true"]
ps1:自定义参数可通过${}传入,如自定义参数nowDate $[yyyy-MM-dd] 可通过${nowDate}直接获取
ps2:可通过$[yyyy-MM-dd]获取yyyy-MM-dd
[/hide]
文章评论
2333