Azkaban的安装 搭建(solo server mode 也就是单机模式啦)

Azkaban

azkaban是一个任务调度软件,任务调度工具。

Azkaban的工作流的调度

因为最近在做一个利用sqoop进行mysql的数据导入到hdfs的工作。本来就是一个简简单单的导入工作。不知道为什么,就突然,聊着聊着突然就要做自动调度了
在这里插入图片描述
嗯,自动调度就自动调度吧。。。

一般linux都自带有crontab,这个东西可以做定时任务的,可以在里面直接运行shell脚本。这么一想,美滋滋啊!
在这里插入图片描述
所以首先就考虑到了使用crontab来进行对任务的自动调度。

嗯,做下前期工作,脚本大概长这样
脚本a

sqoop --import --xxxxxxxx

脚本b

hive -f xxx.sql

脚本c (脚本c就是将脚本a和脚本b拼接在一起)

脚本a(sqoop --import -xxxxxx)
脚本b(hive -f xxx.sql)

注:脚本b要使用脚本a的数据,要对脚本b的数据二次处理。

准备用crontab来调度我的脚本的时候
0 2 * * * sh 脚本c.sh
发现当到了指定的时间点,任务并不是想象当中先执行完了脚本a,然后再执行脚本b,脚本a和脚本b几乎是同时在执行,因为脚本a是一个mapreduce任务,脚本b也是一个mapreduce任务,所以当脚本执行的时候脚本a将任务提交到yarn之后。脚本b不会等待脚本a的mapreduce任务结束完毕,才执行。会在脚本a提交完任务的时候就执行了。
重点脚本b要依赖脚本a的处理完的mapreduce的数据啊!!!
在这里插入图片描述
所以crontab这个方案是行不通的。(主要是里面的shell脚本要能够实现工作流的调度,这个shell脚本精通的大佬应该可以实现。)

azkaban就可以实现这个工作流的调度了,别问我为什么,我就是知道,嗯,因为我以前用过。。。
在这里插入图片描述
不多bb,azkaban搭建走起来

开始搭建

然后就是linux服务器上要安装mysql
(不会安装mysql的同学请参见我的另外一篇博客yum 安装mysql)

  1. linux创建一个目录
mkdir -p /opt/software/azkaban
  1. 将azkaban的压缩包上传到这个文件目录上
  2. 将这些压缩包解压
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
  1. 进入mysql中创建一个azkaban的数据库
    注意,这里要用到azkaban的数据库文件,看好路径,是自己的路径,别抄我的路径。。。
mysql -uusername -ppassword
mysql > create database azkaban;
mysql > use azkaban;
Database changed
mysql > source /opt/software/azkaban/azkaban-2.5.0/create-all-sql-2.5.0.sql
  1. 创建SSL配置
keytool -keystore keystore -alias jetty -genkey -keyalg RSA

注意
在这里插入图片描述
如果jdk没有安装好,是不会有keytool的这个工具的。
在这里插入图片描述
输入完毕之后,可以在这个目录下面看到一个keystore的文件。
将这个keystore文件移到azkaban的web-server的根目录下面

mv keystore /opt/software/azkaban/azkaban-web-2.5.0

配置时区

将服务器节点上的时区配置成为Asia/Shanghai

tzselect

输入的顺序(按数字就好了)
5 选中Asia
9 选中China
1 选中Beijing Time
1 选中yes

选择完毕之后就是如下的界面了:
在这里插入图片描述
在这里插入图片描述
接下来拷贝时区文件,覆盖本地的时区配置

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

配置azkaban web服务器

进入到azkaban-web-server-2.5.0

cd /opt/software/azkaban/azkaban-web-2.5.0/conf

修改azkaban.properties

vim 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=America/Los_Angeles               这个地方要修改成 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=azkaban											|
mysql.password=azkaban										|
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=password									|
jetty.keypassword=password								|---这个地方的密码就是利用keytool工具设置的
jetty.truststore=keystore								|
jetty.trustpassword=password						----

# 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

接着修改azkaban-user.xml

<azkaban-users>
	<user username="azkaban" password="azkaban" roles="admin" groups="azkaban" />
	<user username="metrics" password="metrics" roles="metrics"/>
	
	<role name="admin" permissions="ADMIN" />
	<role name="metrics" permissions="METRICS"/>
</azkaban-users>

中间空白的地方加上一行

<user username= "admin" password="admin" roles="admin,metrics" />
到时候进入azkaban的任务web UI界面的时候就可以用账号是admin,和密码admin登录了

配置executor-executor的配置

vim /opt/software/azkaban/azkaban-executor-2.5.0/azkaban.properties

#Azkaban
default.timezone.id=America/Los_Angeles							修改时区

# 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=azkaban2											|-----修改成自己的配置信息
mysql.user=azkaban												|
mysql.password=azkaban											|
mysql.numconnections=100									----

# Azkaban Executor settings
executor.maxThreads=50
executor.port=12321
executor.flow.threads=30

启动azkaban

然后就是启动azkaban了
进入azkaban的目录

cd /opt/software/azkaban/azkaban-web-2.5.0				先到这个目录里面来
bin/azkaban-web-start.sh												启动azkaban web服务器

cd /opt/software/azkaban/azkaban-executor-2.5.0        启动azkaban executor
bin/azkaban-executor-start.sh
注意!!!

一定要在这两个目录下面执行azkaban的服务,不然会导致失败的,会报错的(你怕不怕?手动滑鸡)
在这里插入图片描述
然后打开浏览器,在浏览器里面输入

https://主机名称:8443

(http一定要加s,一定要加s,一定要加s )
https,不加要被打屁股
最后就可以看到azkaban的登录界面了
在这里插入图片描述
然后输入登录名admin,密码admin就可以成功进入azkaban了!!!(终于写到这里了,累死宝宝了)

最后,如果有什么建议或者是问题,我们可以一起好好交流鸭~

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值