Azkaban-开源任务调度程序(安装篇)

作者: haort | 来源:发表于2016-01-19 10:29 被阅读12010次

    最近项目迁移到新集群,试试同事推荐的开源任务调度程序-azkaban(阿兹卡班),没看错,就是哈利波特里的阿兹卡班,azikaban主要用来解决hadoop依赖任务的执行,但是它本身支持linux和java程序,因此适合做小项目的任务调度管理程序。
    Azkaban官网

    它有三个重要组件:

    1. 关系数据库(目前仅支持mysql)
    2. web管理服务器-AzkabanWebServer
    3. 执行服务器-AzkabanExecutorServer


      组件

    开始

    Azkaban有三种运行模式:

    • solo server mode:最简单的模式,数据库内置的H2数据库,管理服务器和执行服务器都在一个进程中运行,任务量不大项目可以采用此模式。
    • two server mode:数据库为mysql,管理服务器和执行服务器在不同进程,这种模式下,管理服务器和执行服务器互不影响
    • multiple executor mode:该模式下,执行服务器和管理服务器在不同主机上,且执行服务器可以有多个。

    我们项目要求不是太高,我这次采用第二种模式,管理服务器、执行服务器分进程,但在同一台主机上。

    安装

    azkaban和官方说的一样,简单易用,先到官网下载相关包并解压,我下载的是:

    • azkaban-executor-server-2.5.0.tar.gz(执行服务器)
    • azkaban-web-server-2.5.0.tar.gz(管理服务器)
    • azkaban-sql-script-2.5.0.tar.gz(mysql脚本)
    1. 数据库安装配置
    • 数据库创建
      <pre>#不一定非要命名为'azkaban'
      mysql>CREATE DATABASE azkaban;
      </pre>
      <pre>#创建用户和密码
      mysql>CREATE USER 'username'@'%' IDENTIFIED BY 'password';
      </pre>
      <pre>#给用户相关权限
      mysql>GRANT SELECT,INSERT,UPDATE,DELETE ON <database>.* to '<username>'@'%' WITH GRANT OPTION;
      </pre>
    • 数据库配置
      编辑<code>/etc/my.cnf</code>
      <pre>[mysqld]
      max_allowed_packet=1024M
      </pre>
    • 重启服务器
    • 执行脚本
      执行下载包azkaban-sql-script-2.5.0.tar.gz中脚本“create-all-sql”
    • 检查下载包web和executor的lib文件下是否有mysql驱动,若不存在,则拷贝一个
    1. web管理服务器(azkaban-web-2.5.0)
      有几个重要目录和配置文件
    文件夹 解释
    bin 用来存放启动和停止脚本
    conf 配置文件,最重要的配置azkaban.properties
    lib jar文件,查看是否存在mysql驱动
    extlib 扩展lib
    plugins 扩展插件,有hdfs、hive、pig等
    web web目录

    配置conf中azkaban.properties,其他默认即可

    #设置项目名称
    azkaban.name=BigData
    #设置项目副标题
    azkaban.label=besttone
    #一定要设置为上海,否则按美国时间执行
    default.timezone.id=Asia/Shanghai

    database.type=mysql
    mysql.port=3306
    mysql.host=localhost
    #改为自己的数据库名称
    mysql.database=azkaban
    #改为自己的数据库账号
    mysql.user=azkaban
    #改为自己的数据库密码
    mysql.password=azkaban_abc

    mail.sender=email账号
    mail.host=email服务器
    mail.user=email账号
    mail.password=email密码

    #Azkaban Jetty 服务设置,先安装此配置,后面再详细介绍生产方法.
    jetty.maxThreads=25
    jetty.ssl.port=8443
    jetty.port=8081
    jetty.keystore=web/keystore
    jetty.password=besttone
    jetty.keypassword=besttone
    jetty.truststore=web/truststore
    jetty.trustpassword=besttone

    jetty ssl配置

    • jetty ssl keystore生成

    keytool -genkey -keystore keystore -alias jetty-azkaban -keyalg RSA -validity 3560

    • 根据提示输入相关信息,我的密码为besttone,和上面的password对应

    keytool -export -alias jetty-azkaban -keystore keystore -rfc -file selfsignedcert.cer

    • 过程中如果要输入密码,请输入之前密码

    keytool -import -alias certificatekey -file selfsignedcert.cer -keystore truststore

    • 这时候在web目录下新建key目录,将生成的keystore,truststore拷贝进去

    执行启动命令

    ./bin/azkaban-web-start.sh

    也可以执行nohup,后台运行

    nohup ./bin/azkaban-web-start.sh &

    关闭命令

    ./bin/azkaban-web-shutdown.sh

    访问https://localhost:8443
    输入账号和密码,都是azkaban,如果要更改,请修改conf/azkaban-users.xml文件

    至此已经可以看到web管理界面了,下面执行需要启动执行服务器。
    ps:如果本地可以执行,远程无法执行,看是否远程服务器禁用8443端口,将8443改为8888即可。

    3.执行服务器
    修改conf/azkaban.properties文件,其他默认

    default.timezone.id=Asia/Shanghai
    database.type=mysql
    mysql.port=3306
    mysql.host=localhost
    mysql.database=azkaban
    mysql.user=azkaban
    mysql.password=azkaban_abc

    执行脚本,启动执行服务器

    ./bin/azkaban-executor-start.sh

    也可以执行nohup,后台运行

    nohup ./bin/azkaban-executor-start.sh &

    关闭命令

    ./bin/azkaban-executor-shutdown.sh

    4.安装扩展控件
    azkaban有很多插件,hdfs、hive、pig等,如有兴趣自行安装,本次项目未用到

    自此,安装已完成,使用篇待续

    相关文章

      网友评论

      本文标题:Azkaban-开源任务调度程序(安装篇)

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