日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Azkaban學習之路 (一)Azkaban的基礎介紹

 HK123COM 2019-02-14

目錄

 

正文

一、為什么需要工作流調度器

1、一個完整的數(shù)據(jù)分析系統(tǒng)通常都是由大量任務單元組成: shell 腳本程序,java 程序,mapreduce 程序、hive 腳本等

2、各任務單元之間存在時間先后及前后依賴關系

3、為了很好地組織起這樣的復雜執(zhí)行計劃,需要一個工作流調度系統(tǒng)來調度執(zhí)行

例如,我們可能有這樣一個需求,某個業(yè)務系統(tǒng)每天產(chǎn)生 20G 原始數(shù)據(jù),我們每天都要對其進行處理,處理步驟如下所示:

  1、 通過 Hadoop 先將原始數(shù)據(jù)同步到 HDFS 上;

  2、 借助 MapReduce 計算框架對原始數(shù)據(jù)進行清洗轉換,生成的數(shù)據(jù)以分區(qū)表的形式存儲 到多張 Hive 表中;

  3、 需要對 Hive 中多個表的數(shù)據(jù)進行 JOIN 處理,得到一個明細數(shù)據(jù) Hive 大表;

  4、 將明細數(shù)據(jù)進行各種統(tǒng)計分析,得到結果報表信息;

  5、 需要將統(tǒng)計分析得到的結果數(shù)據(jù)同步到業(yè)務系統(tǒng)中,供業(yè)務調用使用。

二、工作流調度實現(xiàn)方式

簡單的任務調度:直接使用 linux 的 crontab 來定義;

復雜的任務調度:開發(fā)調度平臺或使用現(xiàn)成的開源調度系統(tǒng),比如 ooize、azkaban 等

三、常見工作流調度系統(tǒng)

市面上目前有許多工作流調度器 在 hadoop 領域,常見的工作流調度器有 Oozie, Azkaban,Cascading,Hamake 等

四、各種調度工具對比

下面的表格對上述四種 hadoop 工作流調度器的關鍵特性進行了比較,盡管這些工作流調度 器能夠解決的需求場景基本一致,但在設計理念,目標用戶,應用場景等方面還是存在顯著 的區(qū)別,在做技術選型的時候,可以提供參考

特性HamakeOozieAzkabanCascading
工作流描述語言 XML XML (xPDL based) text file with key/value pairs Java API
依賴機制 data-driven explicit explicit explicit
是否要web容器 NO YES YES NO
進度跟蹤 console/log messages web page web page Java API
Hadoop job調度支持 no YES YES YES
運行模式 command line utility daemon daemon API
Pig支持 yes yes yes yes
事件通知 no no no yes
需要安裝 no yes yes no
支持的hadoop版本 0.18+ 0.20+ currently unknown 0.18+
重試支持 no workflownode evel yes yes
運行任意命令 yes yes yes yes
Amazon EMR支持 yes no currently unknown yes

五、Azkaban 與 Oozie 對比

對市面上最流行的兩種調度器,給出以下詳細對比,以供技術選型參考??傮w來說,ooize相比azkaban是一個重量級的任務調度系統(tǒng),功能全面,但配置使用也更復雜。如果可以不在意某些功能的缺失,輕量級調度器azkaban是很不錯的候選對象。 
詳情如下:

功能 

兩者均可以調度mapreduce,pig,java,腳本工作流任務 
兩者均可以定時執(zhí)行工作流任務

工作流定義 

Azkaban使用Properties文件定義工作流 
Oozie使用XML文件定義工作流

工作流傳參 

Azkaban支持直接傳參,例如inputOozie支持參數(shù)和EL表達式,例如inputOozie支持參數(shù)和EL表達式,例如{fs:dirSize(myInputDir)}

定時執(zhí)行 

Azkaban的定時執(zhí)行任務是基于時間的 
Oozie的定時執(zhí)行任務基于時間和輸入數(shù)據(jù)

資源管理 

Azkaban有較嚴格的權限控制,如用戶對工作流進行讀/寫/執(zhí)行等操作 
Oozie暫無嚴格的權限控制

工作流執(zhí)行 

Azkaban有兩種運行模式,分別是solo server mode(executor server和web server部署在同一臺節(jié)點)和multi server mode(executor server和web server可以部署在不同節(jié)點) 
Oozie作為工作流服務器運行,支持多用戶和多工作流

工作流管理 

Azkaban支持瀏覽器以及ajax方式操作工作流 
Oozie支持命令行、HTTP REST、Java API、瀏覽器操作工作流

六、Azkaban 介紹

Azkaban是由Linkedin開源的一個批量工作流任務調度器。用于在一個工作流內以一個特定的順序運行一組工作和流程。Azkaban定義了一種KV文件格式來建立任務之間的依賴關系,并提供一個易于使用的web用戶界面維護和跟蹤你的工作流。 
它有如下功能特點: 
  1、Web用戶界面 
  2、方便上傳工作流 
  3、方便設置任務之間的關系 
  4、調度工作流 
  5、認證/授權(權限的工作) 
  6、能夠殺死并重新啟動工作流 
  7、模塊化和可插拔的插件機制 
  8、項目工作區(qū) 
  9、工作流和任務的日志記錄和審計

七、azkaban調度的任務有可能有那些類型

  1、shell腳本

  2、java程序

  3、MR程序

  4、spark程序

  5、hive的sql

  6、python腳本

  7、sqoop任務

 

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多