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


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

              # proxy.user=media-sns/111111@qq.COM

              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包會有問題,須要下載源代碼更改又一次編譯: 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一樣

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM