centos7搭建dolphinscheduler集群


一、簡述

Apache DolphinScheduler是一個分布式去中心化,易擴展的可視化DAG工作流任務調度系統。致力於解決數據處理流程中錯綜復雜的依賴關系,使調度系統在數據處理流程中開箱即用。有如下特性:

高可靠性

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

簡單易用

DAG監控界面,所有流程定義都是可視化,通過拖拽任務定制DAG,通過API方式與第三方系統對接, 一鍵部署

豐富的使用場景

支持暫停恢復操作. 支持多租戶,更好的應對大數據的使用場景. 支持更多的任務類型,如 spark, hive, mr, python, sub_process, shell

高擴展性

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

二、搭建過程

1.環境配置

 集群服務划分:

192.168.30.141 s141 (master)
192.168.30.142 s142 (master) 192.168.30.143 s143 (api) 192.168.30.144 s144 (worker) 192.168.30.145 s145 (worker) 192.168.30.146 s146 (worker) 192.168.30.147 s147 (worker)

1>安裝軟件

PostgreSQL (8.2.15+) or MySQL (5.7系列) : 兩者任選其一即可, 如MySQL則需要JDBC Driver 5.1.47+

JDK (1.8+) : 必裝,請安裝好后在/etc/profile下配置 JAVA_HOME 及 PATH 變量

ZooKeeper (3.4.6+) :必裝

Hadoop (2.6+) or MinIO :選裝,如果需要用到資源上傳功能,可以選擇上傳到Hadoop or MinIO上

 注意:DolphinScheduler本身不依賴Hadoop、Hive、Spark,僅是會調用他們的Client,用於對應任務的提交。

2>創建部署用戶
# 創建用戶需使用root登錄,設置部署用戶名,請自行修改,后面以dolphinscheduler為例
useradd dolphinscheduler;

# 設置用戶密碼,請自行修改,后面以111111為例
echo "111111" | passwd --stdin dolphinscheduler

# 配置sudo免密
echo 'dolphinscheduler  ALL=(ALL)  NOPASSWD: NOPASSWD: ALL' >> /etc/sudoers
sed -i 's/Defaults    requirett/#Defaults    requirett/g' /etc/sudoers

注意: - 因為是以 sudo -u {linux-user} 切換不同linux用戶的方式來實現多租戶運行作業,所以部署用戶需要有 sudo 權限,而且是免密的。 - 如果發現/etc/sudoers文件中有"Default requiretty"這行,也請注釋掉 - 如果用到資源上傳的話,還需要在`HDFS或者MinIO`上給該部署用戶分配讀寫的權限

3>配置host映射和ssh打通

vim /etc/hosts

192.168.30.141 s141
192.168.30.142 s142
192.168.30.143 s143
192.168.30.144 s144
192.168.30.145 s145
192.168.30.146 s146
192.168.30.147 s147

在s141上,切換到部署用戶並配置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

注意:正常設置后,dolphinscheduler用戶在執行命令ssh localhost 是不需要再輸入密碼的

在s141上,配置部署用戶dolphinscheduler ssh打通到其他待部署的機器(其他機器同理)

su dolphinscheduler;
for ip in s142 s143 s144 s145 s146 s147;     #請將此處s142 s143等替換為自己要部署的機器的hostname
do
    ssh-copy-id  $ip   #該操作執行過程中需要手動輸入dolphinscheduler用戶的密碼
done
# 當然 通過 sshpass -p xxx ssh-copy-id $ip 就可以省去輸入密碼了

在s141上,修改目錄權限,創建並使得部署用戶對/opt/dolphinscheduler目錄有操作權限(其他機器同理)

cd /opt
mkdir dolphinscheduler
sudo chown -R dolphinscheduler:dolphinscheduler dolphinscheduler

2.安裝包獲取

可以下載最新版本的后端安裝包,也可以從github上clone源代碼自己打包,推薦后者,可以先把datasource.properties中數據庫連接修改為對應的,把dolphinscheduler_env.sh中環境變量修改自己對應的位置,將代碼包上傳至服務器 /opt/dolphinscheduler 下

3.安裝腳本

該腳本只啟動了worker,如果要啟動其他服務,可以解開注釋或添加對應服務的命令即可,划分好集群中各機器部署的服務,對應相應的腳本

#!/bin/sh
workDir=`dirname $0`
workDir=`cd ${workDir};pwd`

files=$(ls -l /opt/dolphinscheduler/ |awk '/^-/ {print $NF}' | grep 'apache-dolphinscheduler-incubating')
file=''
for i in $files
do
 file=$i
done
tar -zxvf $workDir/$file -C $workDir
ds_dir=${file%%.tar.gz*}

#sh $workDir/dolphinscheduler/bin/dolphinscheduler-daemon.sh stop master-server
sh $workDir/dolphinscheduler/bin/dolphinscheduler-daemon.sh stop worker-server
#sh $workDir/dolphinscheduler/bin/dolphinscheduler-daemon.sh stop api-server


rm -rf $workDir/dolphinscheduler
echo "mv $workDir/$ds_dir to $workDir/dolphinscheduler"
mv $workDir/$ds_dir $workDir/dolphinscheduler

chmod 755 $workDir/dolphinscheduler/bin/*
sed -i 's/\r$//' $workDir/dolphinscheduler/bin/dolphinscheduler-daemon.sh
sed -i 's/\r$//' $workDir/dolphinscheduler/conf/env/dolphinscheduler_env.sh


#sh $workDir/dolphinscheduler/bin/dolphinscheduler-daemon.sh start master-server
sh $workDir/dolphinscheduler/bin/dolphinscheduler-daemon.sh start worker-server
#sh $workDir/dolphinscheduler/bin/dolphinscheduler-daemon.sh start api-server

4.部署

這里使用Alibaba Cloud Toolkit插件,可以很方便部署到多台機器上

 

 

 

 查看服務:

 

 集群服務啟動成功

訪問頁面:http://192.168.30.143:12345/dolphinscheduler

 部署成功


免責聲明!

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



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