文章目录
- Dolphin
- 1 基础环境说明
- 1.2 安装包下载
- 2 后端部署
- 2.1 tar开gz包
- 2.2 创建部署用户和hosts映射
- 2.3 配置hosts映射和ssh打通
- 2.4 数据库初始化
- 前端部署
Dolphin
官网 易观开源项目,现已成为Apache孵化器项目(2020-07)
1 基础环境说明
- MySQL 5.7
- Zookeeper 3.5
- Hadoop 3.0
- JDK 1.8
CDH测试环境
- 六台Centos7.7
- 网关节点部署Worker
- CM节点部署Master 和 Web
1.2 安装包下载
官方下载地址
分为前后端,一共需要下载两个tar包
2 后端部署
2.1 tar开gz包
创建安装目录
[root@ifeng01 opt]# mkdir -p /opt/dolphinscheduler;
解压 重命名
tar -zxvf apache-dolphinscheduler-incubating-1.2.0-dolphinscheduler-backend-bin.tar.gz -C /opt/dolphinscheduler;
cd /opt/dolphinscheduler;
mv apache-dolphinscheduler-incubating-1.2.0-dolphinscheduler-backend-bin dolphinscheduler-backend
2.2 创建部署用户和hosts映射
在所有部署调度的机器上创建部署用户,并且一定要配置sudo免密码登录。 假如有三台机器,那么首先应该在每台机器上都创建部署用户
# 创建用户需使用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
2.3 配置hosts映射和ssh打通
在第一台机器作为部署机器,在hosts中配置所有hosts,第一台机器用root登录
vi /etc/hosts
#这里全部采用的是内网地址,一定要删掉127.0.0.1这一行
10.2.0.6 ifeng01
10.2.0.7 ifeng02
10.2.0.8 ifeng03
同步ifeng01上的/etc/hosts到所有部署机器
for ip in ifeng02 ifeng03; #请将此处ifeng02 ifeng03替换为自己要部署的机器的hostname
do
sudo scp -r /etc/hosts $ip:/etc/ #在运行中需要输入root密码
done
在ifeng01 上切换到部署用户并配置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
ssh localhost不需要输入密码
for ip in ifeng02 ifeng03; #请将此处ifeng02 ifeng03替换为自己要部署的机器的hostname
do
ssh-copy-id $ip #该操作执行过程中需要手动输入dolphinscheduler用户的密码
done
打通后,登录其他server不需要密码
在ifeng01上配置权限
sudo chown -R dolphinscheduler:dolphinscheduler dolphinscheduler-backend
2.4 数据库初始化
选择了MySQLMySQL安装教程
1 添加驱动到lib
需要添加mysql-connector-java驱动包到DolphinScheduler的lib目录下
2 创建数据库&用户
mysql -uroot -p
创建数据库
mysql> CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
创建用户
create user 'dolphinscheduler'@'%' identified by '123456';
#赋予权限
grant all privileges on dolphinscheduler.* to "dolphinscheduler"@'%';
3 修改配置 修改conf下的application-dao.properties
vi conf/application-dao.properties
- 释掉 PostgreSQL 相关配置
- 手动添加 [ mysql-connector-java 驱动 jar ] 包到 lib 目录下,这里下载的是mysql-connector-java-5.1.47.jar,然后正确配置数据库连接相关信息
# 首先copy一份出来
[dolphinscheduler@ifeng01 conf]$ cp application-dao.properties application-dao.properties_bak
# base spring data source configuration
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
# postgre
#spring.datasource.driver-class-name=org.postgresql.Driver
#spring.datasource.url=jdbc:postgresql://192.168.xx.xx:5432/dolphinscheduler
# mysql
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://ifeng01:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8
spring.datasource.username=dolphinscheduler
spring.datasource.password=123456
4 创建基础数据表
sh /opt/dolphinscheduler/dolphinscheduler-backend/script/create-dolphinscheduler.sh
6 修改运行参数
修改 conf/env 目录下的 .dolphinscheduler_env.sh 环境变量(以相关用到的软件都安装在/opt/soft下为例)
vi /opt/dolphinscheduler/dolphinscheduler-backend/conf/env/.dolphinscheduler_env.sh
CDH的*_HOME地址如下
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/cloudera/parcels/CDH/lib/spark1
#export SPARK_HOME2=/opt/cloudera/parcels/CDH/lib/spark2
export PYTHON_HOME=/usr/local/python3
export JAVA_HOME=/usr/java/jdk1.8.0_181
export HIVE_HOME=/opt/cloudera/parcels/CDH/lib/hive
#export FLINK_HOME=/opt/cloudera/parcels/CDH/lib/flink
export PATH=$HADOOP_HOME/bin:$PYTHON_HOME:$JAVA_HOME/bin:$HIVE_HOME/bin:$PATH:$PATH
7 软连接Java
ln -s /usr/java/jdk1.8.0_181/bin/java /usr/bin/java
8 修改install
vi /opt/dolphinscheduler/dolphinscheduler-backend/install.sh
# 这里填 mysql or postgresql
dbtype="mysql"
# 数据库连接地址
dbhost="ifeng01:3306"
# 数据库名
dbname="dolphinscheduler"
# 数据库用户名,此处需要修改为上面设置的{user}具体值
username="dolphinscheduler"
# 数据库密码, 如果有特殊字符,请使用\转义,需要修改为上面设置的{passowrd}具体值
passowrd="123456"
#将DS安装到哪个目录,如: /opt/soft/dolphinscheduler,不同于现在的目录
installPath="/opt/soft/dolphinscheduler"
#使用哪个用户部署,使用1.3小节创建的用户
deployUser="dolphinscheduler"
#Zookeeper地址
zkQuorum="ifeng01:2181,ifeng01:2181,ifeng01:2181"
#在哪些机器上部署DS服务
ips="ifeng01,ifeng02,ifeng03"
#master服务部署在哪台机器上
masters="ifeng01"
#worker服务部署在哪台机器上
workers="ifeng02,ifeng03"
#报警服务部署在哪台机器上
alertServer="ifeng01"
#后端api服务部署在在哪台机器上
apiServers="ifeng01"
# 邮件配置,以qq邮箱为例
# 邮件协议
mailProtocol="SMTP"
# 邮件服务地址
mailServerHost="apsmtp.aliyun.com"
# 邮件服务端口
mailServerPort="25"
# mailSender和mailUser配置成一样即可
# 发送者
mailSender="spi@aliyun.com"
# 发送用户
mailUser="spi@aliyun.com"
# 邮箱密码
mailPassword="Work3fun"
# TLS协议的邮箱设置为true,否则设置为false
starttlsEnable="false"
# 邮件服务地址值,参考上面 mailServerHost
sslTrust="smtp.exmail.qq.com"
# 开启SSL协议的邮箱配置为true,否则为false。注意: starttlsEnable和sslEnable不能同时为true
sslEnable="false"
# excel下载路径
xlsFilePath="/tmp/xls"
# 业务用到的比如sql等资源文件上传到哪里,可以设置:HDFS,S3,NONE。如果想上传到HDFS,请配置为HDFS;如果不需要资源上传功能请选择NONE。
#resUploadStartupType="HDFS"
#如果上传资源保存想保存在hadoop上,hadoop集群的NameNode启用了HA的话,需要将core-site.xml和hdfs-site.xml放到conf目录下,本例即是放到/opt/dolphinscheduler/conf下面,并配置namenode cluster名称;如果NameNode不是HA,则只需要将mycluster修改为具体的ip或者主机名即可
#defaultFS="hdfs://ifeng01:8020"
# 如果ResourceManager是HA,则配置为ResourceManager节点的主备ip或者hostname,比如"192.168.xx.xx,192.168.xx.xx",否则如果是单ResourceManager或者根本没用到yarn,请配置yarnHaIps=""即可,我这里没用到yarn,配置为""
#yarnHaIps=""
# 如果是单ResourceManager,则配置为ResourceManager节点ip或主机名,否则保持默认值即可。我这里没用到yarn,保持默认
#singleYarnIp="ark1"
9 安装kazoo
pip install kazoo -i https://pypi.tuna.tsinghua.edu.cn/simple
这里我直接下载没有成功,用了国内镜像加速
/usr/local/python3/bin/pip3.6 install kazoo -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
前端部署