azkaban知識點學習總結(一)

概述

1.1 爲何須要工做流調度系統

1) 一個完整的數據分析系統一般都是由大量任務單元組成:html

shell腳本程序,java程序,mapreduce程序、hive腳本等java

2)各任務單元之間存在時間前後及先後依賴關係mysql

3)爲了很好地組織起這樣的複雜執行計劃,須要一個工做流調度系統來調度執行;linux

例如,咱們可能有這樣一個需求,某個業務系統天天產生20G原始數據,咱們天天都要對其進行處理,處理步驟以下所示:git

1)經過Hadoop先將原始數據同步到HDFS上;github

2)藉助MapReduce計算框架對原始數據進行計算,生成的數據以分區表的形式存儲到多張Hive表中;web

3)須要對Hive中多個表的數據進行JOIN處理,獲得一個明細數據Hive大表;ajax

4)將明細數據進行復雜的統計分析,獲得結果報表信息;sql

5)須要將統計分析獲得的結果數據同步到業務系統中,供業務調用使用。shell

 

1.2 常見工做流調度系統

 

1)簡單的任務調度:直接使用linuxcrontab來定義;

 

2)複雜的任務調度:開發調度平臺或使用現成的開源調度系統,好比ooizeazkaban CascadingHamake

 

1.3AzkabanOozie對比

 

對市面上最流行的兩種調度器,給出如下詳細對比,以供技術選型參考。整體來講,ooize相比azkaban是一個重量級的任務調度系統,功能全面,但配置使用也更復雜。若是能夠不在乎某些功能的缺失,輕量級調度器azkaban是很不錯的候選對象。

 

詳情以下:

 

1)功能

 

二者都可以調度mapreducepigjava,腳本工做流任務

 

二者都可以定時執行工做流任務

 

2)工做流定義

 

Azkaban使用Properties文件定義工做流

 

Oozie使用XML文件定義工做流

 

3)工做流傳參

 

Azkaban支持直接傳參,例如${input}

 

Oozie支持參數和EL表達式,例如${fs:dirSize(myInputDir)}

 

4)定時執行

 

Azkaban的定時執行任務是基於時間的

 

Oozie的定時執行任務基於時間和輸入數據

 

5)資源管理

 

Azkaban有較嚴格的權限控制,如用戶對工做流進行讀//執行等操做

 

Oozie暫無嚴格的權限控制

 

6)工做流執行

 

Azkaban有兩種運行模式,分別是solo server mode(executor serverweb server部署在同一臺節點)multi server mode(executor serverweb server能夠部署在不一樣節點)

 

Oozie做爲工做流服務器運行,支持多用戶和多工做流

 

7)工做流管理

 

Azkaban支持瀏覽器以及ajax方式操做工做流

 

Oozie支持命令行、HTTP RESTJava API、瀏覽器操做工做流

 

Azkaban介紹

 

Azkaban是由Linkedin開源的一個批量工做流任務調度器。用於在一個工做流內以一個特定的順序運行一組工做和流程。Azkaban定義了一種KV文件格式來創建任務之間的依賴關係,並提供一個易於使用的web用戶界面維護和跟蹤你的工做流。

 

它有以下功能特色:

 

1Web用戶界面

 

2)方便上傳工做流

 

3)方便設置任務之間的關係

 

4)調度工做流

 

5)認證/受權(權限的工做)

 

6)可以殺死並從新啓動工做流

 

7)模塊化和可插拔的插件機制

 

8)項目工做區

 

9)工做流和任務的日誌記錄和審計

 

下載地址:http://azkaban.github.io/downloads.html

 

Azkaban安裝部署

 

3.1 安裝前準備

 

1Azkaban Web服務器、Azkaban執行服務器和MySQL拷貝hadoop102虛擬機/opt/software目錄

 

azkaban-web-server-2.5.0.tar.gz

 

azkaban-executor-server-2.5.0.tar.gz

 

azkaban-sql-script-2.5.0.tar.gz

 

mysql-libs.zip

 

2)目前azkaban只支持 mysql,需安裝mysql服務器,本文檔中默認已安裝好mysql服務器,並創建了 root用戶,密碼 root

 

3.2安裝azkaban

 

1/opt/module/目錄下建立azkaban目錄

 

[atguigu@hadoop102 module]$ mkdir azkaban

 

2解壓azkaban-web-server-2.5.0.tar.gzazkaban-executor-server-2.5.0.tar.gzazkaban-sql-script-2.5.0.tar.gz/opt/module/azkaban目錄

 

[atguigu@hadoop102 software]$ tar -zxvf azkaban-web-server-2.5.0.tar.gz -C /opt/module/azkaban/

 

[atguigu@hadoop102 software]$ tar -zxvf azkaban-executor-server-2.5.0.tar.gz -C /opt/module/azkaban/

 

[atguigu@hadoop102 software]$ tar -zxvf azkaban-sql-script-2.5.0.tar.gz -C /opt/module/azkaban/

 

3)對解壓後的文件從新命名

 

[atguigu@hadoop102 azkaban]$ mv azkaban-web-2.5.0/ server

 

[atguigu@hadoop102 azkaban]$ mv azkaban-executor-2.5.0/ executor

 

4azkaban腳本導入

 

進入mysql建立azkaban數據庫,並將解壓的腳本導入到azkaban數據庫。

 

[atguigu@hadoop102 azkaban]$ mysql -uroot -p000000

 

mysql> create database azkaban;

 

mysql> use azkaban;

 

mysql> source /opt/module/azkaban/azkaban-2.5.0/create-all-sql-2.5.0.sql

 

3.2 建立SSL配置

 

參考地址: http://docs.codehaus.org/display/JETTY/How+to+configure+SSL

相關文章
相關標籤/搜索