您的位置:首页 > 运维架构

Azkaban的环境搭建

2017-04-17 22:44 309 查看

Azkaban的环境搭建

因为最近工作的需要,需要搭建一个可以支持Hadoop任务的调度系统,于是博主开始了Azkaban的挖坑活动。

Azkaban是一种类似于Oozie的工作流控制引擎,可以用来解决多个Hadoop计算任务之间的依赖关系问题。

本文分为如下几个部分说明搭建的过程:

搭建开发环境

导入sql文件

配置 azkaban-exec-server

配置azkaban-web-server*

搭建开发环境

准备的资源:

jdk1.7

ant(用来编译plugins)

azkaban-2.6.4.tar.gz

azkaban-plugins-2.6.4.tar.gz

选型:

我们选用2.6.4这样的旧版本主要是新版本编译的时候总是出现奇怪的问题。

编译azkaban-2.6.4.tar.gz

解压缩azkaban-2.6.4.tar.gz,放到你自己的${AZKABAN_HOME_COMPILE}目录下,在${ AZKABAN_HOME_COMPILE }目录下执行
./gradlew distTar

编译过程会出现createVersionFile的问题,我比较暴力的解决方法是去掉这一块的代码
比如把每一个project中的
task copy(dependsOn: [
'createVersionFile',
'copyLibs',
'copyDeps',
'copyPackage']) {
}
替换成
task copy(dependsOn: [
'copyLibs',
'copyDeps',
'copyPackage']) {
}

接下来去执行编译,编译完成后会在build/distributions下出现如下文件:
azkaban-exec-server-2.6.4.tar.gz  azkaban-solo-server-2.6.4.tar.gz  azkaban-web-server-2.6.4.tar.gz
azkaban-migration-2.6.4.tar.gz    azkaban-sql-2.6.4.tar.gz


编译azkaban-plugins-2.6.4.tar.gz

解压缩azkaban-plugins-2.6.4.tar.gz到属于你自己的${AZKABAN_PLUGINS_COMPILE}目录下

根目录下执行ant会报错,我们先去手动生成version文件:${ AZKABAN_PLUGINS_COMPILE }/dist/package.version

再去执行ant,就会编译成功

在${ AZKABAN_PLUGINS_COMPILE }/dist/下就有编译成功的项目


导入sql文件

新建立一个azkaban数据库

把azkaban-sql-2.6.4中的sql文件数据导入到你的数据库中

配置 azkaban-exec-server

1.修改${AZKABAN_EXECUTOR_SERVER}/conf/azkaban.properties

default.timezone.id=Asia/Shanghai
设置数据库,与Web Server中的数据库设置一致

2.在${AZKABAN_EXECUTOR_SERVER}目录下创建logs

3.${AZKABAN_EXECUTOR_SERVER}目录执行
bin/start-exec.sh


配置azkaban-web-server

1.keytool -keystore keystore -alias azkaban -genkey -keyalg RSA

conf目录下执行
keytool -keystore keystore -alias azkaban -genkey -keyalg RSA

我按照网上一个教程输入的信息,密码输入password

具体执行效果如下:
Enter keystore password:
Re-enter new password:
What is your first and last name?
[Unknown]:  azkaban.test.com
What is the name of your organizational unit?
[Unknown]:  azkaban
What is the name of your organization?
[Unknown]:  test
What is the name of your City or Locality?
[Unknown]:  beijing
What is the name of your State or Province?
[Unknown]:  beijing
What is the two-letter country code for this unit?
[Unknown]:  CN
Is CN=azkaban.test.com, OU=azkaban, O=test, L=beijing, ST=beijing, C=CN correct?
[no]:  yes

Enter key password for <azkaban>
(RETURN if same as keystore password):


2.配置azkaban.properties文件

修改default.timezone.id=Asia/Shanghai

修改mysql配置

修改keystore配置
jetty.keystore=conf/keystore
jetty.password=password
jetty.keypassword=password
jetty.truststore=conf/keystore
jetty.trustpassword=password

指定executor的ip
executor.host=10.12.0.200


3.${ AZKABAN_HOME_COMPILE}下生成logs文件夹

4.开启服务

bin/start-web.sh

访问WEBUI【注意地址是https的,默认的帐号为azkaban/azkaban】 https://10.12.0.200:8443[/code] 
启动executor和server之后,就可以在WEBUI的界面去添加job执行job了。

为了方便大家的学习,我把github上的源码和我编译后的资源放到了下面的下载链接。

我上传的官网源码文件:

想要编译后的文件的可以私信我,我给你们发链接
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息