欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

azkaban安装编译3.86 教程

发布时间:2024/9/18 编程问答 41 豆豆
生活随笔 收集整理的这篇文章主要介绍了 azkaban安装编译3.86 教程 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

Azkaban is a batch workflow job scheduler created at LinkedIn to run Hadoop jobs. Azkaban resolves the ordering through job dependencies and provides an easy to use web user interface to maintain and track your workflows.

特点

  • 兼容任何版本的hadoop。(Oozie依赖于hadoop)
  • 有易于使用的web界面
  • 简单的工作流上传
  • 方便设置任务之间的关系
  • 调度工作流
  • 模块化和可插拔的插件机制
  • 认证/授权(权限的工作)。任务提交上去之后,并不是所有人都能查看或修改。
  • 能够杀死并重启工作流
  • 有关失败和成功的电子邮件提醒
  • 三大组件

  • azkaban webServer。是整个azkaban工作流系统的主要管理者,包括用户登录认证、负责project管理、定时执行工作流、跟踪工作流执行进度等一系列任务。
  • azkaban executor server。负责具体的工作流的提交和执行,通过mysql来协调任务的执行。
  • mysql:存储大部分执行流状态,azkaban WebServer和executorServer都需要访问mysql
  • 安装配置

  • 下载azkaban:https://github.com/azkaban/azkaban/releases/tag/3.86.0下载azkaban-3.86.0.tar.gz
  • 将文件解压
    执行命令:./gradlew build installDist -x test。如果无法下载:可以访问 http://services.gradle.org/distributions/下载对应的包,把zip压缩包拷贝进入~/.gradle/wrapper/dists/gradle-4.6-all/bcst21l2brirad8k2ben1letg ,然后执行gradlew clean即可。
  • 这一个过程中会下载很多依赖包。文末有gradle依赖,以及编译好的azkaban 3.86版本。直接解压就可以使用
  • Start the solo server

    修改azkaban-3.86.0/azkaban-solo-server/build/install/azkaban-solo-server/conf/azkaban.properties文件的时区:
    default.timezone.id=Asia/Shanghai
    执行

    # 一定要在azkaban更目录运行,它的配置文件默认是相对路径 cd azkaban-solo-server/build/install/azkaban-solo-server bin/start-solo.sh

    默认端口是8081,可以在azkaban.properties中进行修改

    用户名和密码都是azkaban。

    创建简单job任务


    创建format.job

    type=command # 必须使用绝对路径,指定脚本位置 command=sh /home/iie4bu/shell/azkaban/job/format.sh

    同时创建format.sh:

    #!/bin/bashecho "format job start...."head /home/iie4bu/data/sales.csv

    将format.job进行压缩:zip -r format.zip format.job
    然后进行上传:

    执行job

    点击前面的序号3,进入job,查看joblist

    查看log:

    可以看到脚本的输出内容。

    如何在job中指定shell的相对路径

    新建clean.sh:

    #!/bin/bash date >> /home/iie4bu/date.txt

    新建clean.job

    type=command # 相对路径 command=sh clean.sh

    将这两个文件压缩到一起:

    将clean.zip文件上传至azkaban运行就可以了。

    处理复杂的shell工作流程


    first.job内容:

    type=command command=echo 'first'

    second.job内容:

    type=command command=echo 'second' dependencies=first

    third.job内容:

    type=command command=echo 'third' dependencies=first

    fourth.job内容:

    type=command command=echo 'fourth' dependencies=second,third

    将这四个job压缩成一个zip包:

    将jobs.zip上传到azkaban:

    执行这个工作流程:

    处理java Job

    新建一个Extract.java:

    public class Extract {public static void main(String[] args) throws FileNotFoundException {// 往文件里写数据} }

    将这个文件进行package。生成mockdata-1.0-SNAPSHOT-jar-with-dependencies.jar
    新建java.job:

    type=javaprocess Xms=1024M Xmx=2048M java.class=ETL.Extract classpath=./mockdata-1.0-SNAPSHOT-jar-with-dependencies.jar

    将这两个文件压缩成java.zip:

    上传至azkaban,然后执行即可。

    Java process jobs 是一个方便启动java程序的容器。它等价于从命令行执行一个class的main方法。下面介绍在javaprocess jobs中的可用属性:

    PropertyRequired?MeaningExample
    java.classrequired包含main方法的classcom.org.baidu
    classpath可选一个用逗号隔开的JAR文件的列表并且目录要被添加到classpath下。如果没有设置,它将会把working目录下的所有JAR文件都添加到classpath下面common-io.jar,hello.jar
    Xms可选启动JVM时初始化内存池大小。默认64M64M
    Xmx可选内存池最大值。默认为256M1024M
    main.args可选传入到java main方法中的以逗号分隔的参数列表arg1,arg2
    jvm.args可选设置JVM的参数。整个字符串被完整传入作为VM的参数-Dmyprop=test -Dhello=world
    working.dir可选从command jobs继承/home/job
    env.property可选从command jobs继承env.MY_ENV_VARIABLE=testVariable

    gradle和azkaban编译结果

    链接:https://pan.baidu.com/s/1MgJTkIjxGnWf779iyPQS2g
    提取码:n7fp

    总结

    以上是生活随笔为你收集整理的azkaban安装编译3.86 教程的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。