1. 程式人生 > >azkaban2.5 具體配置以及使用方式

azkaban2.5 具體配置以及使用方式

private ucc ims lease version tracker client ram ack

azkaban支持shell、java、mapreduce以及hive的工作流調度,在對這些不同類型任務調度之前須要配置所相應的插件;azkaban總體分為兩部分azkaban executor server(負責任務調度的處理)、azkaban web server(提供web ui可視化操作);

眼下採用的版本號插件均為2.5.0 完整包下載

1、編譯

azkaban源代碼地址:https://github.com/azkaban/azkaban/tree/release-2.5/src

azkaban插件源代碼地址:https://github.com/azkaban/azkaban-plugins/tree/release-2.5

是用ant來進行編譯、打包

2、安裝和編譯

  • 從http://azkaban.github.io/downloads.html下載例如以下安裝包
    • azkaban-web-server-2.5.0.tar.gz
    • azkaban-executor-server-2.5.0.tar.gz
    • azkaban-sql-script-2.5.0.tar.gz
    • azkaban-jobtype-2.5.0.tar.gz
    • azkaban-hdfs-viewer-2.5.0.tar.gz
    • azkaban-jobsummary-2.5.0.tar.gz
    • azkaban-reportal-2.5.0.tar.gz

Azkaban Web Server的部署

1、在本地安裝mysql數據庫,用來存儲azkaban任務id、probject等信息的元數據庫

2、建表,解壓azkaban-sql-script-2.5.0.tar.gz 在創建的數據庫中運行create-all-sql-2.5.0.sql文件

3、解壓azkaban-web-server-2.5.0.tar.gz。裏面帶有mysql-connector-java-5.1.28.jar,版本號不一致能夠更換

4、在解壓後的文件夾下中的conf文件裏輸入keytool -keystore keystore -alias azkaban -genkey -keyalg RSA ,

在運行該命令後會提示輸入password(建議輸入的password都一樣,方便興許配置),這個password是興許配置jetty時使用的,最後將在當前文件夾生成 keystore 證書文件,將 keystore 考貝到 azkaban web 文件夾中。

5、在/conf/azkaban.properties配置:

azkaban的大部分web方面的配置均在這個文件裏包含:

    • 時區的配置:default.timezone.id=Asia/Shanghai
    • web所依賴mysql的配置:

      database.type=mysql

      mysql.port=**

      mysql.host=**

      mysql.database=**

      mysql.user=**

      mysql.password=**

      mysql.numconnections=**

    • jetty的配置

      jetty.maxThreads=**

      jetty.ssl.port=**

      jetty.port=**

      jetty.keystore=keystore

      jetty.password=創建keystore的密碼

      jetty.keypassword=azkaban

      jetty.truststore=創建keystore的password

      jetty.trustpassword=創建keystore的密碼

    • 郵件的配置
      mail.sender=
      mail.host=
      mail.user=
      mail.password=
      job.failure.email=
      job.success.email=
    • 其它配置可默認

6、azkaban-users.xml 配置用戶的權限登錄賬號和password

7、服務的啟動和關閉均在bin文件夾下命令:

bin/azkaban-web-shutdown.sh

bin/azkaban-web-start.sh

Azkaban Executor Server的部署

1、解壓azkaban-executor-server-2.5.0.tar.gz到安裝文件夾在lib中自帶了mysql-connector-java-5.1.28.jar,假設版本號不一致請自行替換。

2、改動配置文件 安裝文件夾/conf/azkaban.properties

  • 設置時區
    default.timezone.id=Asia/Shanghai
  • 設置數據庫,與Web Server中的數據庫設置一致

3、啟動/停止服務

和 web Service類似切到bin的上一文件夾

bin/azkaban-executor-shutdown.sh 停止

bin/azkaban-executor-start.sh 啟動

4、插件的安裝

  • 進入 安裝文件夾/plugins文件夾,在該文件夾下解壓azkaban-jobtype- 2.5.0.tar.gz得到文件夾:azkaban-jobtype-2.5.0。

    這個文件夾用來存放之後安裝的全部插 件,與Web Server中的viewer文件夾類似。每次插件的安裝配置須要重新啟動Executor Server。

  • 改動 安裝文件夾/plugins/azkaban-jobtype-2.5.0/common.properties。設置hadoop.home和hive.home。與你的環境變量HADOOP_HOME和HIVE_HOME分布保持一致。

hadoop.home=/etc/hadoop

hive.home=/usr/lib/hive

executor.home=/opt/azkaban2/executor //executor所在文件夾

hadoop.lib=/usr/lib/hadoop //hadoop lib

azkaban.should.proxy=false

  • 改動 同等文件夾下的commonprivate.properties:
    1、相同須要設置hadoop.home和hive.home、executor.home、 hadoop.lib。
    2、設置.classpath

    ehive.classpath.items=${hive.home}/lib/*,${hive.home}/conf/,${hive.aux.jars.path}/*,${hadoop.lib}/*,${hadoop.lib}/lib/*,${hadoop.lib}/client/*,${hadoop.home}/conf/

    hive.classpath.items=${hive.home}/lib/*,${hive.home}/conf/,${hive.aux.jars.path}/*

    3、設置權限、代理

    # proxy.keytab.location=/home/aa.keytab

    # [email protected]

    azkaban.should.proxy=false//假設為true的話須要進行kerkeros,即凝視打開,打開會後報hadoop的gettoken異常

    obtain.binary.token=true

    obtain.namenode.token=true

    obtain.jobtracker.token=true

    hive的安裝
    改動hive目錄下的plugin.properties
    hive.aux.jars.path=${hive.home}/lib
    改動hive目錄下的private.properties

    jobtype.classpath=${hive.home}/lib/*,${hive.home}/conf,${hive.aux.jars.path}

    jobtype.class=azkaban.jobtype.HadoopHiveJob

    hive.aux.jars.path=${hive.home}/aux/lib

    上面的${hive.home} 均為/common.properties 文件裏設置的hive.home

註意:使用官網的jar包會有問題,須要下載源代碼更改又一次編譯:

version=1&modificationDate=1436499438543&api=v2"> azkaban-hadoopsecuritymanager-2.5.0.fix.jar

/plugins/jobtype/src/azkaban/jobtype/HadoopSecureHiveWrapper.java

刪除:

if (!ShimLoader.getHadoopShims().usesJobShell()) { } 又一次打包編譯

jar包清單:

1、/azkaban2/executor/lib

executor/lib.jpg

2、/azkaban2/executor/plugins/azkaban-jobtype-2.5.0/hive hive以及java hadoopjava等都一樣

插件jar.jpg

當中的azkaban-hadoopsecuritymanager-2.5.0.fix.jar 是編譯完之後的包

3、 使用

azkaban的使用方式是依照job文件描寫敘述來進行使用的,使用type來運行運行任務的類型,通過dependencies能夠用來連接任務。即dependencies=A,僅僅有A任務運行完了才幹夠運行改任務

將描寫敘述文件和腳本文件打成zip包上傳到azkaban所相應的probject中

運行Shell文件:

job文件:

type=command

command=echo "mr"

command.1=sh mr.sh

文件文件夾:

技術分享

運行Java文件

type=hadoopJava

job.class=azkaban.jobtype.examples.java.WordCount

classpath=./lib/*,${hadoop.home}/lib/*

main.args=${param.inData} ${param.outData}

Method.run=test();

force.output.overwrite=true

input.path=${param.inData}

 output.path=${param.outData}

假設不指定方法名默認找run()方法去運行 假設沒有會報錯

假設沒有輸入輸出參數等,能夠省略

運行hive

type=hive

user.to.proxy=media-sns

azk.hive.action=execute.query

hive.script=hive.sh

在hive.sh中寫hive的sql

use test;

select * from t_user limit 10;

   文件夾結構:

技術分享

運行mr

可通過shell運行mr任務的命令方式和shell一樣

azkaban2.5 具體配置以及使用方式