[Centos] 从零开始单机部署可远程访问的 DolphinScheduler

1. 环境配置

安装 JAVA 1.8 / MySQL 5.7 / ZooKeeper 3.6.1

1.1 安装 JAVA 1.8
  • 检查是否已有安装, 如果已安装低于1.8版本的JAVA, 先删除再安装
rpm -qa | grep java  # java-1.7.0-openjdk-1.7.0.71-2.5.3.1.el7_0.x86_64
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.71-2.5.3.1.el7_0.x86_64
rpm -ivh jdk-8u231-linux-x64.rpm
  • 添加环境变量, 在文件 /etc/profile 加入
export JAVA_HOME=/usr/java/default
export PATH=$JAVA_HOME/bin:$PATH
  • 重载配置文件
source /etc/profile
1.2 安装 MySQL 5.7

请参考这篇文章: [Centos] 安装并设置远程登录 MySQL5.7(8.0)

1.3 安装 ZooKeeper 3.6.1
wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.6.1/apache-zookeeper-3.6.1-bin.tar.gz
tar -zxf apache-zookeeper-3.6.1-bin.tar.gz
  • 配置
cd apache-zookeeper-3.6.1-bin
cp conf/zoo_sample.cfg conf/zoo.cf

如果是集群的话, 需要在 conf/zoo.cf 文件中进行设置, 单机部署时可以不做修改

  • 启动
    出现如图所示信息表明启动成功
bin/zkServer.sh status

在这里插入图片描述

2. 后端部署 DolphinScheduler

2.1 下载
mkdir -p /opt/dolphinscheduler;
cd /opt/dolphinscheduler;
wget https://mirrors.tuna.tsinghua.edu.cn/apache/incubator/dolphinscheduler/1.2.0/apache-dolphinscheduler-incubating-1.2.0-dolphinscheduler-backend-bin.tar.gz
# 解压缩
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
2.2 新建用户并授权
# 创建用户需使用root登录
useradd dolphinscheduler;
# 添加密码
echo "dolphinscheduler" | passwd --stdin dolphinscheduler
# 配置sudo免密
sed -i '$adolphinscheduler  ALL=(ALL)  NOPASSWD: NOPASSWD: ALL' /etc/sudoers
sed -i 's/Defaults    requirett/#Defaults    requirett/g' /etc/sudoers
# 修改目录权限,使得部署用户对dolphinscheduler-backend目录有操作权限  
chown -R dolphinscheduler:dolphinscheduler dolphinscheduler-backend
2.3 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
2.4 数据库初始化
  • 下载 JDBC 5.1
cd /opt
wget https://downloads.mysql.com/archives/get/p/3/file/mysql-connector-java-5.1.48.tar.gz
tar zxf mysql-connector-java-5.1.48.tar.gz 
cp /opt/mysql-connector-java-5.1.48/mysql-connector-java-5.1.48.jar /opt/dolphinscheduler/dolphinscheduler-backend/lib
  • 建库
    这里 userpassword 自定义, 下一步配置连接时要用到
CREATE USER "user"@"%" IDENTIFIED BY "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
  • 配置数据库连接
cd /opt/dolphinscheduler/dolphinscheduler-backend
nano conf/application-dao.properties 

配置文件中需要修改三个地方:

  1. 注释 postgre 的配置
  2. 去掉 mysql 的注释
  3. 在数据库连接中加入 &useSSL=false
  4. 写入 ip/username/password 参数
    在这里插入图片描述
  • 数据库建表
sh script/create-dolphinscheduler.sh

出现 create DolphinScheduler success 表明数据库初始化成功
在这里插入图片描述

2.5 启动后端服务
  • 修改运行参数
nano /opt/dolphinscheduler/dolphinscheduler-backend/conf/env/.dolphinscheduler_env.sh

单机模式下只需设置 JAVA_HOME

  • 修改一键部署脚本 install.sh中的各参数
# 这里填 mysql or postgresql
dbtype="mysql"
# 数据库连接地址
dbhost="localhost:3306"
# 数据库名
dbname="dolphinscheduler"
# 数据库用户名,此处需要修改为上面设置的{user}具体值
username="xxx"    
# 数据库密码, 如果有特殊字符,请使用\转义,需要修改为上面设置的{passowrd}具体值
passowrd="xxx"
#将DS安装到哪个目录,如: /opt/soft/dolphinscheduler,不同于现在的目录
installPath="/opt/soft/dolphinscheduler"
#使用哪个用户部署,使用1.3小节创建的用户
deployUser="dolphinscheduler"
#Zookeeper地址,单机本机是localhost:2181,记得把2181端口带上
zkQuorum="localhost:2181"
#在哪些机器上部署DS服务,本机选localhost
ips="localhost"
#master服务部署在哪台机器上
masters="localhost"
#worker服务部署在哪台机器上
workers="localhost"
#报警服务部署在哪台机器上
alertServer="localhost"
#后端api服务部署在在哪台机器上
apiServers="localhost"
# 邮件配置,以qq邮箱为例
# 邮件协议
mailProtocol="SMTP"
# 邮件服务地址
mailServerHost="smtp.exmail.qq.com"
# 邮件服务端口
mailServerPort="25"
# mailSender和mailUser配置成一样即可
# 发送者
mailSender="[email protected]"
# 发送用户
mailUser="[email protected]"
# 邮箱密码
mailPassword="xxx"
# TLS协议的邮箱设置为true,否则设置为false
starttlsEnable="true"
# 邮件服务地址值,参考上面 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。强调一点:使用本地文件系统不需要部署hadoop 
resUploadStartupType="HDFS"
# 这里以保存到本地文件系统为例
#注:但是如果你想上传到HDFS的话,NameNode启用了HA,则需要将core-site.xml和hdfs-site.xml放到conf目录下,本例即是放到/opt/dolphinscheduler/conf下面,并配置namenode cluster名称;如果NameNode不是HA,则修改为具体的ip或者主机名即可 
defaultFS="file:///data/dolphinscheduler"    #hdfs://{具体的ip/主机名}: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"
# 由于hdfs支持本地文件系统,需要确保本地文件夹存在且有读写权限
hdfsPath="/data/dolphinscheduler"
  • 安装python的Zookeeper工具kazoo
sudo yum -y install python-pip
sudo python3 -m pip install --upgrade pip
sudo pip3 install kazoo
  • 部署并启动服务
cd /opt/dolphinscheduler/dolphinscheduler-backend
bash install.sh
  • 停止和启动
bash /opt/soft/dolphinscheduler/bin/stop-all.sh
bash /opt/soft/dolphinscheduler/bin/start-all.sh

3. 前端部署 DolphinScheduler

3.1 下载
cd /opt/dolphinscheduler
wget https://mirrors.tuna.tsinghua.edu.cn/apache/incubator/dolphinscheduler/1.2.0/apache-dolphinscheduler-incubating-1.2.0-dolphinscheduler-front-bin.tar.gz
tar -zxvf apache-dolphinscheduler-incubating-1.2.0-dolphinscheduler-front-bin.tar.gz -C /opt/dolphinscheduler
mv apache-dolphinscheduler-incubating-1.2.0-dolphinscheduler-front-bin /opt/soft/dolphinscheduler/ui
3.2 自动化部署
cd /opt/soft/dolphinscheduler/ui
sh ./install-dolphinscheduler-ui.sh

执行后, 需要一次键入

  • 前端端口: 默认端口是8888,如果选择默认,请直接回车,或者键入其他端口
  • 跟前端ui交互的api-server的ip
  • 跟前端ui交互的api-server的port
  • 操作系统选择
3.3 设置远程访问

如果服务运行在服务器上, 想要远程访问的话, 需要设置 nginx.conf 文件

nano /etc/nginx/conf.d/dolphinscheduler.conf

修改 server_name , rootproxy_pass 三个参数

server {
    listen       8888;# access port
    server_name  10.0.1.100;
    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;
    location / {
    root   /opt/soft/dolphinscheduler/ui/dist; # static file directory
    index  index.html index.html;
    }
    location /dolphinscheduler {
    proxy_pass http://10.0.1.100:12345; # interface address
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header x_real_ipP $remote_addr;
    proxy_set_header remote_addr $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_http_version 1.1;
    proxy_connect_timeout 300s;
    proxy_read_timeout 300s;
    proxy_send_timeout 300s;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection upgrade;
    }
    #error_page  404              /404.html;
    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
    root   /usr/share/nginx/html;
    }
}
3.4 登录页面

访问页面: http://10.0.1.100:8888
用户名密码:admin/dolphinscheduler123
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章