個(gè)人網(wǎng)站備案可以做項(xiàng)目網(wǎng)站seo哪家好
海豚調(diào)度系列之:集群部署Cluster
- 一、前置準(zhǔn)備工作
- 二、準(zhǔn)備 DolphinScheduler 啟動(dòng)環(huán)境
- 1.配置用戶免密及權(quán)限
- 2.配置機(jī)器 SSH 免密登陸
- 3.啟動(dòng) zookeeper
- 4.初始化數(shù)據(jù)庫(kù)
- 5.修改相關(guān)配置
- 5.修改 dolphinscheduler_env.sh 文件
- 三、啟動(dòng)DolphinScheduler
- 四、登錄 DolphinScheduler
- 五、啟停服務(wù)
集群部署目的是在多臺(tái)機(jī)器部署 DolphinScheduler 服務(wù),用于運(yùn)行大量任務(wù)情況。
一、前置準(zhǔn)備工作
- JDK:下載JDK (1.8+),安裝并配置 JAVA_HOME 環(huán)境變量,并將其下的 bin 目錄追加到 PATH 環(huán)境變量中。如果你的環(huán)境中已存在,可以跳過(guò)這步。
- 二進(jìn)制包:下載 DolphinScheduler 二進(jìn)制包海豚調(diào)度下載地址
- 數(shù)據(jù)庫(kù): MySQL (5.7+),如 MySQL 則需要 JDBC Driver 8.0.16
- 注冊(cè)中心:ZooKeeper (3.8.0+)
- 進(jìn)程樹(shù)分析:Fedora/Red/Hat/CentOS/Ubuntu/Debian 安裝psmisc
- 注意: DolphinScheduler 本身不依賴 Hadoop、Hive、Spark,但如果你運(yùn)行的任務(wù)需要依賴他們,就需要有對(duì)應(yīng)的環(huán)境支持
二、準(zhǔn)備 DolphinScheduler 啟動(dòng)環(huán)境
1.配置用戶免密及權(quán)限
創(chuàng)建部署用戶,并且一定要配置 sudo 免密。以創(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# 修改目錄權(quán)限,使得部署用戶對(duì)二進(jìn)制包解壓后的 apache-dolphinscheduler-*-bin 目錄有操作權(quán)限
chown -R dolphinscheduler:dolphinscheduler apache-dolphinscheduler-*-bin
chmod -R 755 apache-dolphinscheduler-*-bin
注意:
- 因?yàn)槿蝿?wù)執(zhí)行服務(wù)是以 sudo -u {linux-user} 切換不同 linux 用戶的方式來(lái)實(shí)現(xiàn)多租戶運(yùn)行作業(yè),所以部署用戶需要有 sudo 權(quán)限,而且是免密的。初學(xué)習(xí)者不理解的話,完全可以暫時(shí)忽略這一點(diǎn)
- 如果發(fā)現(xiàn) /etc/sudoers 文件中有 “Defaults requirett” 這行,也請(qǐng)注釋掉
2.配置機(jī)器 SSH 免密登陸
由于安裝的時(shí)候需要向不同機(jī)器發(fā)送資源,所以要求各臺(tái)機(jī)器間能實(shí)現(xiàn) SSH 免密登陸。配置免密登陸的步驟如下
su dolphinschedulerssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
注意: 配置完成后,可以通過(guò)運(yùn)行命令 ssh localhost 判斷是否成功,如果不需要輸入密碼就能 ssh 登陸則證明成功
3.啟動(dòng) zookeeper
進(jìn)入 zookeeper 的安裝目錄,將 zoo_sample.cfg 配置文件復(fù)制到 conf/zoo.cfg,并將 conf/zoo.cfg 中 dataDir 中的值改成 dataDir=./tmp/zookeeper
# 啟動(dòng) zookeeper
./bin/zkServer.sh start
4.初始化數(shù)據(jù)庫(kù)
DolphinScheduler 元數(shù)據(jù)存儲(chǔ)在關(guān)系型數(shù)據(jù)庫(kù)中,目前支持 PostgreSQL 和 MySQL。下面分別介紹如何使用 MySQL 和 PostgresQL 初始化數(shù)據(jù)庫(kù)。
如果使用 MySQL 需要手動(dòng)下載 mysql-connector-java 驅(qū)動(dòng) (8.0.16) 并移動(dòng)到 DolphinScheduler 的每個(gè)模塊的 libs 目錄下,其中包括 api-server/libs 和 alert-server/libs 和 master-server/libs 和 worker-server/libs 和 tools/libs。
mysql5.7:
mysql -uroot -pmysql> CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;# 修改 {user} 和 {password} 為你希望的用戶名和密碼
mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'%' IDENTIFIED BY '{password}';
mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'localhost' IDENTIFIED BY '{password}';mysql> flush privileges;
mysql 8:
mysql -uroot -pmysql> CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;# 修改 {user} 和 {password} 為你希望的用戶名和密碼
mysql> CREATE USER '{user}'@'%' IDENTIFIED BY '{password}';
mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'%';
mysql> CREATE USER '{user}'@'localhost' IDENTIFIED BY '{password}';
mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'localhost';
mysql> FLUSH PRIVILEGES;
可以通過(guò)快速的 Shell 腳本來(lái)初始化數(shù)據(jù)庫(kù)
bash tools/bin/upgrade-schema.sh
5.修改相關(guān)配置
部署腳本會(huì)通過(guò) scp 的方式將安裝需要的資源傳輸?shù)礁鱾€(gè)機(jī)器上,所以這一步我們僅需要修改運(yùn)行install.sh腳本的所在機(jī)器的配置即可。
完成基礎(chǔ)環(huán)境的準(zhǔn)備后,需要根據(jù)你的機(jī)器環(huán)境修改配置文件。配置文件可以在目錄 bin/env 中找到,他們分別是 并命名為 install_env.sh 和 dolphinscheduler_env.sh。
偽集群部署方式install_env.sh的配置:
# ---------------------------------------------------------
# INSTALL MACHINE
# ---------------------------------------------------------
# Due to the master, worker, and API server being deployed on a single node, the IP of the server is the machine IP or localhost
ips="localhost"
sshPort="22"
masters="localhost"
workers="localhost:default"
alertServer="localhost"
apiServers="localhost"# DolphinScheduler installation path, it will auto-create if not exists
installPath=~/dolphinscheduler# Deploy user, use the user you create in section **Configure machine SSH password-free login**
deployUser="dolphinscheduler"
集群部署方式install_env.sh的配置:
# ---------------------------------------------------------
# INSTALL MACHINE
# ---------------------------------------------------------
# 需要配置master、worker、API server,所在服務(wù)器的IP均為機(jī)器IP或者localhost
# 如果是配置hostname的話,需要保證機(jī)器間可以通過(guò)hostname相互鏈接
# 如下圖所示,部署 DolphinScheduler 機(jī)器的 hostname 為 ds1,ds2,ds3,ds4,ds5,其中 ds1,ds2 安裝 master 服務(wù),ds3,ds4,ds5安裝 worker 服務(wù),alert server安裝在ds4中,api server 安裝在ds5中
ips="ds1,ds2,ds3,ds4,ds5"
masters="ds1,ds2"
workers="ds3:default,ds4:default,ds5:default"
alertServer="ds4"
apiServers="ds5"
5.修改 dolphinscheduler_env.sh 文件
文件 ./bin/env/dolphinscheduler_env.sh 描述了下列配置:
- DolphinScheduler 的數(shù)據(jù)庫(kù)配置
- 一些任務(wù)類型外部依賴路徑或庫(kù)文件,如 JAVA_HOME 和 SPARK_HOME都是在這里定義的
如果您不使用某些任務(wù)類型,您可以忽略任務(wù)外部依賴項(xiàng),但您必須根據(jù)您的環(huán)境更改 JAVA_HOME、注冊(cè)中心和數(shù)據(jù)庫(kù)相關(guān)配置
# JAVA_HOME, will use it to start DolphinScheduler server
export JAVA_HOME=${JAVA_HOME:-/opt/soft/java}# Database related configuration, set database type, username and password
export DATABASE=${DATABASE:-postgresql}
export SPRING_PROFILES_ACTIVE=${DATABASE}
export SPRING_DATASOURCE_URL="jdbc:postgresql://127.0.0.1:5432/dolphinscheduler"
export SPRING_DATASOURCE_USERNAME={user}
export SPRING_DATASOURCE_PASSWORD={password}# DolphinScheduler server related configuration
export SPRING_CACHE_TYPE=${SPRING_CACHE_TYPE:-none}
export SPRING_JACKSON_TIME_ZONE=${SPRING_JACKSON_TIME_ZONE:-UTC}
export MASTER_FETCH_COMMAND_NUM=${MASTER_FETCH_COMMAND_NUM:-10}# Registry center configuration, determines the type and link of the registry center
export REGISTRY_TYPE=${REGISTRY_TYPE:-zookeeper}
export REGISTRY_ZOOKEEPER_CONNECT_STRING=${REGISTRY_ZOOKEEPER_CONNECT_STRING:-localhost:2181}# Tasks related configurations, need to change the configuration if you use the related tasks.
export HADOOP_HOME=${HADOOP_HOME:-/opt/soft/hadoop}
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/opt/soft/hadoop/etc/hadoop}
export SPARK_HOME=${SPARK_HOME:-/opt/soft/spark}
export PYTHON_LAUNCHER=${PYTHON_LAUNCHER:-/opt/soft/python}
export HIVE_HOME=${HIVE_HOME:-/opt/soft/hive}
export FLINK_HOME=${FLINK_HOME:-/opt/soft/flink}
export DATAX_LAUNCHER=${DATAX_LAUNCHER:-/opt/soft/datax/bin/python3}export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_LAUNCHER:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_LAUNCHER:$PATH
三、啟動(dòng)DolphinScheduler
使用上面創(chuàng)建的部署用戶運(yùn)行以下命令完成部署,部署后的運(yùn)行日志將存放在 logs 文件夾內(nèi)
bash ./bin/install.sh
注意: 第一次部署的話,可能出現(xiàn) 5 次sh: bin/dolphinscheduler-daemon.sh: No such file or directory相關(guān)信息,此為非重要信息直接忽略即可
四、登錄 DolphinScheduler
瀏覽器訪問(wèn)地址 http://localhost:12345/dolphinscheduler/ui 即可登錄系統(tǒng) UI。默認(rèn)的用戶名和密碼是 admin/dolphinscheduler123
五、啟停服務(wù)
# 一鍵停止集群所有服務(wù)
bash ./bin/stop-all.sh# 一鍵開(kāi)啟集群所有服務(wù)
bash ./bin/start-all.sh# 啟停 Master
bash ./bin/dolphinscheduler-daemon.sh stop master-server
bash ./bin/dolphinscheduler-daemon.sh start master-server# 啟停 Worker
bash ./bin/dolphinscheduler-daemon.sh start worker-server
bash ./bin/dolphinscheduler-daemon.sh stop worker-server# 啟停 Api
bash ./bin/dolphinscheduler-daemon.sh start api-server
bash ./bin/dolphinscheduler-daemon.sh stop api-server# 啟停 Alert
bash ./bin/dolphinscheduler-daemon.sh start alert-server
bash ./bin/dolphinscheduler-daemon.sh stop alert-server
注意 1:: 每個(gè)服務(wù)在路徑 /conf/dolphinscheduler_env.sh 中都有 dolphinscheduler_env.sh 文件,這是可以為微 服務(wù)需求提供便利。意味著您可以基于不同的環(huán)境變量來(lái)啟動(dòng)各個(gè)服務(wù),只需要在對(duì)應(yīng)服務(wù)中配置 /conf/dolphinscheduler_env.sh 然后通過(guò) /bin/start.sh 命令啟動(dòng)即可。但是如果您使用命令 /bin/dolphinscheduler-daemon.sh start 啟動(dòng)服務(wù)器,它將會(huì)用文件 bin/env/dolphinscheduler_env.sh 覆蓋 /conf/dolphinscheduler_env.sh 然后啟動(dòng)服務(wù),目的是為了減少用戶修改配置的成本.
注意 2::服務(wù)用途請(qǐng)具體參見(jiàn)《系統(tǒng)架構(gòu)設(shè)計(jì)》小節(jié)。Python gateway service 默認(rèn)與 api-server 一起啟動(dòng),如果您不想啟動(dòng) Python gateway service 請(qǐng)通過(guò)更改 api-server 配置文件 api-server/conf/application.yaml 中的 python-gateway.enabled : false 來(lái)禁用它。