溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

基于Azkaban協(xié)調(diào)時(shí)序任務(wù)執(zhí)行的示例分析

發(fā)布時(shí)間:2022-01-15 11:18:47 來(lái)源:億速云 閱讀:107 作者:小新 欄目:大數(shù)據(jù)

小編給大家分享一下基于Azkaban協(xié)調(diào)時(shí)序任務(wù)執(zhí)行的示例分析,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

一、Azkaban概述

1、任務(wù)時(shí)序

在數(shù)據(jù)服務(wù)的業(yè)務(wù)場(chǎng)景中,很常見(jiàn)的業(yè)務(wù)流程就是日志文件經(jīng)過(guò)大數(shù)據(jù)分析,再向業(yè)務(wù)輸出結(jié)果數(shù)據(jù);在該過(guò)程中會(huì)有很多任務(wù)需要執(zhí)行,并且很難精準(zhǔn)把握任務(wù)執(zhí)行的結(jié)束時(shí)間,但是又希望整個(gè)任務(wù)鏈盡快結(jié)束釋放資源。

基于Azkaban協(xié)調(diào)時(shí)序任務(wù)執(zhí)行的示例分析

大致執(zhí)行順序如下:

  • 業(yè)務(wù)日志文件同步到HDFS文件系統(tǒng);

  • 經(jīng)過(guò)Hadoop執(zhí)行分析計(jì)算過(guò)程;

  • 結(jié)果數(shù)據(jù)在導(dǎo)入數(shù)倉(cāng)進(jìn)行存儲(chǔ);

  • 最終需要把數(shù)倉(cāng)內(nèi)數(shù)據(jù)同步到業(yè)務(wù)庫(kù);

這樣的流程不必業(yè)務(wù)中任務(wù)調(diào)度,時(shí)間基本是可預(yù)估的,只要把握留足任務(wù)間隔時(shí)間即可,大數(shù)據(jù)的任務(wù)鏈路通常需要一個(gè)結(jié)束直接啟動(dòng)另一個(gè),以此降低時(shí)間成本,初入數(shù)據(jù)服務(wù)公司時(shí),就發(fā)生過(guò)因?yàn)橥饺蝿?wù)執(zhí)行結(jié)束但是最后的個(gè)別CSV數(shù)據(jù)文件未生成結(jié)束的案例,導(dǎo)致近百萬(wàn)的分析數(shù)據(jù)同步更新業(yè)務(wù)庫(kù)失敗。

2、Azkaban簡(jiǎn)介

Azkaban是由Linkedin公司推出的可以管理批量工作流任務(wù)的調(diào)度器,用于在一個(gè)工作流內(nèi)以一個(gè)特定的順序運(yùn)行一組工作和流程。Azkaban使用job配置文件建立任務(wù)之間的依賴(lài)關(guān)系,并提供一個(gè)易于使用的web用戶(hù)界面維護(hù)和跟蹤你的工作流。

Azkaban特點(diǎn)和優(yōu)勢(shì)

  • 提供功能清晰,簡(jiǎn)單易用的 Web UI 界面;

  • 作業(yè)配置簡(jiǎn)單,任務(wù)作業(yè)依賴(lài)關(guān)系清晰;

  • 提供可擴(kuò)展的組件;

  • 基于Java語(yǔ)言開(kāi)發(fā),易于二次開(kāi)發(fā);

相比較于Oozie配置工作流的過(guò)程是編寫(xiě)大量的XML配置,并且其代碼復(fù)雜度比較高,不易于二次開(kāi)發(fā),Azkaban則顯得輕量級(jí),功能和用法相對(duì)簡(jiǎn)單和容易使用。

二、服務(wù)安裝

1、核心包

Web服務(wù)

azkaban-web-server-2.5.0.tar.gz

執(zhí)行服務(wù)

azkaban-executor-server-2.5.0.tar.gz

SQL腳本

azkaban-sql-script-2.5.0.tar.gz

2、安裝路徑

上傳上面三個(gè)安裝包,并解壓操作。

[root@hop01 azkaban]# pwd
/opt/azkaban
[root@hop01 azkaban]# tar -zxvf azkaban-web-server-2.5.0.tar.gz
[root@hop01 azkaban]# tar -zxvf azkaban-executor-server-2.5.0.tar.gz
[root@hop01 azkaban]# tar -zxvf azkaban-sql-script-2.5.0.tar.gz
[root@hop01 azkaban]# mv azkaban-web-2.5.0/ server
[root@hop01 azkaban]# mv azkaban-executor-2.5.0/ executor

3、MySQL導(dǎo)入腳本

[root@hop01 ~]# mysql -uroot -p123456
mysql> create database azkaban_test;
mysql> use azkaban_test;
mysql> source /opt/azkaban/azkaban-2.5.0/create-all-sql-2.5.0.sql

查看表

基于Azkaban協(xié)調(diào)時(shí)序任務(wù)執(zhí)行的示例分析

4、SSL配置

[root@hop01 opt]# keytool -keystore keystore -alias jetty -genkey -keyalg RSA

生成文件:keystore

拷貝到AzkabanWeb服務(wù)器目錄下:

[root@hop01 opt]# mv keystore /opt/azkaban/server/

5、Web服務(wù)配置

基礎(chǔ)配置

[root@hop01 conf]# pwd
/opt/azkaban/server/conf
[root@hop01 conf]# vim azkaban.properties

核心修改內(nèi)容:MySQL和Jetty。

default.timezone.id=Asia/Shanghai

# Azkaban MySQL server properties.
database.type=mysql
mysql.port=3306
mysql.host=localhost
mysql.database=azkaban_test
mysql.user=root
mysql.password=123456
mysql.numconnections=100

# Azkaban Jetty server properties.
jetty.maxThreads=25
jetty.ssl.port=8443
jetty.port=8081
jetty.keystore=keystore
jetty.password=123456
jetty.keypassword=123456
jetty.truststore=keystore
jetty.trustpassword=123456

這里配置符合本地配置參數(shù)即可。

用戶(hù)配置

[root@hop01 conf]# vim azkaban-users.xml

增加一個(gè)管理員用戶(hù):

<azkaban-users>
    <user username="admin" password="admin" roles="admin,metrics" />
</azkaban-users>

基于Azkaban協(xié)調(diào)時(shí)序任務(wù)執(zhí)行的示例分析

6、Executor服務(wù)配置

[root@hop01 conf]# pwd
/opt/azkaban/executor/conf
[root@hop01 conf]# vim azkaban.properties

核心修改內(nèi)容:MySQL和時(shí)區(qū)。

default.timezone.id=Asia/Shanghai

# Azkaban MySQL server properties.
database.type=mysql
mysql.port=3306
mysql.host=localhost
mysql.database=azkaban_test
mysql.user=root
mysql.password=123456
mysql.numconnections=100

7、啟動(dòng)服務(wù)器

Web服務(wù)

[root@hop01 bin]# pwd
/opt/azkaban/server/bin
[root@hop01 bin]# ll
total 16
-rwxr-xr-x 1 root root  161 Apr 21  2014 azkaban-web-shutdown.sh
-rwxr-xr-x 1 root root 1275 Apr 21  2014 azkaban-web-start.sh

這里分別是啟動(dòng)和關(guān)閉的腳本。

[root@hop01 bin]# /opt/azkaban/server/bin/azkaban-web-start.sh

Executor服務(wù)

[root@hop01 bin]# /opt/azkaban/executor/bin/azkaban-executor-start.sh

啟動(dòng)日志

兩個(gè)服務(wù)的關(guān)鍵尾行日志:

Azkaban Server running on ssl port 8443.
Azkaban Executor Server started on port 12321

登錄界面

注意這里是基于https協(xié)議:

https://hop01:8443/

基于Azkaban協(xié)調(diào)時(shí)序任務(wù)執(zhí)行的示例分析

三、操作案例

1、入門(mén)案例

創(chuàng)建command類(lèi)型job

[root@hop01 flow_01]# pwd
/opt/azkaban/testJob/flow_01
[root@hop01 flow_01]# vim simple.job

type=command
command=echo 'mySimpleJob'

打成zip包

[root@hop01 flow_01]# zip -q -r simpleJob.zip simple.job

創(chuàng)建項(xiàng)目

基于Azkaban協(xié)調(diào)時(shí)序任務(wù)執(zhí)行的示例分析

上傳任務(wù)包

基于Azkaban協(xié)調(diào)時(shí)序任務(wù)執(zhí)行的示例分析

執(zhí)行任務(wù)

基于Azkaban協(xié)調(diào)時(shí)序任務(wù)執(zhí)行的示例分析

2、任務(wù)順序執(zhí)行

創(chuàng)建任務(wù)A

[root@hop01 flow_02]# vim simpleA.job

type=command
command=echo 'simplejobA'

創(chuàng)建任務(wù)B

[root@hop01 flow_02]# vim simpleB.job

type=command
dependencies=simpleA
command=echo 'simplejobB'

打包任務(wù)

[root@hop01 flow_02]# zip -q -r simpleTwoJob.zip simpleA.job simpleB.job

基于Azkaban協(xié)調(diào)時(shí)序任務(wù)執(zhí)行的示例分析

同樣的操作方式,兩個(gè)任務(wù)放在zip包中,通過(guò)Web服務(wù)上傳,觀察執(zhí)行效果即可。

看完了這篇文章,相信你對(duì)“基于Azkaban協(xié)調(diào)時(shí)序任務(wù)執(zhí)行的示例分析”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI