Azkaban使用實例

目錄

 

Azkaban使用實例

單一job案例

多job工作流案例

java操作任務

Hadoop操作任務

Hive腳本任務


Azkaban使用實例

Azkaba內置的任務類型支持command、java。

單一job案例

針對於不存在依賴的單一任務需求。

(1)創建job文件:

[root@bigdata111 opt]# vi test1.job

#test1.job

type=command
command=mkdir -p /opt/azkaban_test
command.1=touch /opt/azkaban_test/test1_result.txt
command.2=echo 'test1_result' >> test1_result.txt

(2)將job文件打包成zip文件

目前,Azkaban上傳的工作流文件只支持xxx.zip文件。zip應包含xxx.job運行作業所需的文件和任何文件(文件名後綴必須以.job結尾,否則無法識別)。作業名稱在項目中必須是唯一的。

(3)通過azkaban的web平臺創建project,並且上傳job中的zip包

創建工程:

上傳zip包

執行工作流

設置2分鐘後執行job,

之後我們可以看到

結果:

多job工作流案例

創建有依賴關係的多個job描述。

(1)創建job1描述

#將test1_result上傳到HDFS
type=command
command= hdfs dfs -put /opt/azkaban_test/test1_result.txt /

(2)job2,依賴於job1

##詞頻分析
type=command
command=hadoop jar /opt/module/hadoop-2.8.4/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.4.jar wordcount /test1_result.txt /test2_result
dependencies=test2_1

(3)打包上傳並運行

結果:

java操作任務

azkaban也支持java程序,但是需要將其打成jar包,然後壓縮成zip格式上傳。

(1)編寫java程序


import java.io.FileOutputStream;
import java.io.IOException;

public class AzkabanTest {
    public void run() throws IOException {
        // 根據需求編寫具體代碼
        FileOutputStream fos = new FileOutputStream("/opt/module/azkaban/output.txt");
        fos.write("this is a java progress".getBytes());
        fos.close();
    }

    public static void main(String[] args) throws IOException {
        AzkabanTest azkabanTest = new AzkabanTest();
        azkabanTest.run();
    }
}

(2)將java程序打成jar包,編寫job文件

#azkabanJava.job
type=javaprocess
java.class=AzkabanTest(全類名)
classpath=/opt/module/azkaban/lib/*

(3)壓縮後上傳。

Hadoop操作任務

其實在多job任務中已經使用了hadoop命令,步驟參上。

Hive腳本任務

(1)創建job描述文件和hive腳本

#Hive腳本

use default;
drop table student;
create table student(id int, name string)
row format delimited fields terminated by '\t';
load data local inpath '/opt/module/datas/student.txt' into table student;
insert overwrite local directory '/opt/module/datas/student'
row format delimited fields terminated by '\t'
select * from student;

(2)編寫job命令

#hive job
type=command
command=/opt/module/hive/bin/hive -f /opt/module/azkaban/jobs/student.sql

(3)壓縮並上傳。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章