azkaban安装篇

安装篇

1.下载资料

Azkaban官网上下载3.X的源码资料

cd /opt

下载命令:git clone https://github.com/azkaban/azkaban.git (2017-12-24克隆的版本为:3.39.0-17-g7b7833a)

执行命令将azkaban克隆本地opt目录下

2.编译

进入到Azkaban的根目录下面进行编译,执行./gradlew build(这里需要等待一些时间

 

 

编译成功会显示下图界面

 

编译好的文件都放在build/distributions/目录

执行 cp –r azkaban-*/build/distributions/*.tar.gz /opt/ 拷贝编译好的tar.gz包

 

3.配置mysql

1建库,同时授权

root登录mysql

mysql -uroot -p123456

创建azkaban数据库

CREATE DATABASE azkaban;

授权

Grant all on azkaban.* to azkaban@'master'  identified by 'azkaban';

Grant all on azkaban.* to azkaban@'localhost'  identified by 'azkaban';

Grant all on azkaban.* to azkaban@'%' identified by 'azkaban';

 

2)运行相关脚本建表

解压azkaban-db-3.39.0-17-g7b7833a.tar.gz

tar –zxvf azkaban-db-3.39.0-17-g7b7833a.tar.gz

azkaban用户登录

mysql -uazkaban –pazkaban

mysqlazkaban库里source以下sql脚本,建表

 

4.配置Azkaban Web Server

1)解压azkaban-web-server-3.0.0.tar.gz到指定目录

tar -zxvf azkaban-web-server-3.39.0-17-g7b7833a.tar.gz –C /opt/  

一般克隆后没有conf目录需要从azkaban-solo-server-3.39.0-17-g7b7833a copy

此时还需要copy plugins/目录

 

 

2)配置jetty ssl

到其web目录下运行

keytool -keystore keystore -alias jetty -genkey -keyalg RSA

Enter keystore password:  password

What is your first and last name? 您的名字与姓氏是什么?

[Unknown]:  jetty.mortbay.org

What is the name of your organizational unit?您的组织单位名称是什

[Unknown]:  Jetty

What is the name of your organization?您的组织名称是什么?

[Unknown]:  Mort Bay Consulting Pty. Ltd.

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]:

Is CN=jetty.mortbay.org, OU=Jetty, O=Mort Bay Consulting Pty. Ltd.,

L=Unknown, ST=Unknown, C=Unknown correct?正确吗?

[no]:  yes

Enter key password for <jetty>

(RETURN if same as keystore password):  password

注意:这里要设置的密码比较多,为了防止弄混,建议全用一样的密码,至于要让填写信息的,直接回车即可,会返回unknown

完成上述工作后,将在当前目录生成 keystore 证书文件

 

3修改web控制文件

进入web服务器安装目录conf目录,修改azkaban.properties文件

命令vim azkaban.properties

 

内容说明及更改如下:

#Azkaban Personalization Settings

azkaban.name=Test                                                       #服务器UI名称,用于服务器上方显示的名字

azkaban.label=My Local Azkaban                               #描述

azkaban.color=#FF3601                                                #UI颜色

azkaban.default.servlet.path=/index                         #

web.resource.dir= /opt/azkaban-web-server-3.39.0-17-g7b7833a/web/

#默认根web目录,建议改成全路径,可以在任何地方直接运行,下同

default.timezone.id=Asia/Shanghai                           #默认时区,已改为亚洲/上海 默认为美国

 

#Azkaban UserManager class

user.manager.class=azkaban.user.XmlUserManager   #用户权限管理默认类

user.manager.xml.file=/opt/azkaban-web-server-3.39.0-17-g7b7833a/conf/azkaban-users.xml

#用户配置,具体配置参考下文

#Loader for projects

executor.global.properties=/opt/azkaban-web-server-3.39.0-17-g7b7833a/conf/global.properties

# global配置文件所在位置

azkaban.project.dir=projects

database.type=mysql                                                        #数据库类型

mysql.port=3306                                                                #端口号

mysql.host=x.x.x.x                                                       #数据库连接IP

mysql.database=azkaban                                                       #数据库实例名

mysql.user=azkaban                                                               #数据库用户名

mysql.password=azkaban                                                      #数据库密码

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=/opt/azkaban-web-server-3.39.0-17-g7b7833a/web/keystore     #SSL文件名,使用keytool生成的keystone文件

jetty.password=azkaban                                                            #SSL文件密码

jetty.keypassword=azkaban                                                      #Jetty主密码 与 keystorm文件相同

jetty.truststore=keystore                                                             #SSL文件名

jetty.trustpassword=azkaban                                                    # SSL文件密码

 

# 执行服务器属性

executor.port=12321                                                               #执行服务器端口

 

# 邮件设置(如果不用邮件报警功能,这里可以不设置)

mail.sender=                                                        #发送邮箱

mail.host=                                                                   #发送邮箱smtp地址

mail.user=                                                                        #发送邮件时显示的名称

mail.password=                                                           #邮箱密码

job.failure.email=     #任务失败时发送邮件的地址,一般不设置,在任务运行时设置,下同

job.success.email=                                             #任务成功时发送邮件的地址

lockdown.create.projects=false                                           #

cache.directory=cache                                                            #缓存目录

 

4用户配置(可以不做另外设置)

进入azkaban web服务器conf目录,修改azkaban-users.xml,这个文件存放用户登录信息以及权限信息。同时增加管理员用户admin

<azkaban-users>

        <user username="azkaban" password=" azkaban" roles="admin" groups="azkaban" />

        <user username="metrics" password="metrics" roles="metrics"/>

        <user username=”admin” password=”admin” roles=”admin”/>

        <role name="admin" permissions="ADMIN" />

        <role name="metrics" permissions="METRICS"/>

</azkaban-users>

5)配置plugins

Azkaban 3.0至后版本中增加了一个新的安全性增强功能,默认情况下,Azkaban作业现在可以作为提交用户或流的user.to.proxy运行。这确保了Azkaban利用Linux权限安全机制,并在操作上简化了资源监视和可见性。

  Execute.as.user默认设置为true。在需要的情况下,也可以在azkaban-plugincommonprivate.properties中将其配置为false

  所以将copyplugins/ jobtypes/ commonprivate.properties 文件,添加Execute.as.user=false。

 

  如果需要使用这个安全策略,则需要配置azkaban.native.lib = execute-as-user.c文件所在的路径[参见http://azkaban.github.io/azkaban/docs/latest/#jobtype-plugins Plugin Configurations  Execute-As-User]

  注意execute-as-user.c文件gcc编译见下图:

 

 

5启动web server

web目录下创建日志文件夹

cd /opt/azkaban-web-server-3.39.0-17-g7b7833a

mkdir logs 用来存放程序运行的日志文件

启动web: sh bin/azkaban-web-start.sh

查看是否启动成功首先jps查看是否含有azkaban web server进程然后访问网页(用火狐或者谷歌)https://主机ip:8081

 

 

输入之前在azkaban-users.xml中设置好的用户名密码进入即可。

 

自此完成azkabanweb-server设置与启动还需要安装执行服务exec-server

5 配置Azkaban Executor Server

1)解压azkaban-exec-server-3.39.0-17-g7b7833a.tar.gz到指定opt目录

tar -zxvf azkaban-exec-server-3.39.0-17-g7b7833a.tar.gz –C /opt/

1) cp –r azkaban-solo-server-3.39.0-17-g7b7833a/plugins/jobtypes azkaban-exec-server-3.39.0-17-g7b7833a/

a) 修改commonprivate.properties文件中参数为false

2)修改执行控制文件

cd azkaban-exec-server-3.39.0-17-g7b7833a/conf/

vi azkaban.properties

#Azkaban

default.timezone.id=Asia/Shanghai

# Azkaban JobTypes

azkaban.jobtype.plugin.dir=/opt/azkaban-exec-server-3.39.0-17-g7b7833a/plugins/jobtypes

#Loader for projects

executor.global.properties=/opt/azkaban-exec-server-3.39.0-17-g7b7833a/conf/global.properties

azkaban.project.dir=projects

#database

database.type=mysql

mysql.port=3306

mysql.host=localhost

mysql.database=azkaban

mysql.user=azkaban

mysql.password=azkaban

mysql.numconnections=100

#executor set

executor.maxThreads=50

executor.port=12321

executor.flow.threads=30

3启动web server

cd azkaban-exec-server-3.39.0-17-g7b7833a/

mkdir logs 用来存放程序运行的日志文件

启动executor server服务: sh bin/azkaban-executor-start.sh

异常azkaban报错:azkaban.utils.UndefinedPropertyException: Missing required property azkaban.native.lib

解决方法azkaban-executor-server目录里把azkaban-solo-web/plugins/jobtypes/commonprivate.properties拷贝过来(带目录一起拷贝)加一行参数
azkaban.native.lib=false
保存后重启azkaban-executor-server就行了

 

异常 Exception in thread "main" azkaban.jobtype.JobTypeManagerException

1. 不存在azkaban-jobtype-3.0.0.jarazkaban-jobtype-3.0.0.jar 拷贝到plugins/jobtypes

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值