[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
在這裏插入圖片描述

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