成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Apache DolphinScheduler(海豚調度系統)介紹與環境部署

大數據 數據分析
Apache DolphinScheduler 和 Azkaban 都是開源的大數據工作流調度系統,用于管理和調度大數據處理任務。它們具有一些相似的特點,但也有一些區別。

一、概述

Apache DolphinScheduler(簡稱DolphinScheduler)是一種開源的、分布式的、易于使用的大數據工作流調度系統。它旨在為大數據處理提供一個可靠、高效和可擴展的調度解決方案。

DolphinScheduler具有以下特點和功能:

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

總之,Apache DolphinScheduler是一個功能強大的大數據工作流調度系統,可以幫助用戶實現高效、可靠的大數據處理任務調度和管理。它是開源社區的項目,用戶可以根據自己的需求進行定制和擴展,并參與社區共同貢獻和發展。

  • 官網:https://dolphinscheduler.apache.org/zh-cn
  • GitHub:https://github.com/apache/dolphinscheduler

二、Apache DolphinScheduler 與 Azkaban 對比

Apache DolphinScheduler 和 Azkaban 都是開源的大數據工作流調度系統,用于管理和調度大數據處理任務。它們具有一些相似的特點,但也有一些區別。

相似之處:

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

區別之處:

  • 架構設計:DolphinScheduler 采用分布式架構,可以在大規模集群上運行,支持高并發的任務調度和執行。而 Azkaban 采用集中式架構,適用于中小規模的集群。
  • 擴展性和集成性:DolphinScheduler 提供了豐富的擴展接口和插件機制,可以方便地與其他大數據生態系統進行集成,并支持自定義插件開發。Azkaban 在擴展性和集成性方面相對較弱。
  • 權限管理:DolphinScheduler 支持用戶認證和授權,可以對任務和資源進行細粒度的權限管理。Azkaban 也支持權限管理,但在細粒度控制方面較弱。
  • 社區發展和支持:DolphinScheduler是一個新興的開源項目,社區活躍度逐漸增加,但相對于Azkaban來說,社區支持和文檔資源相對較少。

選擇使用 Apache DolphinScheduler 還是 Azkaban 取決于具體的需求和情況。如果您需要一個高可擴展性和靈活性的調度系統,并且希望與其他大數據生態系統進行深度集成,DolphinScheduler 可能是一個不錯的選擇。如果您的集群規模較小,并且對權限管理的要求不是很高,同時希望使用一個經過長期發展和廣泛使用的調度系統,Azkaban 可能更適合您的需求。

三、DolphinScheduler 架構設計

圖片

啟動流程活動圖

圖片

架構說明

  • MasterServer:MasterServer 采用分布式無中心設計理念,MasterServer 主要負責 DAG 任務切分、任務提交監控,并同時監聽其它 MasterServer 和 WorkerServer 的健康狀態。 MasterServer 服務啟動時向 Zookeeper 注冊臨時節點,通過監聽Zookeeper臨時節點變化來進行容錯處理。 MasterServer基于netty提供監聽服務。該服務內主要包含:

DistributedQuartz分布式調度組件,主要負責定時任務的啟停操作,當quartz調起任務后,Master內部會有線程池具體負責處理任務的后續操作;

MasterSchedulerService是一個掃描線程,定時掃描數據庫中的t_ds_command表,根據不同的命令類型進行不同的業務操作;

WorkflowExecuteRunnable主要是負責DAG任務切分、任務提交監控、各種不同事件類型的邏輯處理;

TaskExecuteRunnable主要負責任務的處理和持久化,并生成任務事件提交到工作流的事件隊列;

EventExecuteService主要負責工作流實例的事件隊列的輪詢;

StateWheelExecuteThread主要負責工作流和任務超時、任務重試、任務依賴的輪詢,并生成對應的工作流或任務事件提交到工作流的事件隊列;

FailoverExecuteThread主要負責Master容錯和Worker容錯的相關邏輯;

  • WorkerServer:WorkerServer也采用分布式無中心設計理念,WorkerServer主要負責任務的執行和提供日志服務。 WorkerServer服務啟動時向Zookeeper注冊臨時節點,并維持心跳。 WorkerServer基于netty提供監聽服務。該服務包含:
  • WorkerManagerThread主要負責任務隊列的提交,不斷從任務隊列中領取任務,提交到線程池處理;

  • TaskExecuteThread主要負責任務執行的流程,根據不同的任務類型進行任務的實際處理;

  • RetryReportTaskStatusThread主要負責定時輪詢向Master匯報任務的狀態,直到Master回復狀態的ack,避免任務狀態丟失;

  • ZooKeeper:ZooKeeper服務,系統中的MasterServer和WorkerServer節點都通過ZooKeeper來進行集群管理和容錯。另外系統還基于ZooKeeper進行事件監聽和分布式鎖。 我們也曾經基于Redis實現過隊列,不過我們希望DolphinScheduler依賴到的組件盡量地少,所以最后還是去掉了Redis實現。

  • AlertServer:提供告警服務,通過告警插件的方式實現豐富的告警手段。

  • ApiServer:API接口層,主要負責處理前端UI層的請求。該服務統一提供RESTful api向外部提供請求服務。

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

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

四、環境部署

1)環境信息

IP

主機名

角色

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

官網下載:https://www.oracle.com/java/technologies/downloads/

百度云下載

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

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

3)安裝 MySQL 數據庫

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

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
# 啟動并開機啟動
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

# 創建數據庫
create database dolphinscheduler character set utf8 ;  

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

4)安裝注冊中心 Zookeeper

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

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,但如果你運行的任務需要依賴他們,就需要有對應的環境支持。

6)修改配置

1、修改 install_env.sh 文件

文件 install_env.sh 描述了哪些機器將被安裝 DolphinScheduler 以及每臺機器對應安裝哪些服務。

bin/env/install_env.sh

配置

# ---------------------------------------------------------
# INSTALL MACHINE
# ---------------------------------------------------------
# 需要配置master、worker、API server,所在服務器的IP均為機器IP或者localhost
# 如果是配置hostname的話,需要保證機器間可以通過hostname相互鏈接
# 如下圖所示,部署 DolphinScheduler 機器的 hostname 為 ds1,ds2,ds3,ds4,ds5,其中 ds1,ds2 安裝 master 服務,ds3,ds4,ds5安裝 worker 服務,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 的數據庫配置,詳細配置方法見初始化數據庫
  • 一些任務類型外部依賴路徑或庫文件,如 JAVA_HOME 和 SPARK_HOME都是在這里定義的
  • 注冊中心 zookeeper
  • 服務端相關配置,比如緩存,時區設置等。

如果您不使用某些任務類型,您可以忽略任務外部依賴項,但您必須根據您的環境更改 JAVA_HOME、注冊中心和數據庫相關配置。

# 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驅動包

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 驅動放到以上的libs文件夾后,還需要將mysql-connector-java-8.0.16.jar 驅動放到tools目錄下的libs目錄一份。

7)將配置copy其它節點

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

8)初始化數據庫

bash tools/bin/upgrade-schema.sh

9)啟動服務

因為機器資源有限,這里調整一下jvm內存

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

根據規劃,分別在不同機器上啟動對應的服務

IP

主機名

角色

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

默認賬戶密碼:admin/dolphinscheduler123

圖片

責任編輯:武曉燕 來源: 大數據與云原生技術分享
相關推薦

2023-01-03 07:57:27

2010-01-15 20:09:40

centos卸載系統

2009-09-21 14:50:01

Hibernate部署

2012-05-14 14:09:53

Linux內核調度系統

2015-08-26 11:11:18

機房環境

2014-01-06 17:09:10

ApacheMesos

2010-03-05 13:28:14

Android手機系統

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

2023-03-22 18:34:30

Flink調度部署

2011-03-22 16:28:25

lamp

2009-12-31 16:16:55

2021-10-27 11:33:31

數據倉庫架構

2022-08-11 08:27:24

Sentry日志監控系統

2021-04-09 22:09:55

軟件基金會頂級項目

2010-03-17 15:58:08

Python環境

2011-07-06 17:34:47

iPhone
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩视频二区 | 国产东北一级毛片 | 精品国产精品三级精品av网址 | 中文视频在线 | 久久美女网 | 久久精品一 | 久久69精品久久久久久久电影好 | 精精国产xxxx视频在线 | 午夜在线视频 | 日韩乱码在线 | 国产三级精品三级在线观看四季网 | 手机在线不卡av | 久久久亚洲 | 欧美一区不卡 | 久久天堂 | 欧美精品一区二区三区在线 | 亚洲成人高清 | 国户精品久久久久久久久久久不卡 | 成人午夜精品 | av一级在线观看 | 精品国产青草久久久久96 | 激情国产在线 | 欧美不卡 | 久久久久国产一区二区三区 | 国产免费一区 | 99re6热在线精品视频播放 | 欧美在线a | 日本特黄特色aaa大片免费 | 久久综合av| 国产精品99久久久久久宅男 | 国产国产精品 | 香蕉视频在线播放 | 欧美黄视频| 亚洲欧美在线一区 | 日韩视频一区 | 国产在线看片 | 精品国产乱码久久久久久88av | 成人免费视频网址 | 国产成人一区在线 | 精品一级毛片 | 91免费小视频 |