成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

使用azkaban 建立一個(gè)簡(jiǎn)單的任務(wù)調(diào)度系統(tǒng)

Bmob / 736人閱讀

摘要:使用建立一個(gè)簡(jiǎn)單的任務(wù)調(diào)度系統(tǒng)可以作為任務(wù)的調(diào)度工具,也可以作為任務(wù)和任務(wù)的調(diào)度工具。更加方便,只要在中增加一個(gè)方法,返回對(duì)象,然后任務(wù)可以直接在初始化的中讀取到這個(gè)參數(shù)。

使用azkaban 建立一個(gè)簡(jiǎn)單的任務(wù)調(diào)度系統(tǒng)

azkaban 可以作為hadoop 任務(wù)的調(diào)度工具,也可以作為shell任務(wù)和java任務(wù)的調(diào)度工具。安裝過程有點(diǎn)繁瑣,見安裝文檔。

Job Type

見鏈接 http://www.itwendao.com/artic...

任務(wù)DAG

通過任務(wù)之間的依賴關(guān)系(dependencies)構(gòu)建DAG

下面是一個(gè) upload.job 的例子, 依賴 report-en.job

type=java
#指定類的全路徑
job.class=com.example.demo.task.BbUploadJob
#指定執(zhí)行jar包的路徑
classpath=lib/*
#依賴任務(wù)
dependencies=report-en
#jvm 參數(shù)
Xmx=512M
# 自定義參數(shù)
batch.timestamp=${azkaban.flow.start.timestamp}
schedule

azkaban 目前包含Quartz,支持 Cron 表達(dá)式

java job

JavaJob 目前需要配置Hadoop,但是可以通過修改源代碼來去掉 Hadoop 的依賴關(guān)系,參考安裝過程。

Java Job template

run 相當(dāng)于 main 方法,任務(wù)代碼寫在這里

cancel 在 run 方法出現(xiàn) Exception 之后調(diào)用,任務(wù)失敗后處理

getJobGeneratedProperties 是輸出的參數(shù),用于給下一個(gè)任務(wù)傳遞參數(shù)

import azkaban.utils.Props;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class JavaJob1 {

    private static final Logger logger = LoggerFactory.getLogger(JavaJob1.class);

    private Props props;

    public JavaJob1(String name, Props props) {
        this.props = props;
    }
    
    public void run() {
        String timestamp = props.getString("azkaban.flow.start.timestamp");
        logger.info("timestamp value is ==> " + timestamp);
    }
    
    public void cancel(){
        
    }
    

    public Props getJobGeneratedProperties(){
        Props props = new Props();
        return props;
    }
}
java job 中使用 Spring

在JavaJob 中可以使用Spring,和普通的Java代碼一模一樣

this.classPathXmlApplicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
this.reportService = (ReportService) this.classPathXmlApplicationContext.getBean("reportService");
其他問題 郵件通知

azkaban 原生就支持通知功能,在安裝的時(shí)候配置smtp服務(wù)器,在job文件中里配置failure.emails, success.emails, notify.emails 來通知任務(wù)執(zhí)行情況(多個(gè)郵箱地址用逗號(hào)分隔)

任務(wù)之間參數(shù)傳遞

azkaban支持任務(wù)之間傳遞參數(shù),A任務(wù)可以向依賴A的任務(wù)B傳遞參數(shù)。實(shí)際上是通過讀寫臨時(shí)文件來實(shí)現(xiàn)這個(gè)功能。

System.getenv("JOB_OUTPUT_PROP_FILE") // 任務(wù)輸出的參數(shù)文件
System.getenv("JOB_PROP_FILE")   // 任務(wù)初始化的參數(shù)文件

B任務(wù)初始化的參數(shù)文件中會(huì)包含A任務(wù)輸出的參數(shù),這是azkaban幫我們做的。

JavaJob 更加方便,只要在Job中增加一個(gè)getJobGeneratedProperties方法,返回Props對(duì)象,然后B任務(wù)可以直接在初始化的Props中讀取到這個(gè)參數(shù)。

public Props getJobGeneratedProperties(){
    Props props = new Props();
    props.put("demo.test.arg1", "Hello World!");
    return props;
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/67963.html

相關(guān)文章

  • cdhazkaban-cdhazkaban介紹、安裝和使用

    工作流調(diào)度系統(tǒng)一個(gè)完整的數(shù)據(jù)分析系統(tǒng)大都是由海量的任務(wù)單元組成shell腳本程序,java,mapreduce程序、hive腳本等等組成,非常復(fù)雜,各任務(wù)單元之間存在時(shí)間先后及前后依賴關(guān)系。為了很好地組織起這樣的復(fù)雜系統(tǒng),能夠按照計(jì)劃執(zhí)行,就必須要一個(gè)工作流調(diào)度系統(tǒng)來調(diào)度執(zhí)行。例如,某個(gè)業(yè)務(wù)系統(tǒng)可能每天產(chǎn)生20G原始數(shù)據(jù),我們每天都要對(duì)其進(jìn)行處理。具體處理步驟如下所示:1. 通過Hadoop先將原...

    白馬嘯西風(fēng) 評(píng)論0 收藏0
  • [譯] 解密 Airbnb 數(shù)據(jù)流編程神器:Airflow 中技巧和陷阱

    摘要:顯然,這單獨(dú)執(zhí)行不起作用這將通過子操作符被作為像是自己的調(diào)度任務(wù)中那樣運(yùn)行。子也必須有個(gè)可用調(diào)度即使子作為其父的一部分被觸發(fā)子也必須有一個(gè)調(diào)度如果他們的調(diào)度是設(shè)成,這個(gè)子操作符將不會(huì)觸發(fā)任何任務(wù)。這兩個(gè)例子都是緣起子操作符被當(dāng)做了回填工作。 showImg(https://segmentfault.com/img/remote/1460000006768714); 前言 Airbnb的...

    zsy888 評(píng)論0 收藏0
  • [原]數(shù)據(jù)科學(xué)教程:如何使用Airflow調(diào)度數(shù)據(jù)科學(xué)工作流

    摘要:概述是一個(gè)我們正在用的工作流調(diào)度器,相對(duì)于傳統(tǒng)的任務(wù)管理,很好的為我們理清了復(fù)雜的任務(wù)依賴關(guān)系監(jiān)控任務(wù)執(zhí)行的情況。步驟三修改默認(rèn)數(shù)據(jù)庫(kù)找到配置文件修改配置注意到,之前使用的的方式是行不通的。微信號(hào)商業(yè)使用請(qǐng)聯(lián)系作者。 showImg(https://segmentfault.com/img/remote/1460000006760428?w=1918&h=1556); 概述 Airfl...

    v1 評(píng)論0 收藏0
  • azkaban 安裝

    摘要:否則沒有配置環(huán)境會(huì)報(bào)錯(cuò)。重新編譯打包就可以 azkaban azkaban 是一個(gè)用Java開發(fā)的開源調(diào)度工具workflow,同類型的工具有用Python開發(fā)的 airflow 和 luigi. build 在我的windows上無(wú)法build成功,我在CentOS上build成功了 git clone https://github.com/azkaban/azkaban.git c...

    luqiuwen 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<