一個完整的數據分析系統大都是由海量的任務單元組成shell腳本程序,java,mapreduce程序、hive腳本等等組成,非常復雜,各任務單元之間存在時間先后及前后依賴關系。
為了很好地組織起這樣的復雜系統,能夠按照計劃執行,就必須要一個工作流調度系統來調度執行。
例如,某個業務系統可能每天產生20G原始數據,我們每天都要對其進行處理。
具體處理步驟如下所示:
1. 通過Hadoop先將原始數據同步到HDFS上;
2. 借助MapReduce計算框架對原始數據進行計算,生成的數據以分區表的形式存儲到多張Hive表中;
3. 需要對Hive中多個表的數據進行JOIN處理,得到一個明細數據Hive大表;
4. 將明細數據進行復雜的統計分析,得到結果報表信息;
5. 需要將統計分析得到的結果數據同步到業務系統中,供業務調用使用。
簡單的任務調度:直接使用linux的crontab來定義;
復雜的任務調度:開發調度平臺或使用現成的開源調度系統,比如ooize、azkaban、 Cascading、Hamake等
下面的表格對上述四種hadoop工作流調度器的關鍵特性進行了比較,盡管這些工作流調度器能夠解決的需求場景基本一致,但在設計理念,目標用戶,應用場景等方面還是存在顯著的區別,在做技術選型的時候,可以提供參考。
對市面上最流行的兩種調度器,給出以下詳細對比,以供技術選型參考。總體來說,ooize相比azkaban是一個重量級的任務調度系統,功能全面,但配置使用也更復雜。如果可以不在意某些功能的缺失,輕量級調度器azkaban是很不錯的候選對象。 詳情如下
1 :功能
兩者均可以調度mapreduce,pig,java,腳本工作流任務、兩者均可以定時執行工作流任務
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 server和web server部署在同一臺節點)和multi server mode(executor server和web server可以部署在不同節點)、Oozie作為工作流服務器運行,支持多用戶和多工作流
7:工作流管理?
Azkaban支持瀏覽器以及ajax方式操作工作流、Oozie支持命令行、HTTP REST、Java API、瀏覽器操作工作流
Azkaban是由Linkedin開源的一個批量工作流任務調度器。用于在一個工作流內以一個特定的順序運行一組工作和流程。Azkaban定義了一種KV文件格式來建立任務之間的依賴關系,并提供一個易于使用的web用戶界面維護和跟蹤你的工作流。它有如下功能特點:
1:Web用戶界面
2:方便上傳工作流
3:方便設置任務之間的關系
4:調度工作流
5:認證/授權(權限的工作)
6:能夠殺死并重新啟動工作流
7:模塊化和可插拔的插件機制
8:項目工作區
工作流和任務的日志記錄和審計
下載地址
http://azkaban.github.io/downloads.html
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/127490.html
摘要:安裝包老是失敗,今天發現一個更好的包安裝工具,可以用這個來管理我們的包。是最近發布的一款依賴包安裝工具。在官方介紹里有這么一句話關鍵意思就是,快速安全可靠。如同聲稱,快速,可靠,安全。原文地址的安裝與使用詳細介紹 npm安裝包老是失敗,今天發現一個更好的包安裝工具Yarn,可以用這個來管理我們的包。不知道大家有沒有覺察到Facebook近年大招頻出。Yarn是Facebook最近發布的...
摘要:打包工具是眾多的開發工具之一,下面千鋒重慶的小編來進行打包工具的介紹打包工具的介紹開源是一個安裝程序制作工具,能夠制作一些簡單的安裝程序。是全球領先的安裝開發解決方案。通過上述介紹相信大家對打包工具已經有所了解 Java打包工具是眾多的Java開發工具之一,下面千鋒重慶Java的小編來進行Java打包工具的介紹:Java打...
摘要:相關鏈接官方文檔安裝推薦使用安裝,命令如下運行完畢之后即可完成的安裝。上一篇文章網絡爬蟲實戰數據庫的安裝下一篇文章網絡爬蟲實戰庫的安裝 上一篇文章:Python3網絡爬蟲實戰---4、數據庫的安裝:MySQL、MongoDB、Redis下一篇文章:Python3網絡爬蟲實戰---6、Web庫的安裝:Flask、Tornado 在前面一節我們介紹了幾個數據庫的安裝方式,但這僅僅是用來存...
摘要:介紹說明的包管理器,用于插件管理包括安裝卸載管理依賴等使用安裝插件命令提示符執行插件名稱。總結安裝新建文件全局和本地安裝安裝插件新建文件通過命令提示符運行任務。 showImg(https://segmentfault.com/img/remote/1460000010873466); 前言 眾所周知目前比較火的工具就是gulp和webpack,但webpack和gulp卻有所不同,本...
閱讀 1225·2023-02-24 11:21
閱讀 1424·2023-02-24 10:55
閱讀 2449·2023-02-24 10:47
閱讀 3140·2023-02-24 10:44
閱讀 900·2023-02-24 10:38
閱讀 626·2022-12-25 19:44
閱讀 765·2022-12-25 19:39
閱讀 882·2022-12-25 19:36