build
首先下载源码包
包路径:https://github.com/azkaban/azkaban/releases
接着编译源码
执行安装命令:
./gradlew build installDist -x test #跳过测试
爆出异常1:提示不能执行git命令
解决异常:安装git
yum install -y git
配置mysql
//创建azkaban数据库
mysql> CREATE DATABASE azkaban;
//创建azkaban用户
mysql> CREATE USER 'azkaban'@'%' IDENTIFIED BY '123456';
# give the user INSERT, SELECT, UPDATE, DELETE permission on all tables in the Azkaban db.
mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON azkaban.* to 'azkaban'@'%' WITH GRANT OPTION;
[mysqld]
...
#调大max_allowed_packet
max_allowed_packet=1024M
重启mysql
$ sudo /sbin/service mysqld restart
给azkaban建表
mysql> source /opt/module/azkaban-3.56.0/azkaban-db/build/sql/create-all-sql-0.1.0-SNAPSHOT.sql
安装executor server
azkaban有两种安装模式:solo server 和 multi executor server,multi executor server适合生产环境
executor server 程序包路径:./azkaban-exec-server/build/install/azkaban-exec-server
修改azkaban.properties
mysql.port=3306
mysql.host=hadoop105
mysql.database=azkaban
mysql.user=azkaban
mysql.password=123456
启动
./bin/start-exec.sh
curl -G "hadoop105:$(<./executor.port)/executor?action=activate" && echo
安装web server
程序包:./azkaban-exec-server/build/install/azkaban-web-server
修改azkaban.properties
mysql.port=3306
mysql.host=hadoop105
mysql.database=azkaban
mysql.user=azkaban
mysql.password=123456
#配置邮箱smtp,qq邮箱好像不行
mail.sender=132123@163.com
mail.host=smtp.163.com
mail.user=13123@163.com
mail.password=123456
#配置作业告警邮箱
job.failure.email=23424234@163.com
job.success.email=2424@163.com
#修改时区
default.timezone.id=Asia/Shanghai
其他的参数:如邮件、ssl等先不动。
到此安装完毕,可以创建项目进行执行了。
创建项目
创建myflow.project文件,该文件指定flow版本
azkaban-flow-version: 2.0
创建my.flow文件
nodes:
- name: jobA
type: command
config:
command: echo "This is an echoed text."
上传项目
点击”Execute Flow”,接着执行项目.
问题1:点击执行项目后,作业停留在”prepareing execution”,不执行,也没有任何报错日志。
排除过程:先查看executor server 和web server的logs,找不到任何报错日志。自己就推测了一下,没有执行,可能是executor没有到执行请求,于是去mysql查找azkaban的executors表,发现出现了两个激活的executor。
而自己只有一个executor,多出来的一个是由于非法关机,导致上一次的executor没有正常退出,使得web在发任务的时候发错了executor,导致任务不执行。
解决:删掉无效的executor记录。
