Java 定時任務調度(9)--DolphinScheduler 使用


DolphinScheduler 是一個分布式去中心化,易擴展的可視化 DAG 工作流任務調度系統。本文主要介紹 DolphinScheduler 的基本使用,文中使用到的軟件及版本:Java 1.8.0_181、DolphinScheduler 1.3.6、MySQL 5.7、Zookeeper 3.6.3、Centos 7.6。

1、DolphinScheduler 簡介

1.1、DolphinScheduler 特性

A、高可靠性  去中心化的多 Master 和多 Worker, 自身支持 HA 功能, 采用任務隊列來避免過載,不會造成機器卡死

B、簡單易用  DAG 監控界面,所有流程定義都是可視化,通過拖拽任務完成定制 DAG,通過 API 方式與第三方系統集成, 一鍵部署

C、豐富的使用場景  支持暫停恢復操作. 支持多租戶,更好的應對大數據的使用場景. 支持更多的任務類型,如:Spark, Hive, M/R, Python, Sub_process, Shell

D、高擴展性  支持自定義任務類型,調度器使用分布式調度,調度能力隨集群線性增長,Master 和 Worker 支持動態上下線

1.2、DolphinScheduler 架構

1.3、DolphinScheduler 流程啟動活動圖

 更多詳細的介紹可參考官網:https://dolphinscheduler.apache.org/zh-cn/

2、DolphinScheduler 安裝

2.1、單機安裝

2.1.1、基礎軟件安裝

a、PostgreSQL (8.2.15+) or MySQL (5.7系列) : 兩者任選其一即可, 如MySQL則需要JDBC Driver 5.1.47+
b、JDK (1.8+) : 必裝,安裝好后需配置 JAVA_HOME 及 PATH 變量
c、ZooKeeper (3.4.6+) :必裝
d、Hadoop (2.6+) or MinIO :選裝, 如果需要用到資源上傳功能,針對單機可以選擇本地文件目錄作為上傳文件夾(此操作不需要部署Hadoop);當然也可以選擇上傳到Hadoop or MinIO集群上

2.1.2、下載安裝包並解壓

https://dolphinscheduler.apache.org/zh-cn/download/download.html

tar zxvf apache-dolphinscheduler-1.3.6-bin.tar.gz

2.1.3、創建部署用戶並賦予目錄操作權限

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

# 修改目錄權限
chown -R dolphinscheduler:dolphinscheduler apache-dolphinscheduler-1.3.6-bin

2.1.4、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.1.5、修改數據庫信息

vi conf/datasource.properties

如果選擇 MySQL,需要把 MySQL 的 JDBC 驅動放到 lib 目錄下

spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://10.49.196.49:3306/dolphinscheduler?characterEncoding=UTF-8&allowMultiQueries=true
spring.datasource.username=admin
spring.datasource.password=Root_123!

2.1.6、修改運行參數

a、修改 conf/env/dolphinscheduler_env.sh 中環境變量;JAVA_HOME 和 PATH 是必須要配置的,沒有用到的可以忽略或者注釋掉

export HADOOP_HOME=/opt/soft/hadoop
export HADOOP_CONF_DIR=/opt/soft/hadoop/etc/hadoop
export SPARK_HOME1=/opt/soft/spark1
export SPARK_HOME2=/opt/soft/spark2
export PYTHON_HOME=/opt/soft/python
export JAVA_HOME=/home/hadoop/app/jdk1.8.0_221/bin/java
export HIVE_HOME=/opt/soft/hive
export FLINK_HOME=/opt/soft/flink
export DATAX_HOME=/opt/soft/datax

export PATH=$HADOOP_HOME/bin:$SPARK_HOME1/bin:$SPARK_HOME2/bin:$PYTHON_HOME:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_HOME/bin
:$PATH

b、將 jdk 軟鏈到 /usr/bin/java下

sudo ln -s /home/hadoop/app/jdk1.8.0_221/bin/java /usr/bin/java

c、修改一鍵部署配置文件 conf/config/install_config.conf 中的各參數

dbtype="mysql"

dbhost="10.49.196.49:3306"
username="admin"
password="Root_123!"

zkQuorum="10.49.196.11:2181"

#安裝目錄
installPath="/home/dolphinscheduler/dolphinscheduler-1.3.6"

#部署用戶
deployUser="dolphinscheduler"

# 業務用到的比如sql等資源文件上傳到哪里,可以設置:HDFS,S3,NONE,單機如果想使用本地文件系統,請配置為HDFS,因為HDFS支持本地文件系統;如果不需要資源上傳功能請選擇NONE。強調一點:使用本地文件系統不需要部署hadoop
resourceStorageType="HDFS"

#這里以保存到本地文件系統為例
#如果想上傳到HDFS的話,NameNode啟用了HA,則需要將hadoop的配置文件core-site.xml和hdfs-site.xml放到conf目錄下,本例即是放到/opt/dolphinscheduler/conf下面,並配置namenode cluster名稱;如果NameNode不是HA,則修改為具體的ip或者主機名即可
#defaultFS="hdfs://mycluster:8020" defaultFS="file:///home/dolphinscheduler/data" # 資源上傳根路徑,支持HDFS和S3,由於hdfs支持本地文件系統,需要確保本地文件夾存在且有讀寫權限 resourceUploadPath="/home/dolphinscheduler/data" ips="localhost" masters="localhost" workers="localhost:default" alertServer="localhost" apiServers="localhost"

d、一鍵部署

install.sh

腳本完成后,會啟動以下5個服務:

MasterServer         ----- master服務
WorkerServer         ----- worker服務
LoggerServer         ----- logger服務
ApiApplicationServer ----- api服務
AlertServer          ----- alert服務

e、啟停服務

進入到安裝目錄,可以啟停個服務。

啟停所有服務

./bin/stop-all.sh
./bin/start-all.sh

啟停 Master

./bin/dolphinscheduler-daemon.sh start master-server
./bin/dolphinscheduler-daemon.sh stop master-server

啟停 Worker

./bin/dolphinscheduler-daemon.sh start worker-server
./bin/dolphinscheduler-daemon.sh stop worker-server

啟停 Api

./bin/dolphinscheduler-daemon.sh start api-server
./bin/dolphinscheduler-daemon.sh stop api-server

啟停 Logger

./bin/dolphinscheduler-daemon.sh start logger-server
./bin/dolphinscheduler-daemon.sh stop logger-server

啟停 Alert

./bin/dolphinscheduler-daemon.sh start alert-server
./bin/dolphinscheduler-daemon.sh stop alert-server

2.2、集群安裝

集群安裝和單機安裝大部分都是一樣的,具體可參考官網文檔,這里就不說明了。

3、DolphinScheduler 使用

進入控制台 http://10.49.196.11:12345/dolphinscheduler (admin/dolphinscheduler123),點擊“項目管理”,新建一個項目,然后定義工作流,工作流支持多種任務:SHELL、SQL、HTTP、MapReduce、SPARK 等等。

  “工作流實例“,”任務實例“可以查看任務執行的日志。

詳細的使用說明可參考官網文檔:https://dolphinscheduler.apache.org/zh-cn/docs/latest/user_doc/system-manual.html。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM