文章目录
安装节点要求:
- hadoop
- hive
- sqoop
- zookeeper
- jdk
1.Azkaban的安装
1.1上传安装包
put c:/azkaban-executor-server-2.5.0.tar.gz
put c:/azkaban-sql-script-2.5.0.tar.gz
put c:/azkaban-web-server-2.5.0.tar.gz
1.2解压
tar -xzvf apache-flume-1.8.0-bin.tar.gz -C /home/hadoop/apps/azkaban
tar -xzvf azkaban-sql-script-2.5.0.tar.gz -C /home/hadoop/apps/azkaban
tar -xzvf azkaban-web-server-2.5.0.tar.gz -C /home/hadoop/apps/azkaban
1.3配置环境变量
sudo vi /etc/profile
将下面内容写到最后
export AZKABAN_EXE_HOME=/home/hadoop/apps/azkaban/azkaban-executor-2.5.0
export PATH=$PATH:$AZKABAN_EXE_HOME/bin
export AZKABAN_WEB_HOME=/home/hadoop/apps/azkaban/azkaban-web-2.5.0
export PATH=$PATH:$AZKABAN_WEB_HOME/bin
重新加载配置文件
source /etc/profile
1.4在mysql中准备azkaban的数据库和表
mysql -uroot -p
创建azkaban数据库
create database azkaban;
使用数据库
use azkaban;
导入sql语句
source /home/hadoop/apps/azkaban/azkaban-2.5.0/create-all-sql-2.5.0.sql;
1.5生成jettey的数字证书
在azkaban-web-2.5.0目录下执行
keytool -keystore keystore -alias jetty -genkey -keyalg RSA
之后标序号的地方才需要输入内容,其他的地方是可选项直接回车即可,这里我将密码设置为hadoop123
①hadoop123
②hadoop123
③CN
④yes
⑤hadoop123
⑥hadoop123
①Enter keystore password:
②Re-enter new password:
What is your first and last name?
[Unknown]:
What is the name of your organizational unit?
[Unknown]:
What is the name of your organization?
[Unknown]:
What is the name of your City or Locality?
[Unknown]:
What is the name of your State or Province?
[Unknown]:
③What is the two-letter country code for this unit?
[Unknown]: CN
④Is CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=CN correct?
[no]: yes
⑤Enter key password for <jetty>
⑥(RETURN if same as keystore password):
1.6设置时区
给三台虚拟机同时发送命令同步到上海的时区
sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
1.7修改配置文件
1.7.1azkaban-executor
cd /home/hadoop/apps/azkaban/azkaban-executor-2.5.0/conf
编辑
vi azkaban.properties
照着下面的的注释修改配置文件,一行一行的来
#Azkaban
default.timezone.id=Asia/Shanghai #时区
# Azkaban JobTypes 插件配置,插件所在位置
azkaban.jobtype.plugin.dir=/home/hadoop/apps/azkaban/azkaban-executor-2.5.0/plugins/jobtypes
#Loader for projects
executor.global.properties=/home/hadoop/apps/azkaban/azkaban-executor-2.5.0/conf/global.properties
azkaban.project.dir=/home/hadoop/projects
#数据库设置
database.type=mysql #数据库类型(目前只支持 mysql)
mysql.port=3306 #数据库端口号
mysql.host=hadoop03 #数据库 IP 地址
mysql.database=azkaban #数据库实例名
mysql.user=root #数据库用户名
mysql.password=123456 #数据库密码
mysql.numconnections=100 #最大连接数
# 执行服务器配置
executor.maxThreads=50 #最大线程数
executor.port=12321 #端口号(如修改,请与 web 服务中一致)
executor.flow.threads=30 #线程数
1.7.2azkaban-web
cd /home/hadoop/apps/azkaban/azkaban-web-2.5.0/conf
编辑
vi azkaban.properties
照着下面的的注释修改配置文件,一行一行的来
#Azkaban Personalization Settings
azkaban.name=MyTestAzkaban #服务器 UI 名称,用于服务器上方显示的名字
azkaban.label=My Local Azkaban #描述
azkaban.color=#FF3601 #UI 颜色
azkaban.default.servlet.path=/index
web.resource.dir=/home/hadoop/apps/azkaban/azkaban-web-2.5.0/web/ #默认根 web 目录
default.timezone.id=Asia/Shanghai #默认时区,已改为亚洲/上海 默认为美国
#Azkaban UserManager class
user.manager.class=azkaban.user.XmlUserManager #用户权限管理默认类
user.manager.xml.file=/home/hadoop/apps/azkaban/azkaban-web-2.5.0/conf/azkaban-users.xml
#用户配置,具体配置参加下文
#Loader for projects # global 配置文件所在位置
executor.global.properties=/home/hadoop/apps/azkaban/azkaban-executor-2.5.0/conf/global.properties
azkaban.project.dir=/home/hadoop/projects
database.type=mysql #数据库类型
mysql.port=3306 #端口号
mysql.host=hadoop03 #数据库连接 IP
mysql.database=azkaban #数据库实例名
mysql.user=root #数据库用户名
mysql.password=123456 #数据库密码
mysql.numconnections=100 #最大连接数
# Velocity dev mode
velocity.dev.mode=false
# Jetty 服务器属性.
jetty.maxThreads=25 #最大线程数
jetty.ssl.port=8443 #Jetty SSL 端口
jetty.port=8081 #Jetty 端口
jetty.keystore=/home/hadoop/apps/azkaban/azkaban-web-2.5.0/keystore #SSL 文件名
jetty.password=hadoop123 #SSL 文件密码
jetty.keypassword=hadoop123 #Jetty 主密码 与 keystore 文件相同
jetty.truststore=/home/hadoop/apps/azkaban/azkaban-web-2.5.0/keystore #SSL 文件名
jetty.trustpassword=hadoop123 # SSL 文件密码
# 执行服务器属性
executor.port=12321 #执行服务器端口
# 邮件设置(可略过)
mail.sender=[email protected] #发送邮箱
mail.host=smtp.163.com #发送邮箱 smtp 地址
mail.user=xxxxxxxx #发送邮件时显示的名称
mail.password=********** #邮箱密码
job.failure.email=[email protected] #任务失败时发送邮件的地址
job.success.email=[email protected] #任务成功时发送邮件的地址
lockdown.create.projects=false #
cache.directory=cache #缓存目录
修改用户配置
vi azkaban-users.xml
就是在原有的文件上加上一行自己的用户名和权限,我这里用户名为hadoop密码为hadoop123
<azkaban-users>
<user username="azkaban" password="azkaban" roles="admin" groups="azkaban" />
<user username="metrics" password="metrics" roles="metrics"/>
<user username="hadoop" password="hadoop123" roles="admin,metrics" />
<role name="admin" permissions="ADMIN" />
<role name="metrics" permissions="METRICS"/>
</azkaban-users>
1.8添加derby依赖
找到自己的jdk路径
cd $JAVA_HOME
找到derby jar包路径
cd db/lib
将jar分别发送到azkaban-executor-2.5.0/lib/与azkaban-web-2.5.0/lib/下
cp derby.jar /home/hadoop/apps/azkaban/azkaban-executor-2.5.0/lib/
cp derby.jar /home/hadoop/apps/azkaban/azkaban-web-2.5.0/lib/
1.9启动
启动 web 服务器
azkaban-web-start.sh
启动执行服务器
azkaban-executor-start.sh
访问这个页面(最好使用谷歌,火狐):
-
注意一定是https而不是http
-
如果弹出不安全警告,直接在高级选项里面强制进入
接着弹出登录页面
直接输入用户名和密码登录即可,我设置的是用户名hadoop,密码hadoop123
2.实战演示
2.1执行普通命令
进入页面
在windows上新建一个command.job的文件写入以下内容
#command.job
type=command
command=echo 'hello azkaban'
写好之后直接右键打成zip格式的包(注意这个文件要放在压缩文件的根目录下即压缩文件里面不能有文件夹)
然后点击页面上的上传按钮
将文件上传上去
然后点击Execute Flow
再点击Execute直接执行
直接点击Continue
出现如图所示绿色的command按钮代表执行完成,可以在Job List里面查看日志信息
点击Details
可以看到hello azkaban
接着回到刚才的页面再测试一下定时执行,一样的点击Execute Flow
点击左下角的Schedule
进行设置
这里的时间是值Linux上的时间,可以进行查看
date
设置好时间后点击Continue
可以在History看到我们的命令已经按时执行过了
2.2执行脚本文件
与上面一样自行创建脚本文件
hello.sh
#!/bin/bash
echo 'hello' > /home/hadoop/helloAzkaban.txt
command.job
#command.job
type=command
command=sh hello.sh
写好之后打成zip包,再新建一个test02,重复上面的步骤执行任务
执行完成后可以在根目录上看到我们的文件
cd ~
cat helloAzkaban.txt
2.3执行依赖
stepone.job
# stepone.job
type=command
command=echo stepone
steptwo.job
# steptwo.job
type=command
dependencies=stepone,stepthree
command=echo steptwo
stepthree.job
# stepthree.job
type=command
command=echo stepthree
然后跟上面一样的,新建test03,并对任务进行执行,可以看到steptwo是依赖于stepone与stepthree的,可以在Job List中查看它们打印的信息