美文网首页
azkaban(最适合入门)

azkaban(最适合入门)

作者: 木迪_2a4e | 来源:发表于2018-12-03 18:02 被阅读40次

    这里先默认大家都已经安装并配置完成了azkaban
    1、启动azkaban

    启动azkaban server。进入executor,执行:

    bin/ azkaban-executor-start.sh

    可以使用bin/azkaban-executor-shutdown.sh关闭

    因为有日志输出建议使用nohup 执行

           启动azkaban web。进入web,执行:

                  bin/azkaban-web-start.sh

                  可以使用bin/ azkaban-web-shutdown.sh关闭

                  建议使用nohup执行

    启动之后,使用https://ip:8443登录。

    登陆界面

            强调一下使用https!!!!

           登录的用户名和密码就是azkaban-users.xml中默认的或配置的。 

    2、azkaban使用

        2.1简单入门。

        登录azkaban后创建project。在本地建立xxx.job文件。例如test.job。编辑内容为:

        #test job

        type=command

        command=echo this is test!!!

        然后压缩成test.zip文件上传到azkaban。就可以看到:

    任务上传

    点击进去test可以选择执行。

    2

    任务配置列表

    任务执行效果

    3.2 azkaban job配置和依赖

    假设azkaban的一个工程有五个job。

    o2o_2_hive.job:将清洗完的数据入hive库

    o2o_clean_data.job:调用mr清洗hdfs数据

    o2o_up_2_hdfs.job:将文件上传至hdfs

    o2o_get_file_ftp1.job:从ftp1获取日志

    o2o_get_file_fip2.job:从ftp2获取日志

    依赖关系: 3依赖4和5,2依赖3,1依赖2,4和5没有依赖关系。各个文件内容如下。

    o2o_2_hive.job

    type=command

    # 执行sh脚本,建议这样做,后期只需维护脚本就行了,azkaban定义工作流程

    command=sh /job/o2o_2_hive.sh

    dependencies=o2o_clean_data #依赖通过 dependencies 来指定

    o2o_clean_data.job

    type=command

    # 执行sh脚本,建议这样做,后期只需维护脚本就行了,azkaban定义工作流程

    command=sh /job/o2o_clean_data.sh

    dependencies=o2o_up_2_hdfs

    o2o_up_2_hdfs.job

    type=command

    #需要配置好hadoop命令,建议编写到shell中,可以后期维护

    command=hadoop fs -put /data/*

    #多个依赖用逗号隔开

    dependencies=o2o_get_file_ftp1,o2o_get_file_ftp2

    o2o_get_file_ftp1.job

    type=command

    command=wget "ftp://file1" -O /data/file1

    o2o_get_file_ftp2.job

    type=command

    command=wget "ftp:file2" -O /data/file2

    那么将这五个文件打包到一个.zip上传到azkaban的一个工程中。结果如下:

    任务列表

    点击execute flow.

    任务依赖关系

    左边 flow view展示各个job与job之间关系。

    Notification(通知):可以在这里设置邮件通知。

    Failure Options:job执行失败之后怎么执行和处理的设置

    Concurrent:job正确执行,怎么执行。例如设置一个job同一个时刻只能执行一份。

    Flow parameters:定义job工作流中参数。

    2

    在左下角,Schedule可以设置定时任务。

    定时任务

    Time设置job执行时间。定时任务设置的日期。-07:00设置的是时间的校准以哪个为时间参考。选UTC就对了。

    Recurrentce下repeat every表示任务失败重复执行。数字表示重复执行的次数。后面days表示定时任务是按天,月,年执行的跨度。

    右下角为执行和取消。

    备注:有时邮件发送不成功。原因是设置的时候使用了qq邮箱作为smtp服务器。但是qq,smtp默认是关闭的而且设置也麻烦的一笔。所以建议使用163 or其他。在job中也可以指定任务失败或成功,邮件的派送。如下:

    邮箱配置

    notify.emails 通知发送方。Failure.emails任务失败接收方。success.emails.任务成功接收方。

    Plugins和exlib等几个文件夹不是必须需要文件的。启动时可以发行缺少triggers插件不影响。

    配置完成后如果发行网页打开报错。恭喜!未知错误,爱莫能助。如果乱码,那么浏览器问题,打不开,你看看是不是用https://打开的。

    对了还一个问题,有时你改了时区,其实你不一定改成功了。你使用jps指令看看启动的java任务。Azkaban的任务成功启动。如果时区不一致,任务启动会失败。

    azkaban线程

    相关文章

      网友评论

          本文标题:azkaban(最适合入门)

          本文链接:https://www.haomeiwen.com/subject/yshucqtx.html