DolphinScheduler海豚調(diào)度部署

DolphinScheduler以2.0.6版本為例。
參考文檔:部署文檔
部署規(guī)劃
單機部署

偽集群部署

集群部署

安裝JDK
下載JDK
JDK下載地址
如圖:

選擇如下版本下載:
jdk-8u361-linux-x64.tar.gz
將下載的JDK壓縮包,上傳至Linux的/root/tools目錄。
解壓
執(zhí)行如下命令:
tar -zxvf /root/tools/jdk-8u361-linux-x64.tar.gz -C /root/jdk
將jdk解壓到/root/jdk目錄下。
配置
執(zhí)行如下命令,打開配置文件
vi /etc/profile
文件末尾添加如下配置:
export JAVA_HOME=/root/jdk/jdk1.8.0_361
export PATH=$JAVA_HOME/bin:$PATH
執(zhí)行如下命令,生效配置:
source /etc/profile
安裝DolphinScheduler
下載
DolphinScheduler下載地址
如圖,點擊查看更多

選擇對應(yīng)版本,這里選擇2.0.6,如圖:

下載后,文件名如下:
apache-dolphinscheduler-2.0.6-bin.tar.gz
將下載的壓縮包上傳至Linux指定目錄。
解壓
執(zhí)行如下命令,將壓縮包解壓到root目錄下:
tar -zxvf /root/tools/apache-dolphinscheduler-2.0.6-bin.tar.gz -C /root
如圖:

啟動
進(jìn)度apache-dolphinscheduler-2.0.6-bin目錄下,啟動DolphinScheduler:
cd apache-dolphinscheduler-2.0.6-bin
./bin/dolphinscheduler-daemon.sh start standalone-server
啟動成功后,執(zhí)行jps,可以看到StandaloneServer進(jìn)程,如圖:

登錄
使用瀏覽器訪問
http://192.168.189.111:12345/dolphinscheduler/ui
如果無法訪問,可能是Linux防火墻未關(guān)閉,執(zhí)行如下命令查看防火墻,并關(guān)閉:
systemctl status firewalld.service
systemctl stop firewalld.service
再次登錄dolphinscheduler,如圖:

默認(rèn)登錄用戶名/密碼:admin/dolphinscheduler123
停止
./bin/dolphinscheduler-daemon.sh stop standalone-server
偽集群部署(Pseudo-Cluster)
偽分布式部署 DolphinScheduler 需要除了需要安裝JDK和DolphinScheduler,還需要安裝如下外部軟件:
數(shù)據(jù)庫:PostgreSQL (8.2.15+) 或者 MySQL (5.7+),兩者任選其一即可,如 MySQL 則需要 JDBC Driver 8.0.16
注冊中心:ZooKeeper (3.4.6+),下載地址
進(jìn)程樹分析
macOS安裝pstree
Fedora/Red/Hat/CentOS/Ubuntu/Debian安裝psmisc
切換到root
su -
安裝JDK
同單機部署。
安裝psmisc
執(zhí)行如下命令,安裝:
yum -y install psmisc
如圖:

這里L(fēng)inux已經(jīng)安裝過。
安裝ZooKeeper
下載
我們選用zookeeper-3.4.6,下載地址ZooKeeper下載
如圖:

選擇對應(yīng)版本:

下載后文件:zookeeper-3.4.6.tar.gz
解壓
執(zhí)行如下命令,將zookeeper解壓到/root目錄下:
tar -zxvf zookeeper-3.4.6.tar.gz -C /root/
如圖:

配置
zoo_sample.cfg重命名偽zoo.cfg:
mv /root/zookeeper-3.4.6/conf/zoo_sample.cfg /root/zookeeper-3.4.6/conf/zoo.cfg
zoo.cfg配置文件中dataDir的值改為如下:
dataDir=./tmp/zookeeper
啟動
執(zhí)行如下命令,啟動zookeeper(啟動dolphinscheduler需要):
./bin/zkServer.sh start
查看啟動狀態(tài):
./bin/zkServer.sh status
如圖:

可以看到ZooKeeper啟動模式為standalone。
關(guān)閉:
./bin/zkServer.sh stop
安裝MySQL
mysql8.0.28版本
官網(wǎng)下載

上傳解壓
tar -xvf mysql-8.0.28-1.el7.x86_64.rpm-bundle.tar

查詢有無mariadb(與mysql有沖突)
rpm -qa|grep mariadb

強制卸載mariadb
rpm -e --nodeps mariadb-libs

這里需要依次安裝依賴包(重點)
rpm -ivh mysql-community-common-8.0.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.28-1.el7.x86_64.rpm
初始化數(shù)據(jù)庫
mysqld --initialize --console
設(shè)置權(quán)限
chown -R mysql:mysql /var/lib/mysql/
啟動服務(wù)
systemctl start mysqld
查看臨時密碼
cat /var/log/mysqld.log|grep localhost

登錄
mysql -uroot -p
輸入上面的臨時紅色密碼

改一個好一點記的密碼
alter user 'root'@'localhost' identified by '123456';
退出查看一下
exit
登錄
mysql -uroot -p

查看一下數(shù)據(jù)庫
show databases;

這樣就安裝成功了
開啟連接模式
進(jìn)入到mysql數(shù)據(jù)庫中:
use mysql;
select host from user where user='root';

我們執(zhí)行update語句把權(quán)限進(jìn)行修改
update user set host = '%' where user ='root';
?然后 刷新配置
flush privileges;
查看并關(guān)閉防火墻
systemctl status firewalld.service
systemctl stop firewalld.service
再重新用navicate 連接
安裝DolphinScheduler
準(zhǔn)備 DolphinScheduler 啟動環(huán)境
以root用戶登錄,創(chuàng)建dolphinscheduler用戶
# 創(chuàng)建用戶需使用 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
# 將apache-dolphinscheduler-3.1.2-bin解壓到/home/dolphinscheduler目錄下
cd /home/dolphinscheduler/
tar zxvf apache-dolphinscheduler-3.1.2-bin.tar.gz
# 修改目錄權(quán)限,使得部署用戶對二進(jìn)制包解壓后的 apache-dolphinscheduler-*-bin 目錄有操作權(quán)限
chown -R dolphinscheduler:dolphinscheduler apache-dolphinscheduler-3.1.2-bin
#查看一下權(quán)限
ll apache-dolphinscheduler-3.1.2-bin
如圖:



注:解壓的 DolphinScheduler包在/home/dolphinscheduler目錄下。
切到這個用戶下來cd apache-dolphinscheduler-3.1.2-bin
cd apache-dolphinscheduler-3.1.2-bin
切換到dolphinscheduler用戶,然后再配置SSH免密登錄:
su - dolphinscheduler
cd apache-dolphinscheduler-3.1.2-bin/

找一下mysql
find -name dolphinscheduler_mysql.sql
然后創(chuàng)建一個數(shù)據(jù)庫dolphinscheduler?的UFT-8
導(dǎo)入dolphinscheduler_mysql.sql
修改?install_env.sh
vim bin/env/install_env.sh
地址路徑:/home/dolphinscheduler/dolphinscheduler


#看下java在哪
echo $JAVA_HOME

vi ./bin/env/dolphinscheduler_env.sh
export DATABASE=${DATABASE:-mysql}
export SPRING_PROFILES_ACTIVE=${DATABASE}
export SPRING_DATASOURCE_URL="jdbc:mysql://ds1:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8"
export SPRING_DATASOURCE_USERNAME="root"
export SPRING_DATASOURCE_PASSWORD="123456"

下載mysql驅(qū)動包,下載地址
mysql驅(qū)動下載地址
如圖:

下載后文件名:mysql-connector-java-8.0.28.jar
復(fù)制到
cp mysql-connector-java-8.0.28.jar??./api-server/libs/
cp mysql-connector-java-8.0.28.jar ./alert-server/libs/
cp mysql-connector-java-8.0.28.jar ./master-server/libs/
cp mysql-connector-java-8.0.28.jar ./worker-server/libs/
配置機器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
如圖:

配置完成后,可以執(zhí)行如下命令驗證:
ssh localhost
如圖:

注意:
因為任務(wù)執(zhí)行服務(wù)是以 sudo -u {linux-user} 切換不同 linux 用戶的方式來實現(xiàn)多租戶運行作業(yè),所以部署用戶需要有 sudo 權(quán)限,而且是免密的。初學(xué)習(xí)者不理解的話,完全可以暫時忽略這一點
如果發(fā)現(xiàn) /etc/sudoers 文件中有 "Defaults requirett" 這行,也請注釋掉
#改一下域名映射
vim /etc/hosts

一鍵部署啟動
su dolphinscheduler
cd /home/dolphinscheduler/apache-dolphinscheduler-3.1.2-bin/
bash ./bin/install.sh
啟動成功后,如圖:

查看服務(wù)情況:

如果未啟動成功:
cd /home/dolphinscheduler/pseudo-dolphinscheduler/logs
vi dolphinscheduler-master-server-docker-01.out
日志內(nèi)容:
nohup: failed to run command ‘/root/jdk/jdk1.8.0_361/bin/java’: Permission denied
使用如下授權(quán)的方式,未解決
sudo chmod -R 755 /root/jdk/jdk1.8.0_361
sudo chown -R dolphinscheduler /root/jdk/jdk1.8.0_361
然后將jdk移到/usr/local目錄即可。
mv /root/jdk /usr/local
啟停服務(wù)
# 一鍵停止集群所有服務(wù)
sh ./bin/stop-all.sh# 一鍵開啟集群所有服務(wù)
sh ./bin/start-all.sh# 啟停 Master
sh ./bin/dolphinscheduler-daemon.sh stop master-server
sh ./bin/dolphinscheduler-daemon.sh start 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# 啟停 Python Gateway
sh ./bin/dolphinscheduler-daemon.sh start python-gateway-server
sh ./bin/dolphinscheduler-daemon.sh stop python-gateway-server
登錄 DolphinScheduler
192.168.174.130:12345/dolphinscheduler/ui
修改相關(guān)配置
完成了基礎(chǔ)環(huán)境的準(zhǔn)備后,在運行部署命令前,還需要根據(jù)環(huán)境修改配置文件。配置文件在路徑在conf/config/install_config.conf下,一般部署只需要修改INSTALL MACHINE、DolphinScheduler ENV、Database、Registry Server部分即可完成部署,下面對必須修改參數(shù)進(jìn)行說明
如圖:
打開配置文件install_config.conf,修改配置為:
# ---------------------------------------------------------
# INSTALL MACHINE
# ---------------------------------------------------------
# 因為是在單節(jié)點上部署master、worker、API server,所以服務(wù)器的IP均為機器IP或者localhost
ips="192.168.189.111"
masters="192.168.189.111"
workers="192.168.189.111:default"
alertServer="192.168.189.111"
apiServers="192.168.189.111"
pythonGatewayServers="192.168.189.111"# DolphinScheduler安裝路徑,如果不存在會創(chuàng)建
installPath="/home/dolphinscheduler/pseudo-dolphinscheduler"# 部署用戶,填寫在 **配置用戶免密及權(quán)限** 中創(chuàng)建的用戶
deployUser="dolphinscheduler"# ---------------------------------------------------------
# DolphinScheduler ENV
# ---------------------------------------------------------
# JAVA_HOME 的路徑,是在 **前置準(zhǔn)備工作** 安裝的JDK中 JAVA_HOME 所在的位置
javaHome="/root/jdk/jdk1.8.0_361"# ---------------------------------------------------------
# Database
# ---------------------------------------------------------
# 數(shù)據(jù)庫的類型,用戶名,密碼,IP,端口,元數(shù)據(jù)庫db。其中 DATABASE_TYPE 目前支持 mysql, postgresql, H2
# 請確保配置的值使用雙引號引用,否則配置可能不生效
DATABASE_TYPE="mysql"
SPRING_DATASOURCE_URL="jdbc:mysql://192.168.189.1:3306/ds_201_doc?useUnicode=true&characterEncoding=UTF-8"
# 如果你不是以 dolphinscheduler/dolphinscheduler 作為用戶名和密碼的,需要進(jìn)行修改
SPRING_DATASOURCE_USERNAME="admin"
SPRING_DATASOURCE_PASSWORD="admin"# ---------------------------------------------------------
# Registry Server
# ---------------------------------------------------------
# 注冊中心地址,zookeeper服務(wù)的地址
registryServers="192.168.189.111:2181"
初始化數(shù)據(jù)庫
下載mysql驅(qū)動包,下載地址
mysql驅(qū)動下載地址
如圖:

下載后文件名:mysql-connector-j-8.0.31-1.el7.noarch.rpm
上傳到Linux上,執(zhí)行如下命令安裝:
rpm -ivh mysql-connector-j-8.0.31-1.el7.noarch.rpm
生成的jar包路徑如下:
/usr/share/java/mysql-connector-j.jar
將jar包拷貝到lib目錄下:
mv /usr/share/java/mysql-connector-j.jar /root/apache-dolphinscheduler-2.0.6-bin/lib/
登錄mysql,創(chuàng)建dolphinscheduler數(shù)據(jù)庫,并授予權(quán)限:
CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'admin'@'%';
GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'admin'@'localhost';
flush privileges;
執(zhí)行sql腳本:
sh script/create-dolphinscheduler.sh
如圖:

成功后,如圖:

啟動 DolphinScheduler
切換到用戶dolphinscheduler,如下:
su dolphinscheduler
如圖:

sh install.sh
如圖:

啟動成功后,如圖:

查看服務(wù)情況:

如果未啟動成功:
cd /home/dolphinscheduler/pseudo-dolphinscheduler/logs
vi dolphinscheduler-master-server-docker-01.out
日志內(nèi)容:
nohup: failed to run command ‘/root/jdk/jdk1.8.0_361/bin/java’: Permission denied
使用如下授權(quán)的方式,未解決
sudo chmod -R 755 /root/jdk/jdk1.8.0_361
sudo chown -R dolphinscheduler /root/jdk/jdk1.8.0_361
然后將jdk移到/usr/local目錄即可。
mv /root/jdk /usr/local
登錄 DolphinScheduler
同單機部署。
啟停服務(wù)
# 一鍵停止集群所有服務(wù)
sh ./bin/stop-all.sh# 一鍵開啟集群所有服務(wù)
sh ./bin/start-all.sh# 啟停 Master
sh ./bin/dolphinscheduler-daemon.sh stop master-server
sh ./bin/dolphinscheduler-daemon.sh start 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# 啟停 Python Gateway
sh ./bin/dolphinscheduler-daemon.sh start python-gateway-server
sh ./bin/dolphinscheduler-daemon.sh stop python-gateway-server
集群部署(Cluster)
待補充。
Measure
Measure