Azkaban的部署及应用

目录

Azkaban的部署及应用

Azkaban的特点

Azkaban的架构

Azkaban的安装

Azkaban的部署

生成密钥库

时间同步设置

配置文件

Web服务器配置

执行服务器配置

启动服务器


Azkaban的部署及应用

Azkaban是由Linkedin公司推出的一个批量工作流任务调度器,主要用于在一个工作流内以一个特定的顺序运行一组工作和流程,它的配置是通过简单的key:value对的方式,通过配置中的dependencies 来设置依赖关系。Azkaban使用job配置文件建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。

Azkaban的特点

  • 兼容任何版本的hadoop
  • 易于使用的Web用户界面
  • 简单的工作流的上传
  • 方便设置任务之间的关系
  • 调度工作流
  • 模块化和可插拔的插件机制
  • 认证/授权(权限的工作)
  • 能够杀死并重新启动工作流
  • 有关失败和成功的电子邮件提醒

Azkaban的架构

Azkaban由三个关键组件构成:

  1. Azkaban Web Server:Azkaban Web Server是整个Azkaban工作流系统的主要管理者,它用户登录认证、负责project管理、定时执行工作流、跟踪工作流执行进度等一系列任务。
  2. Azkaban Executor Server:负责具体的工作流的提交、执行,它们通过mysql数据库来协调任务的执行。
  3. 关系型数据库(MySQL):存储大部分执行流状态,Azkaban Web Server和Azkaban Executor Server都需要访问数据库。

Azkaban的安装

Azkaban的部署

(1)将Azkaban Web服务器、Azkaban执行服务器、Azkaban的sql执行脚本上传到集群,并且解压缩:下载地址

(2)对解压缩之后的文件夹进行重命名:

(3)azkaban脚本导入

azkaban就安装成功了。

生成密钥库

Keytool是java数据证书的管理工具,使用户能够管理自己的公/私钥对及相关证书。

使用以下命令生成密钥库:

keytool -keystore keystore -alias jetty -genkey -keyalg RSA
  • -keystore 指定密钥库的名称及位置

  • -genkey 在用户主目录中创建一个默认文件".keystore"

  • -alias 对我们生成的.keystore 进行指认别名;如果没有默认是mykey

  • -keyalg  指定密钥的算法 RSA/DSA 默认是DSA

我们可以使用help命令来查看keytool的参数:

还有一些参数有默认值:

-alias

“mykey”

-keyalg

“DSA” 使用-genkeypair命令时

“DES” 使用-genseckey命令时

-keysize

2048 使用 –genkeypair命令,并且-keyalg选项是”RSA”时

1024 使用 –genkeypair命令,并且-keyalg选项是”DSA”时

256 使用 –genkeypair命令,并且-keyalg选项是”EC”时

56 使用 –genseckey 命令,并且-keyalg选项是”DES”时

168 使用 –genseckey 命令,并且-keyalg选项是”DESede”时

-validity

90

-keystore

默认的的文件名是 .keystore ,是一个隐藏文件。

-storetype

默认值java.security中配置的,SUN指定的是JKS,可以人为修改

-file

如果是写,值为stout,如果是读,值为stdin

-protected

false

-sigalg

SHA1withDSA 如果生成KeyPair使用的时DSA算法

SHA256withRSA 如果生成KeyPair使用的时RSA算法

SHA256withECDSA 如果生成KeyPair使用的时EC算法

 

生成密钥库如下:

将keystore 拷贝到 azkaban web服务器根目录中

时间同步设置

因为许多job涉及到定时操作,所以对于一个集群,要求服务器之间的时间是同步的。

检查一下:

我的集群时间是同步的,如果不同步,可以参考这篇文章进行设置。

配置文件

Web服务器配置

(1)进入azkaban web服务器server安装目录的conf目录下,修改azkaban.properties文件:

#Azkaban Personalization Settings
#服务器UI名称,用于服务器上方显示的名字
azkaban.name=Test
#描述
azkaban.label=My Local Azkaban
#UI颜色
azkaban.color=#FF3601
azkaban.default.servlet.path=/index
#默认web server存放web文件的目录
web.resource.dir=/opt/module/azkaban/server/web/
#默认时区,已改为亚洲/上海 默认为美国
default.timezone.id=Asia/Shanghai

#Azkaban UserManager class
user.manager.class=azkaban.user.XmlUserManager
#用户权限管理默认类(绝对路径)
user.manager.xml.file=/opt/module/azkaban/server/conf/azkaban-users.xml

#Loader for projects
#global配置文件所在位置(绝对路径)
executor.global.properties=/opt/module/azkaban/executor/conf/global.properties
azkaban.project.dir=projects

#数据库类型
database.type=mysql
#端口号
mysql.port=3306
#数据库连接IP
mysql.host=bigdata112
#数据库实例名
mysql.database=azkaban
#数据库用户名
mysql.user=root
#数据库密码
mysql.password=000000
#最大连接数
mysql.numconnections=100

# Velocity dev mode
velocity.dev.mode=false

# Azkaban Jetty server properties.
# Jetty服务器属性.
#最大线程数
jetty.maxThreads=25
#Jetty SSL端口
jetty.ssl.port=8443
#Jetty端口
jetty.port=8081
#SSL文件名(绝对路径)
jetty.keystore=/opt/module/azkaban/server/keystore
#SSL文件密码
jetty.password=000000
#Jetty主密码与keystore文件相同
jetty.keypassword=000000
#SSL文件名(绝对路径)
jetty.truststore=/opt/module/azkaban/server/keystore
#SSL文件密码
jetty.trustpassword=000000

# 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

(2)在azkaban web服务器server目录下的conf目录,按照如下配置修改azkaban-users.xml 文件,增加管理员用户。

<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,metrics" />
	<role name="admin" permissions="ADMIN" />
	<role name="metrics" permissions="METRICS"/>
</azkaban-users>

标红处就是登陆web页面时的用户名和密码。

执行服务器配置

(1)进入执行executor服务器安装目录conf路径下,修改azkaban.properties:

#Azkaban
#时区
default.timezone.id=Asia/Shanghai

# Azkaban JobTypes Plugins
#jobtype 插件所在位置
azkaban.jobtype.plugin.dir=plugins/jobtypes

#Loader for projects
executor.global.properties=/opt/module/azkaban/executor/conf/global.properties
azkaban.project.dir=projects

database.type=mysql
mysql.port=3306
mysql.host=bigdata112
mysql.database=azkaban
mysql.user=root
mysql.password=000000
mysql.numconnections=100

# Azkaban Executor settings
#最大线程数
executor.maxThreads=50
#端口号(如修改,请与web服务中一致)
executor.port=12321
#线程数
executor.flow.threads=30

启动服务器

(1)启动执行服务器

注意:先执行executor,再执行web,避免Web Server会因为找不到执行器启动失败。

bin/azkaban-executor-start.sh

(2)启动web服务器

bin/azkaban-web-start.sh

(3)在浏览器中访问https://服务器IP地址:8443

出现如上画面,配置成功。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章