【轉載】Azkaban(三)Azkaban的使用

界面介紹

首頁有四個菜單html

  • projects:最重要的部分,建立一個工程,全部flows將在工程中運行。
  • scheduling:顯示定時任務
  • executing:顯示當前運行的任務
  • history:顯示歷史運行任務

介紹projects部分

概念介紹

建立工程:建立以前咱們先了解下之間的關係,一個工程包含一個或多個flows,一個flow包含多個job。job是你想在azkaban中運行的一個進程,能夠是簡單的linux命令,但是java程序,也能夠是複雜的shell腳本,固然,若是你安裝相關插件,也能夠運行插件。一個job能夠依賴於另外一個job,這種多個job和它們的依賴組成的圖表叫作flowjava

一、Command 類型單一 job 示例

(1)首先建立一個工程,填寫名稱和描述

(2)點擊建立以後

Flows:工做流程,有多個job組成
Permissions:權限管理
Project Logs:工程日誌python

(3)job的建立

建立job很簡單,只要建立一個以.job結尾的文本文件就好了,例如咱們建立一個工做,用來打印hello,名字叫作command.joblinux

#command.job web

type=command sql

command=echo 'hello'shell

一個簡單的job就建立好了,解釋下,type的command,告訴azkaban用unix原生命令去運行,好比原生命令或者shell腳本,固然也有其餘類型,後面說。

一個工程不可能只有一個job,咱們如今建立多個依賴job,這也是採用azkaban的首要目的。apache

(4)將 job 資源文件打包

注意:只能是zip格式app

(5)經過 azkaban web 管理平臺建立 project 並上傳壓縮包

 

 

 

 

二、Command 類型多 job 工做流 flow

(1)建立項目

咱們說過多個jobs和它們的依賴組成flow。怎麼建立依賴,只要指定dependencies參數就好了。好比導入hive前,須要進行數據清洗,數據清洗前須要上傳,上傳以前須要從ftp獲取日誌。
定義5個job:oop

一、o2o_2_hive.job:將清洗完的數據入hive庫

二、o2o_clean_data.job:調用mr清洗hdfs數據

三、o2o_up_2_hdfs.job:將文件上傳至hdfs

四、o2o_get_file_ftp1.job:從ftp1獲取日誌

五、o2o_get_file_fip2.job:從ftp2獲取日誌

依賴關係:
3依賴4和5,2依賴3,1依賴2,4和5沒有依賴關係。

o2o_2_hive.job

type=command
# 執行sh腳本,建議這樣作,後期只需維護腳本就好了,azkaban定義工做流程
command=sh /job/o2o_2_hive.sh
dependencies=o2o_clean_data

o2o_clean_data.job

type=command
# 執行sh腳本,建議這樣作,後期只需維護腳本就好了,azkaban定義工做流程
command=sh /job/o2o_clean_data.sh
dependencies=o2o_up_2_hdfs

o2o_up_2_hdfs.job

type=command
#須要配置好hadoop命令,建議編寫到shell中,能夠後期維護
command=hadoop fs -put /data/*
#多個依賴用逗號隔開
dependencies=o2o_get_file_ftp1,o2o_get_file_ftp2

o2o_get_file_ftp1.job

type=command
command=wget "ftp://file1" -O /data/file1

o2o_get_file_ftp2.job

type=command
command=wget "ftp:file2" -O /data/file2

能夠運行unix命令,也能夠運行python腳本(強烈推薦)。將上述job打成zip包。
ps:爲了測試流程,我將上述command都改成echo +相應命令

(2)上傳

 

點擊o2o_2_hive進入流程,azkaban流程名稱以最後一個沒有依賴的job定義的。

右上方是配置執行當前流程或者執行定時流程。

說明

Flow view:流程視圖。能夠禁用,啓用某些job
Notification:定義任務成功或者失敗是否發送郵件
Failure Options:定義一個job失敗,剩下的job怎麼執行
Concurrent:並行任務執行設置
Flow Parametters:參數設置。

(3)執行一次

設置好上述參數,點擊execute。

綠色表明成功藍色是運行紅色是失敗。能夠查看job運行時間,依賴和日誌,點擊details能夠查看各個job運行狀況。

 

(4)執行定時任務

這時候注意到cst了吧,以前須要將配置中時區改成Asia/shanghai。
能夠選擇"天/時/分/月/周"等執行頻率。

能夠查看下次執行時間。

三、操做 MapReduce 任務

(1)建立 job 描述文件

mapreduce_wordcount.job

# mapreduce_wordcount.job
type=command
dependencies=mapreduce_pi
command=/home/hadoop/apps/hadoop-2.7.5/bin/hadoop jar /home/hadoop/apps/hadoop-2.7.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar wordcount /wordcount/input /wordcount/output_azkaban

mapreduce_pi.job

# mapreduce_pi.job
type=command
command=/home/hadoop/apps/hadoop-2.7.5/bin/hadoop jar /home/hadoop/apps/hadoop-2.7.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar pi 5 5

(2)建立 project 並上傳 zip 包

(3)啓動執行

四、Hive 腳本任務

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

 Hive 腳本以下

 test.sql

複製代碼
create database if not exists azkaban;
use azkaban;
drop table if exists student;
create table student(id int,name string,sex string,age int,deparment string) row format delimited fields terminated by ',';
load data local inpath '/home/hadoop/student.txt' into table student;
create table student_copy as select * from student;
insert overwrite directory '/aztest/hiveoutput' select count(1) from student_copy;
!hdfs dfs -cat /aztest/hiveoutput/000000_0;
drop database azkaban cascade; 
複製代碼

 Job 描述文件:

hivef.job

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

(2)將全部 job 資源文件打到一個 zip 包中

(3)在 azkaban 的 web 管理界面建立工程並上傳 zip 包

 

五、啓動 job

轉載自:http://www.javashuo.com/article/p-ecvwjaap-dc.html

相關文章
相關標籤/搜索