目錄
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 包
百度雲: https://pan.baidu.com/s/1EOsHK9GoyCZyGNW7RJyG8Q
提取碼: wdbb - 安裝
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
- 下載
在官網(https://downloads.apache.org/zookeeper/)找到想要的版本進行下載, 注意3.5.5以後的版本要下載帶有bin的安裝包, 下面以 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
- 建庫
這裏user
和password
自定義, 下一步配置連接時要用到
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
配置文件中需要修改三個地方:
- 註釋 postgre 的配置
- 去掉 mysql 的註釋
- 在數據庫連接中加入
&useSSL=false
- 寫入 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
, root
和 proxy_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