一个完整的数据分析系统通常由大量的任务单元组成:shell脚本程序,java程序,mapreduce程序,hive脚本等。各任务单元之间存在时间先后和依赖关系,所以需要工作流调度。
简单的任务调度可以用linux的crontab来定义,复杂的调度可以用oozie、azkaban。
azkaban安装配置
需要安装:Azkaban web服务器,Azkaban执行服务器,Mysql
最好上传安装到hive、sqoop的机器上方便命令的执行。
安装配置步骤
- 上传解压
mkdir azkaban
tar -zxvf azkaban-web-server-2.5.0.tar.gz -C azkaban
tar -zxvf azkaban-executor-server-2.5.0.tar.gz -C azkaban
tar -zxvf azkaban-sql-script-2.5.0.tar.gz -C azkaban
mv azkaban-web-2.5.0/ server
mv azkaban-executor-2.5.0/ executor
- 导入sql脚本
mysql -u root -p
show databases;
create database azkaban;
use azkaban;
source /home/hadoop/azkaban/azkaban-2.5.0/create-all-sql-2.5.0.sql
- ssl证书配置
keytool -keystore keystore -alias jetty -genkey -keyalg RSA
设置密码123456,按提示操作
cp keystore server/
- 方便工作流调度,统一时间
tzselect
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
date mmddHHMM /月日时分
hwclock -w
- 修改配置文件(3个文件)
server/conf/azazkaban.properties
vi azkaban.properties
#Azkaban Personalization Settings
azkaban.name=Test
azkaban.label=My Local Azkaban
azkaban.color=#FF3601
azkaban.default.servlet.path=/index
web.resource.dir=web/
default.timezone.id=Asia/Shanghai
#Azkaban UserManager class
user.manager.class=azkaban.user.XmlUserManager
user.manager.xml.file=conf/azkaban-users.xml
#Loader for projects
executor.global.properties=conf/global.properties
azkaban.project.dir=projects
database.type=mysql
mysql.port=3306
mysql.host=localhost
mysql.database=azkaban
mysql.user=root
mysql.password=root
mysql.numconnections=100
# Velocity dev mode
velocity.dev.mode=false
# Azkaban Jetty server properties.
jetty.maxThreads=25
jetty.ssl.port=8443
jetty.port=8081
jetty.keystore=keystore
jetty.password=123456
jetty.keypassword=123456
jetty.truststore=keystore
jetty.trustpassword=123456
# Azkaban Executor settings
executor.port=12321
# mail settings
mail.sender=
mail.host=
job.failure.email=
job.success.email=
lockdown.create.projects=false
cache.directory=cache
server/conf/azkaban-user.xml
<azkaban-users>
<user username="azkaban" password="azkaban" roles="admin" groups="azkaba
n" />
<user username="metrics" password="metrics" roles="metrics"/>
<user username="admin" password="admin" roles="admin,metrics"/>
<role name="admin" permissions="ADMIN" />
<role name="metrics" permissions="METRICS"/>
</azkaban-users>
executor/conf/azkaban.properties
#Azkaban
default.timezone.id=Asia/Shanghai
# Azkaban JobTypes Plugins
azkaban.jobtype.plugin.dir=plugins/jobtypes
#Loader for projects
executor.global.properties=conf/global.properties
azkaban.project.dir=projects
database.type=mysql
mysql.port=3306
mysql.host=localhost
mysql.database=azkaban
mysql.user=root
mysql.password=root
mysql.numconnections=100
# Azkaban Executor settings
executor.maxThreads=50
executor.port=12321
executor.flow.threads=30
启动
1.server
bin/azkaban-web-start.sh
敲回车转向后台
或者后台启动:nohup bin/azkaban-web-start.sh 1>/tmp/azstd.out 2>/tmp/azerr.out &
2.executor
bin/azkaban-executor-start.sh
然后在浏览器中输入:https://mini1:8443
可以upload任务,打包上传即可
任务类型可以是:单一job,工作流,hdfs操作任务,mapreduce任务,hive脚本任务。