1. 程式人生 > >大資料教程(13.4)azkaban例項演示

大資料教程(13.4)azkaban例項演示

開發十年,就只剩下這套架構體系了! >>>   

    上一章節,介紹了azkaban的簡介、安裝相關的知識;本篇部落格博主將為小夥伴們分享azkaban的一些案例來幫助熟悉其使用。

    Azkaba內建的任務型別支援command、java;

    一、command型別單一job示例

          (1)、建立job描述檔案

建立檔案command.job,新增如下內容:
#command.job
type=command
command=echo 'hello aaron'

          (2)、將job資原始檔打包成zip檔案

command.zip

          (3)、通過azkaban的web管理平臺建立project並上傳job壓縮包

首先建立project

上傳zip包

啟動執行該job

執行結果

    二、Command型別多job工作流flow

        1、建立有依賴關係的多個job描述
             第一個job:foo.job

# foo.job
type=command
command=echo foo

            第二個job:bar.job依賴foo.job

# bar.job
type=command
dependencies=foo
command=echo bar

        2、將所有job資原始檔打到一個zip包中

        3、在azkaban的web管理介面建立工程並上傳zip包
        4、啟動工作流flow

        5、效果圖

    三、HDFS操作任務

           1、建立job描述檔案

# fs.job
type=command
command=/home/hadoop/apps/hadoop-2.9.1/bin/hadoop fs -mkdir /azaz

           2、將job資原始檔打包成zip檔案

           3、通過azkaban的web管理平臺建立project並上傳job壓縮包
           4、啟動執行該job

    四、MAPREDUCE任務

           Mr任務依然可以使用command的job型別來執行

           1、建立job描述檔案,及mr程式jar包(示例中直接使用hadoop自帶的example jar)

# mrwc.job
type=command
command=/home/hadoop/apps/hadoop-2.9.1/bin/hadoop  jar hadoop-mapreduce-examples-2.9.1.jar wordcount /wordcount/input /wordcount/azout

           2、將所有job資原始檔打到一個zip包中

           3、通過azkaban的web管理平臺建立project並上傳job壓縮包
           4、啟動執行該job

    五、HIVE指令碼任務

           1、建立job描述檔案和hive指令碼

                Hive指令碼: test.sql

use default;
drop table aztest;
create table aztest(id int,name string) row format delimited fields terminated by ',';
load data inpath '/aztest/hiveinput' into table aztest;
create table azres as select * from aztest;
insert overwrite directory '/aztest/hiveoutput' select count(1) from aztest; 

                Job描述檔案:hivef.job

# hivef.job
type=command
command=/home/hadoop/apps/apache-hive-1.2.2-bin/bin/hive -f 'test.sql'

           2、將所有job資原始檔打到一個zip包中
           3、在azkaban的web管理介面建立工程並上傳zip包
           4、啟動job
           5、執行效果

   注意:博主在執行hdfs命令是報錯,hadoop叢集一直處於safe mode

   經分析,可能是因為:由於系統斷電,記憶體不足等原因導致dataNode丟失超過設定的丟失百分比,系統自動進入安全模式;解決方案如下:

1、檢視namenode是否是安全狀態
hadoop dfsadmin -safemode get  
Safe mode is OFF  
2、進入安全模式(hadoop啟動時30秒內是安全狀態)
hadoop dfsadmin -safemode enter  
Safe mode is ON  
3、離開安全模式
hadoop dfsadmin -safemode leave  
Safe mode is OFF  

步驟1 執行命令退出安全模式:
hadoop dfsadmin -safemode leave
步驟2 執行健康檢查,刪除損壞掉的block。  
hdfs fsck  /  -delete

     最後寄語,以上是博主本次文章的全部內容,如果大家覺得博主的文章還不錯,請點贊;如果您對博主其它伺服器大資料技術或者博主本人感興趣,請關注博主部落格,並且歡迎隨時跟