Azkaban


1、Azkaban

官网:https://azkaban.github.io/
Azkaban是一款开源工作流管理器

Azkaban是在LinkedIn上创建的批处理工作流作业调度程序,用于运行Hadoop作业

Azkaban通过作业依赖性解决订单,并提供易于使用的Web用户界面来维护和跟踪您的工作流程

工作流作业:
Flume->HDFS->MR->Hive建表->导入load data脚本
自动化调度

2、Azkaban安装部署

1)解压
首先将压缩包放进/root/hd/azkaban里面
azkaban-executor-server-2.5.0.tar.gz –>executor
azkaban-sql-script-2.5.0.tar.gz –>azkaban-2.5.0
azkaban-web-server-2.5.0.tar.gz –>server
tar -zxvf *.tar.gz

2)进入MySQL创建Azkaban库,然后将解压好的脚本导入
create database azkaban;
use azkaban;
source /root/hd/azkaban/azkaban-2.5.0/create-all-sql-2.5.0.sql;

3)生成证书(https生成器)
keytool -keystore keystore -alias jetty -genkey -keyalg RSA
(回车,不用填,到那个CN=Unknown那行下面有个判断,输入y,后面一行继续回车)
将keystore移动到server文件夹下

4)时间同步配置
任务调度,所以和本地时间保持一致
开启交互窗口:
sudo date -s ”
hwclock -w

5)修改server端配置文件
cd /root/hd/azkaban/server/conf
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

# azkaban目前只支持mysql
database.type=mysql
mysql.port=3306
# 当前主机名
mysql.host=hsiehchou121
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=@qq.com
mail.host=smtp.qq.com
job.failure.email=
job.success.email=

lockdown.create.projects=false

cache.directory=cache

azkaban-users.xml

<azkaban-users>
    <user username="azkaban" password="azkaban" roles="admin" groups="azkaban" />
    <user username="metrics" password="metrics" roles="metrics"/>
    <!--增加这一行  role管理员权限:admin-->
    <user username="admin" password="admin" roles="admin,metrics"/> 

    <role name="admin" permissions="ADMIN" />
    <role name="metrics" permissions="METRICS"/>
</azkaban-users>

6)修改excutor端配置文件

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=hsiehchou121
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

3、Azkaban实战

HDFS->Hive建表->导入

1)job1.job

job1.job
type=command
command=echo ‘Hello World!’
打包成zip包上传到azkaban,执行

2)job2(a.job和b.job)

a.job
type=command
command=echo ‘li’

b.job
type=command
dependencies=a
command=echo ‘666’
打包成zip包上传到azkaban,执行

3)startyarn.job

startyarn.job
type=command
command=/root/hd/hadoop-2.8.4/sbin/start-yarn.sh
打包成zip包上传到azkaban,执行

4)mapreduce.job

mapreduce.job
type=command
command=/root/hd/hadoop-2.8.4/bin/hadoop jar hadoop-mapreduce-examples-2.8.4.jar wordcount /wc /wc/out
打包成zip包上传到azkaban,执行

5)Hive操作

hive.sql
use default;
create table azhive(id int, name string) row format delimited fields terminated by ‘\t’;
load data inpath ‘/hsiehchou.txt’ into table azhive;

hivef.job
type=command
command=/root/hd/hive/bin/hive -f ‘hive.sql’

打包成zip包上传到Azkaban,执行


文章作者: 谢舟
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 谢舟 !
 上一篇
HBase基础 HBase基础
1、hbasegoogle:gfs –> hdfsmapreduce –> mapreducebigtable –> hbase Apache HBase™是Hadoop数据库,是一个分布式,可扩展的大数据存储 当您需要对
2019-03-12
下一篇 
Sqoop Sqoop
1、SqoopFlume数据采集 采集日志数据Sqoop数据迁移 HDFS->MySQLAzkaban任务调度 Flume->HDFS->Shell->Hive->SQL->BI Sqoop数据迁移=Ma
2019-03-04
  目录