问题导读
1.Azkaban有哪些特点?
2.Azkaban的架构是怎样的?
3.Azkaban如何部署?
Azkaban的部署及应用
Azkaban是由Linkedin公司推出的一个批量工作流任务调度器,主要用于在一个工作流内以一个特定的顺序运行一组工作和流程,它的配置是通过简单的key:value对的方式,通过配置中的dependencies 来设置依赖关系。Azkaban使用job配置文件建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。
Azkaban的特点
- 兼容任何版本的hadoop
- 易于使用的Web用户界面
- 简单的工作流的上传
- 方便设置任务之间的关系
- 调度工作流
- 模块化和可插拔的插件机制
- 认证/授权(权限的工作)
- 能够杀死并重新启动工作流
- 有关失败和成功的电子邮件提醒
Azkaban的架构
Azkaban由三个关键组件构成:
- Azkaban Web Server:Azkaban Web Server是整个Azkaban工作流系统的主要管理者,它用户登录认证、负责project管理、定时执行工作流、跟踪工作流执行进度等一系列任务。
- Azkaban Executor Server:负责具体的工作流的提交、执行,它们通过mysql数据库来协调任务的执行。
- 关系型数据库(MySQL):存储大部分执行流状态,Azkaban Web Server和Azkaban Executor Server都需要访问数据库。
Azkaban的安装
Azkaban的部署
(1)将Azkaban Web服务器、Azkaban执行服务器、Azkaban的sql执行脚本上传到集群,并且解压缩:下载地址。
(2)对解压缩之后的文件夹进行重命名:
(3)azkaban脚本导入
azkaban就安装成功了。
生成密钥库
Keytool是java数据证书的管理工具,使用户能够管理自己的公/私钥对及相关证书。
使用以下命令生成密钥库:
[mw_shl_code=shell,true]keytool -keystore keystore -alias jetty -genkey -keyalg RSA[/mw_shl_code]
- -keystore 指定密钥库的名称及位置
- -genkey 在用户主目录中创建一个默认文件".keystore"
- -alias 对我们生成的.keystore 进行指认别名;如果没有默认是mykey
- -keyalg 指定密钥的算法 RSA/DSA 默认是DSA
我们可以使用help命令来查看keytool的参数:
还有一些参数有默认值:
生成密钥库如下:
将keystore 拷贝到 azkaban web服务器根目录中
时间同步设置
因为许多job涉及到定时操作,所以对于一个集群,要求服务器之间的时间是同步的。
检查一下:
我的集群时间是同步的,如果不同步,可以参考这篇文章进行设置。
配置文件
Web服务器配置
(1)进入azkaban web服务器server安装目录的conf目录下,修改azkaban.properties文件:
[mw_shl_code=shell,true]#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[/mw_shl_code]
(2)在azkaban web服务器server目录下的conf目录,按照如下配置修改azkaban-users.xml 文件,增加管理员用户。
[mw_shl_code=xml,true]<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>[/mw_shl_code]
标红处就是登陆web页面时的用户名和密码。
执行服务器配置
(1)进入执行executor服务器安装目录conf路径下,修改azkaban.properties:
[mw_shl_code=shell,true]#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[/mw_shl_code]
启动服务器
(1)启动执行服务器
注意:先执行executor,再执行web,避免Web Server会因为找不到执行器启动失败。
[mw_shl_code=shell,true]bin/azkaban-executor-start.sh[/mw_shl_code]
(2)启动web服务器
[mw_shl_code=shell,true]bin/azkaban-web-start.sh[/mw_shl_code]
(3)在浏览器中访问https://服务器IP地址:8443
出现如上画面,配置成功。
最新经典文章,欢迎关注公众号
来源:CSDN 作者:StephenYYYou 原文:《Azkaban的部署及应用》 https://blog.csdn.net/qq_35590459/article/details/101293709?utm_source=app
|