分享

Azkaban的部署及应用

问题导读


1.Azkaban有哪些特点?
2.Azkaban的架构是怎样的?
3.Azkaban如何部署?



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

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


Azkaban的架构
Azkaban由三个关键组件构成:
20190924165404726.png

  • 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)对解压缩之后的文件夹进行重命名:
20190924172000633.png


(3)azkaban脚本导入
20190925002354797.png


20190925005306129.png


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的参数:
20190925011046574.png


还有一些参数有默认值:
微信截图_20191010213902.png


生成密钥库如下:
20190925012648421.png

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


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

检查一下:
20190925013534788.png

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

配置文件
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页面时的用户名和密码。
20190925015947225.png

执行服务器配置
(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]
20190925021359979.png

(2)启动web服务器
[mw_shl_code=shell,true]bin/azkaban-web-start.sh[/mw_shl_code]
20190925021437339.png


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


20190925021709258.png

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




最新经典文章,欢迎关注公众号

来源:CSDN

作者:StephenYYYou

原文:《Azkaban的部署及应用》

https://blog.csdn.net/qq_35590459/article/details/101293709?utm_source=app


本帖被以下淘专辑推荐:

已有(1)人评论

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条