zoukankan      html  css  js  c++  java
  • Azkaban

    1、Azkaban

    官网:https://azkaban.github.io/
    Azkaban是一款开源工作流管理器

    Azkaban是在LinkedIn上创建的批处理工作流作业调度程序,用于运行Hadoop作业

    Azkaban通过作业依赖性解决订单,并提供易于使用的Web用户界面来维护和跟踪您的工作流程

    工作流作业:
    flume->hdfs->mr->hive建表->导入load data脚本
    自动化调度

    2、Azkaban安装部署

    1)解压
    首先将压缩包放进/root/hd/azkaban里面
    azkaban-executor-server-2.5.0.tar.gz –>executor
    azkaban-sql-script-2.5.0.tar.gz –>azkaban-2.5.0
    azkaban-web-server-2.5.0.tar.gz –>server
    tar -zxvf *.tar.gz

    2)进入mysql创建azkaban库,然后将解压好的脚本导入
    create database azkaban;
    use azkaban;
    source /root/hd/azkaban/azkaban-2.5.0/create-all-sql-2.5.0.sql;

    3)生成证书(https生成器)
    keytool -keystore keystore -alias jetty -genkey -keyalg RSA
    (回车,不用填,到那个CN=Unknown那行下面有个判断,输入y,后面一行继续回车)
    将keystore移动到server文件夹下

    4)时间同步配置
    任务调度,所以和本地时间保持一致
    开启交互窗口:
    sudo date -s ”
    hwclock -w

    5)修改server端配置文件
    cd /root/hd/azkaban/server/conf
    vi azkaban.properties

    # Azkaban Personalization Settings
    azkaban.name=Test
    azkaban.label=My Local Azkaban
    azkaban.color=#FF3601
    azkaban.default.servlet.path=/index
    web.resource.dir=web/
    # 时区
    default.timezone.id=Asia/Shanghai
    #Azkaban UserManager class
    # 用户权限管理默认类
    user.manager.class=azkaban.user.XmlUserManager
    # 用户配置
    user.manager.xml.file=conf/azkaban-users.xml
    # Loader for projects
    #配置文件所在位置
    executor.global.properties=conf/global.properties
    azkaban.project.dir=projects
    # azkaban目前只支持mysql
    database.type=mysql
    mysql.port=3306
    # 当前主机名
    mysql.host=hsiehchou121
    mysql.database=azkaban
    mysql.user=root
    mysql.password=root
    # 最大连接数
    mysql.numconnections=100
    # Velocity dev mode
    velocity.dev.mode=false
    # Azkaban Jetty server properties.
    # 最大线程数
    jetty.maxThreads=25
    jetty.ssl.port=8443
    jetty.port=8081
    jetty.keystore=keystore
    jetty.password=123456
    jetty.keypassword=123456
    jetty.truststore=keystore
    jetty.trustpassword=123456
    # Azkaban Executor settings
    executor.port=12321
    # mail settings
    mail.sender=@qq.com
    mail.host=smtp.qq.com
    job.failure.email=
    job.success.email=
    lockdown.create.projects=false
    cache.directory=cache

    azkaban-users.xml

    <azkaban-users>
    <user username="azkaban" password="azkaban" roles="admin" groups="azkaban" />
    <user username="metrics" password="metrics" roles="metrics"/>
    <!--增加这一行 role管理员权限:admin-->
    <user username="admin" password="admin" roles="admin,metrics"/>
    <role name="admin" permissions="ADMIN" />
    <role name="metrics" permissions="METRICS"/>
    </azkaban-users>

    6)修改excutor端配置文件
    azkaban.properties

    # Azkaban
    # 时区
    default.timezone.id=Asia/Shanghai
    # Azkaban JobTypes Plugins
    # 插件
    azkaban.jobtype.plugin.dir=plugins/jobtypes
    #Loader for projects
    executor.global.properties=conf/global.properties
    azkaban.project.dir=projects
    database.type=mysql
    mysql.port=3306
    mysql.host=hsiehchou121
    mysql.database=azkaban
    mysql.user=root
    mysql.password=root
    mysql.numconnections=100
    # Azkaban Executor settings
    # 最大线程数
    executor.maxThreads=50
    executor.port=12321
    executor.flow.threads=30

    3、azkaban实战

    hdfs->hive建表->导入

    1)job1.job

    type=command
    command=echo 'Hello World!'

    打包成zip包上传到azkaban,执行

    2)job2(a.job和b.job)
    a.job

    type=command
    command=echo 'li'

    b.job

    type=command
    dependencies=a
    command=echo '666'

    打包成zip包上传到azkaban,执行

    3)startyarn.job

    type=command
    command=/root/hd/hadoop-2.8.4/sbin/start-yarn.sh

    打包成zip包上传到azkaban,执行

    4)mapreduce.job

    type=command
    command=/root/hd/hadoop-2.8.4/bin/hadoop jar hadoop-mapreduce-examples-2.8.4.jar wordcount /wc /wc/out

    打包成zip包上传到azkaban,执行

    5)hive操作
    hive.sql

    use default;
    create table azhive(id int, name string) row format delimited fields terminated by ' ';
    load data inpath '/hsiehchou.txt' into table azhive;

    hivef.job

    type=command
    command=/root/hd/hive/bin/hive -f 'hive.sql'

    打包成zip包上传到azkaban,执行

  • 相关阅读:
    增强遍历和Object多参数遍历
    Git忽略规则(.gitignore配置)不生效原因和解决
    算法基本概念及常用算法Python实现
    使用GitBook编写项目文档
    Python 闭包
    Linux 进程管理
    Kafka 安装及入门
    IP地址0.0.0.0表示什么
    Docker 入门
    Docker Linux下安装
  • 原文地址:https://www.cnblogs.com/hsiehchou/p/10520607.html
Copyright © 2011-2022 走看看