自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Apache DolphinScheduler(海豚調(diào)度系統(tǒng))介紹與環(huán)境部署

大數(shù)據(jù) 數(shù)據(jù)分析
Apache DolphinScheduler 和 Azkaban 都是開源的大數(shù)據(jù)工作流調(diào)度系統(tǒng),用于管理和調(diào)度大數(shù)據(jù)處理任務(wù)。它們具有一些相似的特點(diǎn),但也有一些區(qū)別。

一、概述

Apache DolphinScheduler(簡稱DolphinScheduler)是一種開源的、分布式的、易于使用的大數(shù)據(jù)工作流調(diào)度系統(tǒng)。它旨在為大數(shù)據(jù)處理提供一個(gè)可靠、高效和可擴(kuò)展的調(diào)度解決方案。

DolphinScheduler具有以下特點(diǎn)和功能:

  • 分布式架構(gòu):DolphinScheduler采用了分布式架構(gòu),可以在大規(guī)模集群上運(yùn)行,實(shí)現(xiàn)高并發(fā)的任務(wù)調(diào)度和執(zhí)行。
  • 多種任務(wù)類型:支持多種類型的任務(wù),包括Shell任務(wù)、Spark任務(wù)、Hadoop任務(wù)、SQL任務(wù)等,可以滿足各種大數(shù)據(jù)處理需求。
  • 可視化工作流編輯器:提供了直觀易用的工作流編輯器,可以通過圖形界面進(jìn)行工作流的創(chuàng)建、編輯和調(diào)度管理,無需編寫復(fù)雜的代碼。
  • 豐富的調(diào)度策略:支持靈活的調(diào)度策略,可以根據(jù)任務(wù)依賴關(guān)系、優(yōu)先級(jí)、資源需求等進(jìn)行調(diào)度和管理。
  • 任務(wù)監(jiān)控和告警:提供了實(shí)時(shí)的任務(wù)監(jiān)控和告警功能,可以及時(shí)了解任務(wù)的執(zhí)行情況和異常情況,并采取相應(yīng)的措施進(jìn)行處理。
  • 安全和權(quán)限管理:支持用戶認(rèn)證和授權(quán),可以對(duì)任務(wù)和資源進(jìn)行細(xì)粒度的權(quán)限管理,保證系統(tǒng)的安全性和數(shù)據(jù)的隱私性。
  • 擴(kuò)展性和集成性:DolphinScheduler提供了豐富的擴(kuò)展接口和插件機(jī)制,可以方便地集成到現(xiàn)有的大數(shù)據(jù)生態(tài)系統(tǒng)中,并支持自定義插件開發(fā)。

總之,Apache DolphinScheduler是一個(gè)功能強(qiáng)大的大數(shù)據(jù)工作流調(diào)度系統(tǒng),可以幫助用戶實(shí)現(xiàn)高效、可靠的大數(shù)據(jù)處理任務(wù)調(diào)度和管理。它是開源社區(qū)的項(xiàng)目,用戶可以根據(jù)自己的需求進(jìn)行定制和擴(kuò)展,并參與社區(qū)共同貢獻(xiàn)和發(fā)展。

  • 官網(wǎng):https://dolphinscheduler.apache.org/zh-cn
  • GitHub:https://github.com/apache/dolphinscheduler

二、Apache DolphinScheduler 與 Azkaban 對(duì)比

Apache DolphinScheduler 和 Azkaban 都是開源的大數(shù)據(jù)工作流調(diào)度系統(tǒng),用于管理和調(diào)度大數(shù)據(jù)處理任務(wù)。它們具有一些相似的特點(diǎn),但也有一些區(qū)別。

相似之處:

  • 工作流調(diào)度:兩者都提供了工作流調(diào)度功能,可以定義任務(wù)之間的依賴關(guān)系,按照指定的調(diào)度策略和優(yōu)先級(jí)來執(zhí)行任務(wù)。
  • 可視化編輯器:兩者都提供了可視化的工作流編輯器,可以通過圖形界面創(chuàng)建、編輯和管理工作流,減少了對(duì)復(fù)雜的腳本編寫的依賴。
  • 多任務(wù)類型支持:兩者都支持多種類型的任務(wù),如Shell任務(wù)、Hadoop任務(wù)、Spark任務(wù)等,可以滿足各種大數(shù)據(jù)處理需求。
  • 調(diào)度監(jiān)控和告警:兩者都提供了任務(wù)的監(jiān)控和告警功能,可以實(shí)時(shí)查看任務(wù)的執(zhí)行狀態(tài),并及時(shí)通知用戶執(zhí)行結(jié)果或異常情況。

區(qū)別之處:

  • 架構(gòu)設(shè)計(jì):DolphinScheduler 采用分布式架構(gòu),可以在大規(guī)模集群上運(yùn)行,支持高并發(fā)的任務(wù)調(diào)度和執(zhí)行。而 Azkaban 采用集中式架構(gòu),適用于中小規(guī)模的集群。
  • 擴(kuò)展性和集成性:DolphinScheduler 提供了豐富的擴(kuò)展接口和插件機(jī)制,可以方便地與其他大數(shù)據(jù)生態(tài)系統(tǒng)進(jìn)行集成,并支持自定義插件開發(fā)。Azkaban 在擴(kuò)展性和集成性方面相對(duì)較弱。
  • 權(quán)限管理:DolphinScheduler 支持用戶認(rèn)證和授權(quán),可以對(duì)任務(wù)和資源進(jìn)行細(xì)粒度的權(quán)限管理。Azkaban 也支持權(quán)限管理,但在細(xì)粒度控制方面較弱。
  • 社區(qū)發(fā)展和支持:DolphinScheduler是一個(gè)新興的開源項(xiàng)目,社區(qū)活躍度逐漸增加,但相對(duì)于Azkaban來說,社區(qū)支持和文檔資源相對(duì)較少。

選擇使用 Apache DolphinScheduler 還是 Azkaban 取決于具體的需求和情況。如果您需要一個(gè)高可擴(kuò)展性和靈活性的調(diào)度系統(tǒng),并且希望與其他大數(shù)據(jù)生態(tài)系統(tǒng)進(jìn)行深度集成,DolphinScheduler 可能是一個(gè)不錯(cuò)的選擇。如果您的集群規(guī)模較小,并且對(duì)權(quán)限管理的要求不是很高,同時(shí)希望使用一個(gè)經(jīng)過長期發(fā)展和廣泛使用的調(diào)度系統(tǒng),Azkaban 可能更適合您的需求。

三、DolphinScheduler 架構(gòu)設(shè)計(jì)

圖片

啟動(dòng)流程活動(dòng)圖

圖片

架構(gòu)說明

  • MasterServer:MasterServer 采用分布式無中心設(shè)計(jì)理念,MasterServer 主要負(fù)責(zé) DAG 任務(wù)切分、任務(wù)提交監(jiān)控,并同時(shí)監(jiān)聽其它 MasterServer 和 WorkerServer 的健康狀態(tài)。 MasterServer 服務(wù)啟動(dòng)時(shí)向 Zookeeper 注冊(cè)臨時(shí)節(jié)點(diǎn),通過監(jiān)聽Zookeeper臨時(shí)節(jié)點(diǎn)變化來進(jìn)行容錯(cuò)處理。 MasterServer基于netty提供監(jiān)聽服務(wù)。該服務(wù)內(nèi)主要包含:

DistributedQuartz分布式調(diào)度組件,主要負(fù)責(zé)定時(shí)任務(wù)的啟停操作,當(dāng)quartz調(diào)起任務(wù)后,Master內(nèi)部會(huì)有線程池具體負(fù)責(zé)處理任務(wù)的后續(xù)操作;

MasterSchedulerService是一個(gè)掃描線程,定時(shí)掃描數(shù)據(jù)庫中的t_ds_command表,根據(jù)不同的命令類型進(jìn)行不同的業(yè)務(wù)操作;

WorkflowExecuteRunnable主要是負(fù)責(zé)DAG任務(wù)切分、任務(wù)提交監(jiān)控、各種不同事件類型的邏輯處理;

TaskExecuteRunnable主要負(fù)責(zé)任務(wù)的處理和持久化,并生成任務(wù)事件提交到工作流的事件隊(duì)列;

EventExecuteService主要負(fù)責(zé)工作流實(shí)例的事件隊(duì)列的輪詢;

StateWheelExecuteThread主要負(fù)責(zé)工作流和任務(wù)超時(shí)、任務(wù)重試、任務(wù)依賴的輪詢,并生成對(duì)應(yīng)的工作流或任務(wù)事件提交到工作流的事件隊(duì)列;

FailoverExecuteThread主要負(fù)責(zé)Master容錯(cuò)和Worker容錯(cuò)的相關(guān)邏輯;

  • WorkerServer:WorkerServer也采用分布式無中心設(shè)計(jì)理念,WorkerServer主要負(fù)責(zé)任務(wù)的執(zhí)行和提供日志服務(wù)。 WorkerServer服務(wù)啟動(dòng)時(shí)向Zookeeper注冊(cè)臨時(shí)節(jié)點(diǎn),并維持心跳。 WorkerServer基于netty提供監(jiān)聽服務(wù)。該服務(wù)包含:
  • WorkerManagerThread主要負(fù)責(zé)任務(wù)隊(duì)列的提交,不斷從任務(wù)隊(duì)列中領(lǐng)取任務(wù),提交到線程池處理;

  • TaskExecuteThread主要負(fù)責(zé)任務(wù)執(zhí)行的流程,根據(jù)不同的任務(wù)類型進(jìn)行任務(wù)的實(shí)際處理;

  • RetryReportTaskStatusThread主要負(fù)責(zé)定時(shí)輪詢向Master匯報(bào)任務(wù)的狀態(tài),直到Master回復(fù)狀態(tài)的ack,避免任務(wù)狀態(tài)丟失;

  • ZooKeeper:ZooKeeper服務(wù),系統(tǒng)中的MasterServer和WorkerServer節(jié)點(diǎn)都通過ZooKeeper來進(jìn)行集群管理和容錯(cuò)。另外系統(tǒng)還基于ZooKeeper進(jìn)行事件監(jiān)聽和分布式鎖。 我們也曾經(jīng)基于Redis實(shí)現(xiàn)過隊(duì)列,不過我們希望DolphinScheduler依賴到的組件盡量地少,所以最后還是去掉了Redis實(shí)現(xiàn)。

  • AlertServer:提供告警服務(wù),通過告警插件的方式實(shí)現(xiàn)豐富的告警手段。

  • ApiServer:API接口層,主要負(fù)責(zé)處理前端UI層的請(qǐng)求。該服務(wù)統(tǒng)一提供RESTful api向外部提供請(qǐng)求服務(wù)。

  • UI:系統(tǒng)的前端頁面,提供系統(tǒng)的各種可視化操作界面。

這里只是摘錄了官方文檔部分內(nèi)容,更多內(nèi)容可以參考官方文檔:https://dolphinscheduler.apache.org/zh-cn/docs/3.1.7/architecture/design

四、環(huán)境部署

1)環(huán)境信息

IP

主機(jī)名

角色

192.168.182.110

local-168-182-110

master-server、api-server、alert-server、ZK、MySQL

192.168.182.111

local-168-182-111

master-server、worker-server

192.168.182.112

local-168-182-112

worker-server

2)安裝 JDK

官網(wǎng)下載:https://www.oracle.com/java/technologies/downloads/

百度云下載

鏈接:https://pan.baidu.com/s/1-rgW-Z-syv24vU15bmMg1w提取碼:8888

# 編輯/etc/profile,文末插入以下內(nèi)容:
# set java
export JAVA_HOME=/opt/apache/jdk1.8.0_212
export PATH=$JAVA_HOME/bin:$PATH

3)安裝 MySQL 數(shù)據(jù)庫

這里選擇docker快速部署的方式:通過 docker-compose 快速部署 MySQL保姆級(jí)教程

1、部署 docker

# 安裝yum-config-manager配置工具
yum -y install yum-utils

# 建議使用阿里云yum源:(推薦)
#yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 安裝docker-ce版本
yum install -y docker-ce
# 啟動(dòng)并開機(jī)啟動(dòng)
systemctl enable --now docker
docker --version

2、部署 docker-compose

curl -SL https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose
docker-compose --version

3、安裝 git

yum -y install git

3、開始部署

git clone https://gitee.com/hadoop-bigdata/docker-compose-mysql.git

cd docker-compose-mysql

# create network
docker network create hadoop-network

# 部署
docker-compose -f docker-compose.yaml up -d

# 查看
docker-compose -f docker-compose.yaml ps

# 登錄mysql
mysql -uroot -p
# 輸入密碼:123456

# 創(chuàng)建數(shù)據(jù)庫
create database dolphinscheduler character set utf8 ;  

CREATE USER 'dolphinscheduler'@'%'IDENTIFIED BY 'dolphinscheduler@123';
GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphinscheduler'@'%';
FLUSH PRIVILEGES;

4)安裝注冊(cè)中心 Zookeeper

這里選擇docker快速部署的方式:【中間件】通過 docker-compose 快速部署 Zookeeper 保姆級(jí)教程

git clone https://gitee.com/hadoop-bigdata/docker-compose-zookeeper.git

cd docker-compose-zookeeper

# 部署
docker-compose -f docker-compose.yaml up -d

# 查看
docker-compose -f docker-compose.yaml ps

5)下載 dolphinscheduler 安裝包

wget https://dlcdn.apache.org/dolphinscheduler/3.1.7/apache-dolphinscheduler-3.1.7-bin.tar.gz --no-check-certificate
# 解壓
tar -xvzf apache-dolphinscheduler-*-bin.tar.gz

注意: DolphinScheduler 本身不依賴 Hadoop、Hive、Spark,但如果你運(yùn)行的任務(wù)需要依賴他們,就需要有對(duì)應(yīng)的環(huán)境支持。

6)修改配置

1、修改 install_env.sh 文件

文件 install_env.sh 描述了哪些機(jī)器將被安裝 DolphinScheduler 以及每臺(tái)機(jī)器對(duì)應(yīng)安裝哪些服務(wù)。

bin/env/install_env.sh

配置

# ---------------------------------------------------------
# INSTALL MACHINE
# ---------------------------------------------------------
# 需要配置master、worker、API server,所在服務(wù)器的IP均為機(jī)器IP或者localhost
# 如果是配置hostname的話,需要保證機(jī)器間可以通過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"
ips="192.168.182.110,192.168.182.111,192.168.182.112"
# masters="ds1,ds2"
masters="192.168.182.110,192.168.182.111"
# workers="ds3:default,ds4:default,ds5:default"
workers="192.168.182.111:default,192.168.182.112:default"
# alertServer="ds4"
alertServer="192.168.182.110"
# apiServers="ds5"
apiServers="192.168.182.110"

2、修改 dolphinscheduler_env.sh 文件

文件 ./bin/env/dolphinscheduler_env.sh 描述了下列配置:

  • DolphinScheduler 的數(shù)據(jù)庫配置,詳細(xì)配置方法見初始化數(shù)據(jù)庫
  • 一些任務(wù)類型外部依賴路徑或庫文件,如 JAVA_HOME 和 SPARK_HOME都是在這里定義的
  • 注冊(cè)中心 zookeeper
  • 服務(wù)端相關(guān)配置,比如緩存,時(shí)區(qū)設(shè)置等。

如果您不使用某些任務(wù)類型,您可以忽略任務(wù)外部依賴項(xiàng),但您必須根據(jù)您的環(huán)境更改 JAVA_HOME、注冊(cè)中心和數(shù)據(jù)庫相關(guān)配置。

# JAVA_HOME, will use it to start DolphinScheduler server
# export JAVA_HOME=${JAVA_HOME:-/opt/soft/java}
export JAVA_HOME=/opt/apache/jdk1.8.0_212

# Database related configuration, set database type, username and password
# export DATABASE=${DATABASE:-postgresql}
export DATABASE=${DATABASE:-mysql}
export SPRING_PROFILES_ACTIVE=${DATABASE}
# export SPRING_DATASOURCE_URL="jdbc:postgresql://127.0.0.1:5432/dolphinscheduler"
export SPRING_DATASOURCE_URL="jdbc:mysql://192.168.182.110:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false"
# export SPRING_DATASOURCE_USERNAME={user}
export SPRING_DATASOURCE_USERNAME=dolphinscheduler
# export SPRING_DATASOURCE_PASSWORD={password}
export SPRING_DATASOURCE_PASSWORD=dolphinscheduler@123

# 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}
export REGISTRY_ZOOKEEPER_CONNECT_STRING="192.168.182.110:31181,192.168.182.110:32181,192.168.182.110:33181"

# 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_HOME1=${SPARK_HOME1:-/opt/soft/spark1}
export SPARK_HOME2=${SPARK_HOME2:-/opt/soft/spark2}
export PYTHON_HOME=${PYTHON_HOME:-/opt/soft/python}
export HIVE_HOME=${HIVE_HOME:-/opt/soft/hive}
export FLINK_HOME=${FLINK_HOME:-/opt/soft/flink}
export DATAX_HOME=${DATAX_HOME:-/opt/soft/datax}

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

3、下載MySQL驅(qū)動(dòng)包

wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.16/mysql-connector-java-8.0.16.jar
mv mysql-connector-java-8.0.16.jar tools/libs/
cp tools/libs/mysql-connector-java-8.0.16.jar master-server/libs/
cp tools/libs/mysql-connector-java-8.0.16.jar worker-server/libs/
cp tools/libs/mysql-connector-java-8.0.16.jar alert-server/libs/
cp tools/libs/mysql-connector-java-8.0.16.jar api-server/libs/

【注意】除了將 mysql-connector-java-8.0.16.jar 驅(qū)動(dòng)放到以上的libs文件夾后,還需要將mysql-connector-java-8.0.16.jar 驅(qū)動(dòng)放到tools目錄下的libs目錄一份。

7)將配置copy其它節(jié)點(diǎn)

scp -r /opt/apache/dolphinscheduler local-168-182-111:/opt/apache/
scp -r /opt/apache/dolphinscheduler local-168-182-112:/opt/apache/

8)初始化數(shù)據(jù)庫

bash tools/bin/upgrade-schema.sh

9)啟動(dòng)服務(wù)

因?yàn)闄C(jī)器資源有限,這里調(diào)整一下jvm內(nèi)存

# master-server/bin/start.sh
# api-server/bin/start.sh
# alert-server/bin/start.sh
# ./worker-server/bin/start.sh

根據(jù)規(guī)劃,分別在不同機(jī)器上啟動(dòng)對(duì)應(yīng)的服務(wù)

IP

主機(jī)名

角色

192.168.182.110

local-168-182-110

master-server、api-server、alert-server、ZK、MySQL

192.168.182.111

local-168-182-111

master-server、worker-server

192.168.182.112

local-168-182-112

worker-server

# 啟停 Master
bash ./bin/dolphinscheduler-daemon.sh start master-server
# 查看日志
tail -f master-server/logs/dolphinscheduler-master.log
# bash ./bin/dolphinscheduler-daemon.sh stop master-server

# 啟停 Api
bash ./bin/dolphinscheduler-daemon.sh start api-server
# 查看日志
tail -f api-server/logs/dolphinscheduler-api.log
# bash ./bin/dolphinscheduler-daemon.sh stop api-server

# 啟停 Alert
bash ./bin/dolphinscheduler-daemon.sh start alert-server
# 查看日志
tail -f alert-server/logs/dolphinscheduler-alert.log
# bash ./bin/dolphinscheduler-daemon.sh stop alert-server

# 啟停 Worker
bash ./bin/dolphinscheduler-daemon.sh start worker-server
# 查看日志
tail -f worker-server/logs/dolphinscheduler-worker.log
# bash ./bin/dolphinscheduler-daemon.sh stop worker-server

10)web 地址訪問

# http://<your_ip>:12345/dolphinscheduler/ui/login
http://192.168.182.110:12345/dolphinscheduler/ui/login

默認(rèn)賬戶密碼:admin/dolphinscheduler123

圖片

責(zé)任編輯:武曉燕 來源: 大數(shù)據(jù)與云原生技術(shù)分享
相關(guān)推薦

2023-01-03 07:57:27

2010-01-15 20:09:40

centos卸載系統(tǒng)

2009-09-21 14:50:01

Hibernate部署

2012-05-14 14:09:53

Linux內(nèi)核調(diào)度系統(tǒng)

2014-01-06 17:09:10

ApacheMesos

2015-08-26 11:11:18

機(jī)房環(huán)境

2010-03-05 13:28:14

Android手機(jī)系統(tǒng)

2012-03-20 11:41:18

海豚瀏覽器

2013-08-05 17:09:57

2020-09-30 08:54:16

鴻蒙

2010-01-13 17:54:48

CentOS 5安裝

2010-01-15 10:02:57

CentOS5.2 A

2011-03-22 16:28:25

lamp

2023-03-22 18:34:30

Flink調(diào)度部署

2009-12-31 16:16:55

2021-04-09 22:09:55

軟件基金會(huì)頂級(jí)項(xiàng)目

2022-08-11 08:27:24

Sentry日志監(jiān)控系統(tǒng)

2021-10-27 11:33:31

數(shù)據(jù)倉庫架構(gòu)

2023-02-09 08:08:01

vivoJenkins服務(wù)器

2010-03-17 15:58:08

Python環(huán)境
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)