Linux环境Azkaban安装配置
1. 认识Azkaban
(1) Azkaban介绍
- 任务调度工具
- 官网:https://azkaban.github.io/
- Azkaban是一套简单的任务调度服务,整体包括三部分webserver、dbserver、executorserver。
- Azkaban是linkin的开源项目,开发语言为Java。
- Azkaban是在LinkedIn上创建的批处理工作流作业调度程序,用于运行Hadoop作业。Azkaban通过作业依赖性解决订单,并提供易于使用的Web用户界面来维护和跟踪工作流程。
- 工作流作业:
- flume -> hdfs -> mr -> hive建表 -> 导入load data脚本
2. Azkaban-2.5.0安装配置流程
(1) Azkaban准备:
- 安装包:
- 执行器:azkaban-executor-server-2.5.0.tar.gz
- web服务器:azkaban-web-server-2.5.0.tar.gz
- sql脚本:azkaban-sql-script-2.5.0.tar.gz
- Hadoop
- Hive
(2) 解压Azkaban-2.5.0相关安装包到目标目录下:
tar -zxvf .tar.gz -C 目标目录
(3) 为后续方便,重命名Azkaban相关文件夹:
mv azkaban-web-2.5.0/ server
mv azkaban-executor-2.5.0/ executor
mv azkaban-2.5.0/ azkaban
(4) 导入解压的sql脚本:
- 进入MySQL创建azkaban库:
create database azkaban;
- 切换数据库:
use azkaban;
- 导入脚本:
source /XX/azkaban-2.5.0/create-all-sql-2.5.0.sql;
(5) 生成证书:
- HTTP协议证书生成:
keytool -keystore keystore -alias jetty -genkey -keyalg RSA
- 根据提示输入密钥库口令(密码);
- 再次输入密钥库口令(密码);
- 输入姓名(可不填);
- 输入组织单位名称(可不填);
- 输入组织名称(可不填);
- 输入所在城市或者区域名称(可不填);
- 输入所在的省、市、自治区名称(可不填);
- 输入单位的双字母国家、地区代码(可不填);
- 确认输入的信息(y/n);
- 输入jetty的密钥口令(如果和密钥库口令相同,按回车);
- 此时, keystore已生成在当前文件夹。
- 将keystore移动到server-2.5.0文件夹下:
mv keystore server-2.5.0/
(5) 时间同步配置:
- Azkaban是任务调度工具,所以要求集群本地时间保持一致。
- Linux系统时间网络同步:
vi /etc/crontab
-
# 每天0:00自动进行网络校时,并同时更新BIOS的时间 00 0 * * * root /usr/sbin/ntpdate -u 210.72.145.44;hwclock -w # 每隔一个小时同步一下internet时间,并同时更新BIOS的时间 * */1 * * * root ntpdatetime.nuri.net;hwclock -w 复制代码
- 修改时区:
vi /etc/profile
export TZ='Asia/Shanghai'
- 查看系统时间:
date
- 查看硬件时钟:
hwclock --show
- 系统时间同步硬件时钟:
hwclock --systohc
- 硬件时钟与系统时间:
hwclock --hctosys
(6) 修改配置文件:
- 修改server端配置文件:
- 进入server/conf路径:
vi azkaban.properties
# 服务器UI名称(在服务器上方显示) azkaban.name=Test # 描述信息 azkaban.label=My Local Azkaban # UI颜色 azkaban.color=#FF3601 # 首页路径 azkaban.default.servlet.path=/index # 网络资源目录(绝对路径) web.resource.dir=/opt/module/azkaban-2.5.0/server/web/web/ # 默认时区ID default.timezone.id=Asia/Shanghai # ——修改项 # 用户权限配置 #Azkaban UserManager class # 用户权限管理默认类 user.manager.class=azkaban.user.XmlUserManager # 用户配置文件路径 # 避免在外部启动时报错,修改为绝对路径 user.manager.xml.file=/XXX/conf/azkaban-users.xml # ——修改项 #Loader for projects # 配置文件所在位置 executor.global.properties=conf/global.properties azkaban.project.dir=projects #Azkaban数据库配置 #数据库类型(目前只支持mysql) database.type=mysql mysql.port=3306 # 填自己的主机名 mysql.host=bigdata01 # ——修改项 # Azkaban数据库名 mysql.database=azkaban # ——修改项 # mysql用户名 mysql.user=root # ——修改项 # mysql密码 mysql.password=密码 # ——修改项 # mysql最大连接数 mysql.numconnections=100 # Velocity dev mode velocity.dev.mode=false # Jetty服务器属性 # Azkaban Jetty server properties. # 最大线程数 jetty.maxThreads=25 # Jetty SSL端口 jetty.ssl.port=8443 # Jetty端口 jetty.port=8081 # HTTP协议证书文件名(绝对路径) jetty.keystore=keystore # HTTP协议证书文件密码 jetty.password=/XX/server/keystore密码 # ——修改项 # Jetty主密码 与 keystore文件密码相同 jetty.keypassword=keystore密码 # ——修改项 # SSL文件名(绝对路径) jetty.truststore=/XX/server/keystore # SSL文件密码 jetty.trustpassword=keystore密码 # ——修改项 # 执行服务器属性 # 执行服务器端口 executor.port=12321 # 邮件设置 #发送邮箱 mail.sender=xxxxxxxx@163.com # ——修改项 #发送邮箱smtp地址 mail.host=smtp.163.com # ——修改项 # 发送邮件时显示的名称 mail.user=xxxxxxxx # ——修改项 # 任务失败时发送邮件的地址 job.failure.email=xxxxxxxx@163.com # ——修改项 # 任务成功时发送邮件的地址 job.success.email=xxxxxxxx@163.com # ——修改项 lockdown.create.projects=false # 缓存目录 cache.directory=cache 复制代码
vi azkaban-users.xml
-
# 配置个人管理员登录账户 <user username="ybcarry" password="3150997" roles="admin,metrics"/> 复制代码
- 进入server/conf路径:
- 修改executor端配置文件:
- 进入executor/conf路径:
vi azkaban.properties
#Azkaban #时区 default.timezone.id=Asia/Shanghai # ——修改项 # Azkaban JobTypes Plugins # jobtype 插件所在位置 azkaban.jobtype.plugin.dir=plugins/jobtypes #Loader for projects #绝对路径 executor.global.properties=/XX/executor/conf/global.properties # ——修改项 azkaban.project.dir=projects # 数据库设置 # 数据库类型(目前只支持mysql) database.type=mysql # 数据库端口号 mysql.port=3306 # 数据库IP地址 mysql.host=192.168.20.200 # Azkaban数据库名 mysql.database=azkaban # ——修改项 # mysql用户名 mysql.user=root # ——修改项 # mysql密码 mysql.password=密码 # ——修改项 # mysql最大连接数 mysql.numconnections=100 # Azkaban Executor settings # Azkaban执行器配置 # 最大线程数 executor.maxThreads=50 # 端口号(如修改,请与web服务中一致) executor.port=12321 # 线程数 executor.flow.threads=30 复制代码
- 进入executor/conf路径:
(7) 配置环境变量:
- 修改配置文件:
vi /etc/profile
- 增加以下内容:
export AZKABAN_SERVER_HOME=azkaban server安装路径
export PATH=$PATH:$AZKABAN_SERVER_HOME/bin
export AZKABAN_EXECUTOR_HOME=azkaban executor安装路径
export PATH=$PATH:$AZKABAN_EXECUTOR_HOME/bin
- 声明环境变量:
source /etc/profile
(8) 启动
- 启动server:
azkaban-web-start.sh
- 启动executor:
azkaban-executer-start.sh
- 在浏览器中输入网址:
https://主机IP:8443/
- 输入设置的用户名、密码
- 启动成功