要求:由于这里azkaban要调度hive作业,可能存在调度sqoop等作业,因此需要安装在有这些节点的机器上
mkdir /home/hadoop/azkaban
# 上传3个jar包到该目录下
[hadoop@mycat01 azkaban]$ ll /home/hadoop/azkaban
-rwxrw-r-- 1 hadoop hadoop 11157302 Mar 28 08:57 azkaban-executor-server-2.5.0.tar.gz
-rwxrw-r-- 1 hadoop hadoop 1928 Mar 28 08:57 azkaban-sql-script-2.5.0.tar.gz
-rwxrw-r-- 1 hadoop hadoop 11989669 Mar 28 08:57 azkaban-web-server-2.5.0.tar.gz
# 修改所有者数组
sudo chown hadoop:hadoop azkaban-executor-server-2.5.0.tar.gz
sudo chown hadoop:hadoop azkaban-sq-script-2.5.0.tar.gz
sudo chown hadoop:hadoop azkaban-web-server-2.5.0.tar.gz
# 添加执行权限
chmod u+x azkaban-executor-server-2.5.0.tar.gz
chmod u+x azkaban-sql-script-2.5.0.tar.gz
chmod u+x azkaban-web-server-2.5.0.tar.gz
# 解压
tar -zxvf azkaban-executor-server-2.5.0.tar.gz
tar -zxvf azkaban-sql-script-2.5.0.tar.gz
tar -zxvf azkaban-web-server-2.5.0.tar.gz
sudo vim /etc/profile
....
export AZKABAN_EXEC_HOME=/home/hadoop/azkaban/azkaban-executor-2.5.0
export AZKABAN_WEB_HOME=/home/hadoop/azkaban/azkaban-web-2.5.0
export PATH=$PATH:$AZKABAN_EXEC_HOME/bin:$AZKABAN_WEB_HOME/bin
使配置生效
source /etc/profile
cd /home/hadoop/azkaban/azkaban-web-2.5.0
keytool -keystore keystore -alias jetty -genkey -keyalg RSA
# 第一个 设置jetty数字证书密码
# 第二个 确认jetty数字证书密码
# ... 私人信息的(除国家外的都可以直接回车)
# (two-letter country)设置国家的 直接输入 CN
# 确认 yes
# 设置jetty验证密码: 可以和前面一致
# 确认jetty验证密码
mysql> create database azkabandb;
mysql> use azkabandb;
mysql> source /home/hadoop/azkaban/azkaban-2.5.0/create-all-sql-2.5.0.sql
default.timezone.id=Asia/Shanghai # 设置为上海时区
# Azkaban JobTypes Plugins 插件路径,修改为绝对路径
azkaban.jobtype.plugin.dir=/home/hadoop/azkaban/azkaban-executor-2.5.0/plugins/jobtypes
#Loader for projects azkaban 项目加载路径,全部改成绝对路径
executor.global.properties=/home/hadoop/azkaban/azkaban-executor-2.5.0/conf/global.properties
azkaban.project.dir=/home/hadoop/azkaban/projects
database.type=mysql # 存储数据库类型
mysql.port=3306 # 数据库端口
mysql.host=mycat01 # 主机名
mysql.database=azkabandb # 数据库(这个就是刚刚配置的数据库)
mysql.user=root # 用户名
mysql.password=miku # 密码
mysql.numconnections=100 # 最大连接数
# Azkaban Executor settings
executor.maxThreads=50 # 最大开启的线程数
executor.port=12321 # executor端口
executor.flow.threads=30 # 工作流线程数 30
#Azkaban Personalization Settings
azkaban.name=azkaban
azkaban.label=My Local azkaban
azkaban.color=#188EEE
azkaban.default.servlet.path=/index
web.resource.dir=/home/hadoop/azkaban/azkaban-web-2.5.0/web/ # 需要修改为全路径
default.timezone.id=Asia/Shanghai # 设置时区
#Azkaban UserManager class 修改全路径
user.manager.class=azkaban.user.XmlUserManager
user.manager.xml.file=/home/hadoop/azkaban/azkaban-web-2.5.0/conf/azkaban-users.xml
#Loader for projects
executor.global.properties=/home/hadoop/azkaban/azkaban-executor-2.5.0/conf/global.properties
azkaban.project.dir=/home/hadoop/azkaban/projects
database.type=mysql # 存储数据库配置
mysql.port=3306
mysql.host=mycat01
mysql.database=azkabandb
mysql.user=root
mysql.password=miku
mysql.numconnections=100
# Velocity dev mode
velocity.dev.mode=false
# Azkaban Jetty server properties. jetty认证配置,该用全路径用全路径
jetty.maxThreads=25
jetty.ssl.port=8443
jetty.port=8081
jetty.keystore=/home/hadoop/azkaban/azkaban-web-2.5.0/keystore
jetty.password=azkaban # jetty 密码
jetty.keypassword=azkaban # jetty认证密码(数字证书密码)
jetty.truststore=/home/hadoop/azkaban/azkaban-web-2.5.0/keystore # jetty认证文件存储位置
jetty.trustpassword=azkaban # jetty认证密码(数字证书密码)
# Azkaban Executor settings executor端口
executor.port=12321
# mail settings 邮件 --此处这里就不配置了
mail.sender=
mail.host=
job.failure.email=
job.success.email=
lockdown.create.projects=false
cache.directory=cache
<azkaban-users>
<user username="azkaban" password="azkaban" roles="admin" groups="azkaban" />
<user username="metrics" password="metrics" roles="metrics"/>
<user username="mycat" password="mikumoge" roles="admin,metrics"/>
<role name="admin" permissions="ADMIN" />
<role name="metrics" permissions="METRICS"/>
azkaban-users>
derby.jar 这个jar包在jdk中有
cp /opt/jdk1.8.0_73/db/lib/derby.jar /home/hadoop/azkaban/azkaban-executor-2.5.0/lib
cp /opt/jdk1.8.0_73/db/lib/derby.jar /home/hadoop/azkaban/azkaban-web-2.5.0/lib
azkaban-executor-start.sh # 12321端口,默认前台启动,可以使用nohup
azkaban-web-start.sh # 8443端口,默认前台启动,可以使用nohup
https://mycat01:8443
以.job为扩展名
的文件,如test01.job
,编辑内容如下:type=command
command=echo hello
必须zip压缩
—不要有顶级目录)压缩文件名和刚刚的job文件名称保持一致(test01.zip)https://mycat01:8443/index
点击+ Create Project
: 创建一个project:
Create Project
Name xxx
Description xxxx
test01
test echo hello
Last modified on 2019-03-30 18:52:48 by mycat.
创建成功,项目点击进去
`Project test01`
`Flows` `Permissions` `Project Logs`
`^ echohello` `Execute Flow` `Executions` `Summary`
echohello `Run Job` `Run With Dependencies`
点击 Run Job
按钮,弹出Execute Flow xxx
(执行某某工作流)窗口
Flow View # 工作流视图
Notification # 成功通知
Failure Options # 失败通知
Concurrent # 设置并发行相关的
Flow Parameters # 键值对形式,在job文件中使用 $key 形式调用
Shedule # 定时调度配置 定时调度
Execute # 立即执行
其中定时调度中Schedule Flow Options
可以进行类似crontab
的配置(分时日月周)
type=command # 这个一般是定的
dependencies=job文件名,job文件名 # 配置依赖,不要扩展名
command=具体的命令 # 如果用到文件的话,可直接放到同级目录下