一、Azkaban特点

Azkaban是由Linkedin开源的一个批量工作流任务调度器。用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban定义了一种KV文件格式来建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。
它有如下功能特点:
1)Web用户界面
2)方便上传工作流
3)方便设置任务之间的关系
4)调度工作流
5)认证/授权(权限的工作)
6)能够杀死并重新启动工作流
7)模块化和可插拔的插件机制
8)项目工作区
9)工作流和任务的日志记录和审计

二、单机模式

1. 将azkaban-solo-server-3.84.4.tar.gz拷贝到集群,并解压

 tar /opt/software/azkaban-solo-server-3.84.4.tar.gz -C /opt/module

2. 启动Azkaban

 /opt/module azkaban-solo-server-3.84.4/bin/start-solo.sh

3. 查看浏览器http://hadoop101:8081

用户名和密码:azkban

4. 关闭Azkaban

 /opt/module azkaban-solo-server-3.84.4/bin/shutdown-solo.sh

三、集群模式

1、上传tar包

  1. 将azkaban-db-3.84.4.tar.gz,azkaban-exec-server-3.84.4.tar.gz,azkaban-web-server-3.84.4.tar.gz上传到集群

  2. 新建/opt/module/azkaban目录,并将所有tar包解压到这个目录下

 mkdir azkaban

 tar -zxvf /opt/software/azkaban-web-server-3.84.4.tar.gz -C /opt/module/azkaban

 tar -zxvf /opt/software/azkaban-exec-server-3.84.4.tar.gz -C /opt/module/azkaban

 tar -zxvf /opt/software/azkaban-db-3.84.4.tar.gz -C /opt/module/azkaban

2、设置MySQL

  1. 正常安装MySQL

  2. 登陆MySQL,创建Azkaban数据库

mysql>CREATE DATABASE azkaban
  1. 创建Azkaban用户并赋予权限
    安装密码验证插件:
 INSTALL PLUGIN validate_password SONAME 'validate_password.so';

 show variables like 'validate_password%';
mysql>set global validate_password_length=4;

mysql>set global validate_password_policy=0;

mysql>CREATE USER 'azkaban'@'%' IDENTIFIED BY '1qaz2wsx';

mysql>GRANT SELECT,INSERT,UPDATE,DELETE ON azkaban.* to 'azkaban'@'%' WITH GRANT OPTION;
  1. 创建Azkaban表,完成后退出MySQL
mysql>use azkaban;

mysql>source /opt/module/azkaban/azkaban-db-3.84.4/create-all-sql-3.84.4.sql

mysql>quit;
  1. 更改MySQL包大小
 sudo vim /etc/my.cnf

在[mysqld]下面加一行

 [mysqld]
 ...
 max_allowed_packet=1024M
  1. 重启MySQL
 sudo systemctl restart mysqld

3、设置Executor Server

Azkaban Executor Server处理工作流和作业的实际执行。

  1. 编辑azkaban.properties
 vim /opt/module/azkaban/azkaban-exec-server-3.84.4/conf/azkaban.properties

修改如下属性

 ...
 default.timezone.id=Asia/Shanghai
 ...
 azkaban.webserver.url=http://hadoop101:8081
 ...
 database.type=mysql
 mysql.port=3306
 mysql.host=hadoop101
 mysql.database=azkaban
 mysql.user=azkaban
 mysql.password=1qaz2wsx
 mysql.numconnections=100

在最后添加

 executor.metric.reports=true
 executor.metric.milisecinterval.default=60000
  1. 同步executor server到所有节点
 xsync /opt/module/azkaban/azkaban-exec-server-3.84.4
  1. 在三台机器上启动并激活executor server
 cd /opt/module/azkaban/azkaban-exec-server-3.84.4
 bin/start-exec.sh

如果在目录下出现executor.port文件,说明启动成功,下面激活executor

 curl -G "localhost:$(<./executor.port)/executor?action=activate" && echo

如果三台机器都出现如下提示,则表示激活成功
{“status”:“success”}

4、设置Web Server
Azkaban Web Server处理项目管理,身份验证,计划和执行触发。

  1. 编辑azkaban.properties
 vim /opt/module/azkaban/azkaban-web-server-3.84.4/conf/azkaban.properties

修改如下属性

 ...
 default.timezone.id=Asia/Shanghai
 ...
 database.type=mysql
 mysql.port=3306
 mysql.host=hadoop101
 mysql.database=azkaban
 mysql.user=azkaban
 mysql.password=1qaz2wsx
 mysql.numconnections=100
 ...
 azkaban.executorselector.filters=StaticRemainingFlowSize,CpuStatus
  1. 修改azkaban-users.xml文件,添加caron用户
 vim /opt/module/azkaban/azkaban-web-server-3.84.4/conf/azkaban-users.xml
  <azkaban-users>
     <user groups="azkaban"  password="azkaban" roles="admin" username="azkaban"/>
     <user password="metrics" roles="metrics" username="metrics"/>
     <user password="caron" roles="metrics,admin" username="caron"/>
     <role name="admin" permissions="ADMIN"/>
     <role name="metrics" permissions="METRICS"/>
 </azkaban-users>
  1. 在101启动web server
 cd /opt/module/azkaban/azkaban-web-server-3.84.4

 bin/start-web.sh
  1. 访问http://hadoop101:8081,并用caron用户登陆
    在这里插入图片描述
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐