关闭

azkaban2.5 详细配置以及使用方式

标签: azkaban2.5配置安装任务调度工作流azkaban
5456人阅读 评论(0) 收藏 举报
分类:
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 ,

           在执行该命令后会提示输入密码(建议输入的密码都一样,方便后续配置),这个密码是后续配置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的密码

      jetty.trustpassword=创建keystore的密码

    • 邮件的配置
      mail.sender=
      mail.host=
      mail.user=
      mail.password=
      job.failure.email=
      job.success.email=
    • 其他配置可默认

  6、azkaban-users.xml 配置用户的权限登录账号和密码

  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一样

 

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Azkaban——使用指南

登录 https://localhost:8443 注意是https,采用的是jetty ssl链接。输入账号密码azkaban/azkanban(如果你之前没有更改的话)         ...
  • djd1234567
  • djd1234567
  • 2016-05-17 18:37
  • 3286

Azkaban简介和使用

概述 为什么需要工作流调度系统 l 一个完整的数据分析系统通常都是由大量任务单元组成: shell脚本程序,java程序,mapreduce程序、hive脚本等 l 各任务单元之间存在时间先后及前后...
  • hblfyla
  • hblfyla
  • 2017-07-05 10:23
  • 2503

使用Azkaban调度Spark任务

Azkaban是一种类似于Oozie的工作流控制引擎,可以用来解决多个Hadoop(或Spark等)离线计算任务之间的依赖关系问题。 也可以用其代替cron来对周期性任务进行调度,并且更为直...
  • lsshlsw
  • lsshlsw
  • 2016-03-08 22:26
  • 8150

hadoop学习之azkaban(5.1):azkaban的使用及示例

上一章我们已经安装好了azkaban的web-server和execute-server,下面我们来使用阿兹卡班进行任务调度。 一,最简单的例子:执行单个命令 1,首先按格式写好脚本(linux/wi...
  • qq_32166627
  • qq_32166627
  • 2016-12-12 18:04
  • 2127

Azkaban文档

这个文档假定你已经通过quit start部分了解Azkaban的基础的部分 Jobs和配置         Azkaban jobs是主要的代码加上配置的值。配置是按照的格式存储在属...
  • liuj2511981
  • liuj2511981
  • 2015-02-06 16:27
  • 956

Hadoop入门之自动化定时调度之Azkaban部署及使用

azkaban的部署使用及如何结合项目的使用思考 1  部署azkaban 1.1 准备工作,下载相关安装包,这里我使用的是2.5版本的 官方:http://azkaban.githu...
  • sqh201030412
  • sqh201030412
  • 2016-05-31 19:32
  • 5247

二、azkaban 指南

在3.0版本中,提供了三种模式:单服务模式,2个服务模式以及分布式多服务模式。以下描述了它们之间的差异。 在单服务模式下,数据库使用H2,并且web server 和 executor server...
  • jkdcdlly
  • jkdcdlly
  • 2016-11-19 08:11
  • 2514

Azkaban使用的两个设计模式

最近看了看azkaban的代码,发现有两个设计模式比较巧妙,一个是在webServer端处理用户请求的servlet的类结构,一个是在execServer中使用的观察者模式。 1、webServer...
  • yu616568
  • yu616568
  • 2015-02-11 18:24
  • 2193

Azkaban学习

在作业设计器中,实用哪种作业工作流的引擎是最主要的,现在对Azkaban和Oozie进行调研。 一.Azkaban介绍 Azkaban是一个类似于Oozie的任务调度系统,它以flow为执行单位进...
  • sinat_29581293
  • sinat_29581293
  • 2016-11-20 13:56
  • 2420

Azkaban-2.5及Plugins的安装配置

Azkaban-2.5.0及插件安装配置
  • dabokele
  • dabokele
  • 2016-08-17 23:00
  • 6412
    个人资料
    • 访问:396793次
    • 积分:6119
    • 等级:
    • 排名:第4758名
    • 原创:178篇
    • 转载:318篇
    • 译文:0篇
    • 评论:32条
    学习交流
    java资源分享群:222379715
    文章分类
    最新评论