Azkaban介绍、安装、使用

一、Azkaban工作流程

在这里插入图片描述
Azkaban版本:3.84

hadoop102hadoop103hadoop104
executorexecutorexecutor
webserver

二、配置数据库

1、登录mysql数据库

mysql -uxxx -pxxxx

2、新建数据库azkaban,切换到azkaban数据库

mysql> create database azkaban;
mysql> use azkaban;

3、建表(azkaban-db-3.84.4下的create-all-sql-3.84.4.sql)

mysql> source create-all-sql-3.84.4.sql;

三、配置Executor Server

1)编辑azkaban.properties

[kele@hadoop102 azkaban]$ vim /opt/module/azkaban/azkaban-exec/conf/azkaban.properties
修改如下属性
#修改时区
default.timezone.id=Asia/Shanghai
#设置web端地址
azkaban.webserver.url=http://hadoop102:8081
#设置端口号
executor.port=12321

#配置与数据库连接
database.type=mysql
mysql.port=3306
mysql.host=hadoop102
mysql.database=azkaban
mysql.user=root
mysql.password=*****
mysql.numconnections=100

##在最后添加,metric的设置主要和日志相关
executor.metric.reports=true
executor.metric.milisecinterval.default=60000

2)同步azkaban-exec到所有节点

[kele@hadoop102 azkaban]$ xsync /opt/module/azkaban/azkaban-exec

3)必须进入到/opt/module/azkaban/azkaban-exec路径,分别在三台机器上,
启动executor server

[kele@hadoop102 azkaban-exec]$ bin/start-exec.sh
[kele@hadoop103 azkaban-exec]$ bin/start-exec.sh
[kele@hadoop104 azkaban-exec]$ bin/start-exec.sh

或者:xcall.sh /opt/module/azkaban/azkaban-exec/bin/start-exec.sh

注意:如果在/opt/module/azkaban/azkaban-exec目录下出现executor.port文件,说明启动成功

4)下面激活executor,需要(注意:每次启动服务都需要激活)

[kele@hadoop102 azkaban-exec]$ curl -G "hadoop102:$(<./executor.port)/executor?action=activate" && echo

[kele@hadoop103 azkaban-exec]$ curl -G "hadoop103:$(<./executor.port)/executor?action=activate" && echo

[kele@hadoop104 azkaban-exec]$ curl -G "hadoop104:$(<./executor.port)/executor?action=activate" && echo

<./executor.port:类似于标准输出,将当前目录下./executor.port文件中的内容读取出来作为变量。这里默认是12321,可以直接替换成12321。

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

四、配置Web Server

Azkaban Web Server处理项目管理,身份验证,计划和执行触发。
1)编辑azkaban.properties

[kele@hadoop102 azkaban]$ vim /opt/module/azkaban/azkaban-web/conf/azkaban.properties

修改如下属性

...
default.timezone.id=Asia/Shanghai
...
database.type=mysql
mysql.port=3306
mysql.host=hadoop102
mysql.database=azkaban
mysql.user=azkaban
mysql.password=000000
mysql.numconnections=100
...
azkaban.executorselector.filters=StaticRemainingFlowSize,CpuStatus
说明:
#azkaban.executorselector.filters: 当有多个Executor同时启动的时候,需要从中选择一个Executor去执行任务,这里设置一组过滤器的种类,不满足要求的Executor就不会被分配任务
#StaticRemainingFlowSize:正在排队的任务数;
#CpuStatus:CPU占用情况
#MinimumFreeMemory:内存占用情况。测试环境,必须将MinimumFreeMemory删除掉,否则它会认为集群资源不够,不执行。

2)修改azkaban-users.xml文件,添加kele用户

[kele@hadoop102 azkaban-web]$ vim /opt/module/azkaban/azkaban-web/conf/azkaban-users.xml


<azkaban-users>
  <user groups="azkaban" password="azkaban" roles="admin" username="azkaban"/>
  <user password="metrics" roles="metrics" username="metrics"/>
<!--添加kele用户,增加权限管理员,查看-->
  <user password="kele" roles="metrics,admin" username="kele"/>

  <role name="admin" permissions="ADMIN"/>
  <role name="metrics" permissions="METRICS"/>
</azkaban-users>

3)必须进入到hadoop102的/opt/module/azkaban/azkaban-web路径,启动web server

[kele@hadoop102 azkaban-web]$ bin/start-web.sh

4)访问http://hadoop102:8081,并用kele用户登陆
在这里插入图片描述

邮件报警

在web节点上设置邮件报警

vi /opt/module/azkaban/azkaban-web/conf/azkaban.properties
#设置邮件发送服务器,需要 申请邮箱,切开通stmp服务,
mail.sender=xxxx@xxx.com
mail.host=smtp.126.com
mail.user=xxxx@xxx.com
mail.password=邮箱授权码

#设置成功、失败时给xxxx邮箱发送(测试好像没有用)
job.failure.email=xxxx@xxx.com
job.success.email=xxxx@xxx.com

在执行时在这里设置可以发送邮件
在这里插入图片描述

五、脚本启动

#!/bin/bash
#azkaban的一键启动脚本,只接收单个start或stop参数
if(($#!=1))
then
        echo 请输入单个start或stop参数!
        exit
fi

#对传入的单个参数进行校验,且执行相应的启动和停止命令
if [ $1 = start ]
then

#启动executor
		
	xcall "cd /opt/module/azkaban/azkaban-exec ; bin/start-exec.sh "
	
	sleep 5s
#激活executor
	for i in hadoop102 hadoop103 hadoop104
	do
		ssh $i  "curl -G '$i:12321/executor?action=activate' && echo "
	done
#启动web-server
	cd /opt/module/azkaban/azkaban-web
        bin/start-web.sh

elif [ $1 = stop ]
    then
	cd /opt/module/azkaban/azkaban-web
	bin/shutdown-web.sh

	xcall /opt/module/azkaban/azkaban-exec/bin/shutdown-exec.sh
else
        echo 请输入单个start或stop参数!
fi

xcall jps

六、使用语法

1、新建后缀是project的文件,存放azkaban的版本

azkaban-flow-version: 2.0

2、新建后缀flow文件的配置文件

例如:
nodes:
  - name: mysql_to_hdfs.sh
    type: command
    config:
      command: mysql_to_hdfs.sh second ${dt}
  
  - name: hdfs_to_ods_db.sh
    type: command
    dependsOn:
     - mysql_to_hdfs.sh
    config:
      command: hdfs_to_ods_db.sh ${dt}

在这里插入图片描述
3、压缩成zip的格式上传执行任务

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值