前言
环境准备
- MySQL数据库
- JDK1.8
本次安装Azkaban版本
- Azkaban-3.84.4
一、安装步骤
1、上传文件
(1)将安装包上传到服务器上
(2)创建目录,解压安装包到对应目录
[hadoop@hadoopserver local]$ mkdir azkaban
[hadoop@hadoopserver azkaban]$ tar -zxf azkaban-db-3.84.4.tar.gz -C /usr/local/azkaban/
[hadoop@hadoopserver azkaban]$ tar -zxf azkaban-exec-server-3.84.4.tar.gz -C /usr/local/azkaban/
[hadoop@hadoopserver azkaban]$ tar -zxf azkaban-web-server-3.84.4.tar.gz -C /usr/local/azkaban/
(3)修改解压后的文件夹名称
[hadoop@hadoopserver azkaban]$ mv azkaban-db-3.84.4/ azkaban-db
[hadoop@hadoopserver azkaban]$ mv azkaban-exec-server-3.84.4/ azkaban-exec
[hadoop@hadoopserver azkaban]$ mv azkaban-web-server-3.84.4/ azkaban-web
2、数据库操作
(1)登录MySQL,创建Azkaban数据库
[hadoop@hadoopserver azkaban]$ mysql -uroot -p
mysql> create database azkaban;
Query OK, 1 row affected (0.07 sec)
(2)在数据库中在创建一个Azkaban用户
mysql> create user 'azkaban'@'%' identified by 'azkaban';
注意:可能会报如下错误
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
数据库密码安全级别过高,可以通过如下命令降低安全级别
mysql> set global validate_password_length=4;
mysql> set global validate_password_policy=0;
(3)赋予用户权限
mysql> grant select,insert,update,delete on azkaban.* to 'azkaban'@'%' with grant option;
(4)将Azkaban使用的表导入到数据库
mysql> use azkaban;
mysql> source /usr/local/azkaban/azkaban-db/create-all-sql-3.84.4.sql
(5)修改max_allowed_packet参数配置
- 查询原本数据库max_allowed_packet信息
mysql> show VARIABLES like '%max_allowed_packet%';
+---------------------------+------------+
| Variable_name | Value |
+---------------------------+------------+
| max_allowed_packet | 67108864 |
| mysqlx_max_allowed_packet | 67108864 |
| slave_max_allowed_packet | 1073741824 |
+---------------------------+------------+
3 rows in set (0.01 sec)
- 修改配置文件
/etc/my.cnf,增加如下配置
max_allowed_packet=1024M
(6)重启MySQL服务
systemctl restart mysqld
systemctl status mysqld
再次查询数据库max_allowed_packet信息,查看配置是否生效。
3、修改azkaban-exec配置
(1)修改azkaban-exec的conf目录下配置文件azkaban.properties
[hadoop@hadoopserver conf]$ pwd
/usr/local/azkaban/azkaban-exec/conf
[hadoop@hadoopserver conf]$ vim azkaban.properties
修改如下内
// 修改时区
default.timezone.id=Asia/Shanghai
//修改为自己的ip
azkaban.webserver.url=http://192.168.159.128:8081
mysql.port=3306
mysql.host=192.168.159.128
mysql.database=azkaban
mysql.user=azkaban
mysql.password=azkaban
#增加executor端口号
executor.port=12321
(2)修改commonprivate.properties配置文件
[hadoop@hadoopserver jobtypes]$ pwd
/usr/local/azkaban/azkaban-exec/plugins/jobtypes
[hadoop@hadoopserver jobtypes]$ vim commonprivate.properties
- 在commonprivate.properties文件中增加以下配置
azkaban.native.lib=false
(3)启动azkaban execServer
[hadoop@hadoopserver azkaban-exec]$ pwd
/usr/local/azkaban/azkaban-exec
[hadoop@hadoopserver azkaban-exec]$ ./bin/start-exec.sh
-
执行完成之后可以通过jps命令查看进程
[hadoop@hadoopserver azkaban-exec]$ jps 34997 AzkabanExecutorServer 35015 Jps
注意:如果启动成功,在azkaban-exec目录下会生成一个executor.port文件
(4)进入数据库查看相应信息
- 使用用户azkaban登录mysql
[hadoop@hadoopserver azkaban]$ mysql -uazkaban -pazkaban
- 查看表executors
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| azkaban |
| information_schema |
+--------------------+
2 rows in set (0.00 sec)
mysql> use azkaban;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select * from executors;
+----+--------------+-------+--------+
| id | host | port | active |
+----+--------------+-------+--------+
| 1 | hadoopserver | 12321 | 0 |
+----+--------------+-------+--------+
1 row in set (0.00 sec)
- 激活hadoopserver账号
输入如下命令:
[hadoop@hadoopserver azkaban-exec]$ curl -G "hadoopserver:12321/executor?action=activate" && echo
{"status":"success"}
- 再次查看表executors
mysql> select * from executors;
+----+--------------+-------+--------+
| id | host | port | active |
+----+--------------+-------+--------+
| 1 | hadoopserver | 12321 | 1 |
+----+--------------+-------+--------+
1 row in set (0.01 sec)
4、配置azkaban-web
(1)进入/conf目录,修改azkaban.properties文件配置
[hadoop@hadoopserver conf]$ pwd
/usr/local/azkaban/azkaban-web/conf
[hadoop@hadoopserver conf]$ vim azkaban.properties
- 修改如下配置
default.timezone.id=Asia/Shanghai
mysql.port=3306
mysql.host=192.168.159.128
mysql.database=azkaban
mysql.user=azkaban
mysql.password=azkaban
azkaban.executorselector.filters=StaticRemainingFlowSize,CpuStatus
(2)修改配置文件azkaban-users.xml
[hadoop@hadoopserver conf]$ pwd
/usr/local/azkaban/azkaban-web/conf
[hadoop@hadoopserver conf]$ vim azkaban-users.xml
- 增加如下配置
<user password="123456" roles="admin" username="admin"/>
(3)启动azkaban-web服务
[hadoop@hadoopserver azkaban-web]$ pwd
/usr/local/azkaban/azkaban-web
[hadoop@hadoopserver azkaban-web]$ ./bin/start-web.sh
- 可以通过jps命令查看任务进程
(4)使用如下地址通过浏览器访问UI界面
http://192.168.159.128:8081/
输入用户名:admin,密码:123456即可进入。
二、采坑记录
- 在启动azkaban execServer时输出的日志文件报如下错误
报错原因:数据库服务连接不成功。
因为本次使用的MySQL版本为8.0.23,Azkaban默认连接MySQL的驱动为5.1.28,出现连接驱动版本不匹配问题。
解决方法:将Azkaban中lib目录下的驱动更新到8.0.23版本即可(注意web服务也需要更新)。