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包会有问题,须要下载源代码更改又一次编译:

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;

   文件夹结构:

version=1&modificationDate=1436499284232&api=v2" alt="">

运行mr

可通过shell运行mr任务的命令方式和shell一样

azkaban2.5 具体配置以及使用方式的更多相关文章

  1. SpringBoot三种配置Dubbo的方式

    *必须首先导入dubbo-starter (1).使用SpringBoot配置文件(application.properties或application.yml) dubbo.application. ...

  2. Spring中三种配置Bean的方式

    Spring中三种配置Bean的方式分别是: 基于XML的配置方式 基于注解的配置方式 基于Java类的配置方式 一.基于XML的配置 这个很简单,所以如何使用就略掉. 二.基于注解的配置 Sprin ...

  3. Django 02 url路由配置及渲染方式

    Django 02 url路由配置及渲染方式 一.URL #URL #(Uniform Resoure Locator) 统一资源定位符:对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是 ...

  4. 虚拟机Linux与本地虚拟网卡配置---NAT链接方式

    虚拟机Linux与本地虚拟网卡配置---NAT链接方式 **********这是我亲自尝试多次实践出来的结果,不是复制粘贴************************* 首先进行初始化,这样避免有 ...

  5. (一)Mybatis基本配置,Statement方式,动态代理增删改查

    首先明白Mybatis是干什么的,之前使用jdbc操作数据库时候要写很多语句,获取光标,连接,获取具体对象进行相应操作,代码过于繁琐,所以现在有了Mybatis,它将这个操作整合在了一起,你不需要关心 ...

  6. flask框架--设置配置文件的几种方式 与Flask两种配置路由的方式

    设置配置文件的几种方式 ==========方式一:============ app.config['SESSION_COOKIE_NAME'] = 'session_lvning' #这种方式要把所 ...

  7. Django 缓存配置的多种方式

    django 的缓存配置有多种方式,主要包含以下几种: 1.开发调试模式 2.内存模式 3.使用文件 4.直接使用数据库 5.使用redis或者memcache 这里主要是记录一下那些不常用,但是在微 ...

  8. 配置adpate的方式

    配置adpate的方式 资源文件配置 ArryAdapter<CharSequence>cadapt= ArryAdapter.createFromResource(this,资源id,a ...

  9. Loadrunner参数化数据配置与更新方式

    之前遇到过一种情况,对脚本进行并发测试时,脚本没有报错,但是有丢失的事物,与开发配合检查确定不是代码的问题,然后检查脚本,更换参数化数据配置与更新方式,问题解决.现在对参数化数据配置和更新方式进行总结 ...

随机推荐

  1. webpack最佳入门实践系列(6)

    10.css模块化 10.1.什么是css模块? CSS模块就是所有的类名都只有局部作用域的CSS文件,当你在一个JavaScript模块中导入一个CSS文件时,CSS模块将会定义一个对象,将文件中类 ...

  2. python和shell对比

    python和shell都是我们经常使用的脚本语言,平时python主要用来写一些小型的任务,shell则在使用liunx系统部署任务的时候用的比较多,由于两者有一些相似之处,时间长了容易混掉,所以这 ...

  3. HDU 4549 (费马小定理+矩阵快速幂+二分快速幂)

    M斐波那契数列 Time Limit: 1000MS   Memory Limit: 32768KB   64bit IO Format: %I64d & %I64u Submit Statu ...

  4. Spring3.2+Struts2.3+Mybatis3.2整合使用(注解使用)

    0.包结构:

  5. less与sass的区别点

    less与sass: 相同点: 1,两者都作为css扩展技术,也都,基于css的高级预处理语言之上. 2,都有的优点:简化代码,降低维护成本. 3,都必须要避免中文环境,所涉及到的所有目录,标题以及内 ...

  6. 【linux高级程序设计】(第十四章)TCP高级应用

    文件I/O方式比较 1.阻塞式文件I/O 进程从调用函数开始,直到返回这段时间都处于阻塞状态. 2.非阻塞式文件I/O 如果当前没有数据可操作,将不阻塞当前进程,而是立即返回一个错误信息.需要反复尝试 ...

  7. HDU5469 Antonidas(树分治&&哈希)

    给你一颗点上有字符的树,问一个给定的字符串是否是这棵树上的两点的路径. 树分治的思想就是每次找重心,重心下的子问题分解去做,然后就是合并了.合并的时候用一个总的set<pair<len,h ...

  8. hdu 1856(hash+启发式并查集)

    More is better Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 327680/102400 K (Java/Others) ...

  9. c++ 堆、栈、自由存储区、全局/静态存储区和常量存储区

    在C++中,内存分成5个区,他们分别是堆.栈.自由存储区.全局/静态存储区和常量存储区. 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区.里面的变量通常是局部变量.函数参数 ...

  10. 【转】Talend作业设计模式和最佳实践-Part I

    原文地址:https://mp.weixin.qq.com/s?__biz=MzA3OTg1Mzk4Nw==&mid=2453261363&idx=2&sn=e0f426022 ...