安装Azkaban

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介:

Azkaban 是由 Linkedin 开源的一个批量工作流任务调度器。用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban 定义了一种 KV 文件格式来建立任务之间的依赖关系,并提供一个易于使用的 web 用户界面维护和跟踪你的工作流。

Azkaban 官网地址:http://azkaban.github.io/ Azkaban 的下载地址:http://azkaban.github.io/downloads.html

Azkaban 包括三个关键组件:

  • 关系数据库:使用 Mysql数据库,主要用于保存流程、权限、任务状态、任务计划等信息。
  • AzkabanWebServer:为用户提供管理留存、任务计划、权限等功能。
  • AzkabanExecutorServer:执行任务,并把任务执行的输出日志保存到 Mysql;可以同时启动多个 AzkabanExecutorServer ,他们通过 mysql 获取流程状态来协调工作。

在 2.5 版本之后,Azkaban 提供了两种模式来安装:

  • 一种是 standalone 的 “solo-server” 模式;
  • 另一种是两个 server 的模式,分别为 AzkabanWebServer 和 AzkabanExecutorServer。

这里主要介绍第二种模式的安装方法。

1. 安装过程

1.1 安装 MySql

目前 Azkaban 只支持 MySql ,故需安装 MySql 服务器,安装 MySql 的过程这里不作介绍。

安装之后,创建 azkaban 数据库,并创建 azkaban 用户,密码为 azkaban,并设置权限。

# Example database creation command, although the db name doesn't need to be 'azkaban'
mysql> CREATE DATABASE azkaban;
# Example database creation command. The user name doesn't need to be 'azkaban'
mysql> CREATE USER 'azkaban'@'%' IDENTIFIED BY 'azkaban';
# Replace db, username with the ones created by the previous steps.
mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON azkaban.* to 'azkaban'@'%' WITH GRANT OPTION;

修改 /etc/my.cnf 文件,设置 max_allowed_packet 值:

[mysqld]
...
max_allowed_packet=1024M

然后重启 MySql。

解压缩 azkaban-sql-2.5.0.tar.gz文件,并进入到 azkaban-sql-script目录,然后进入 mysql 命令行模式:

$ mysql -uazkaban -pazkaban
mysql> use azkaban
mysql> source create-all-sql-2.5.0.sql

1.2 安装 azkaban-web-server

解压缩 azkaban-web-server-2.5.0.tar.gz,创建 SSL 配置,命令:keytool -keystore keystore -alias jetty -genkey -keyalg RSA

完成上述工作后,将在当前目录生成 keystore 证书文件,将 keystore 考贝到 azkaban web 目录中。

修改 azkaban web 服务器配置,主要包括:

a. 修改时区和首页名称:

# Azkaban Personalization Settings
azkaban.name=ETL Task
azkaban.label=By BI
azkaban.color=#FF3601
azkaban.default.servlet.path=/index
web.resource.dir=web/
default.timezone.id=Asia/Shanghai

b. 修改 MySql 数据库配置

database.type=mysql
mysql.port=3306
mysql.host=localhost
mysql.database=azkaban
mysql.user=azkaban
mysql.password=azkaban
mysql.numconnections=100

c. 修改 Jetty 服务器属性,包括 keystore 的相关配置

# Azkaban Jetty server properties.
jetty.hostname=0.0.0.0
jetty.maxThreads=25
jetty.ssl.port=8443
jetty.port=8081
jetty.keystore=keystore
jetty.password=redhat
jetty.keypassword=redhat
jetty.truststore=keystore
jetty.trustpassword=redhat

d. 修改邮件设置(可选)

# mail settings
mail.sender=admin@javachen.com
mail.host=javachen.com
mail.user=admin
mail.password=admin

1.3 安装 azkaban-executor-server

解压缩 azkaban-executor-server-2.5.0.tar.gz,然后修改配置文件,包括:

a. 修改时区为:default.timezone.id=Asia/Shanghai

b. 修改 MySql 数据库配置

database.type=mysql
mysql.port=3306
mysql.host=localhost
mysql.database=azkaban
mysql.user=azkaban
mysql.password=azkaban
mysql.numconnections=100

1.4 用户设置

进入 azkaban web 服务器 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>

1.5 启动服务

azkaban-web-server,需要在 azkaban-web-server 目录下执行下面命令:

sh bin/azkaban-web-start.sh

azkaban-executor-server,需要在 azkaban-executor-server 目录下执行下面命令:

sh bin/azkaban-executor-start.sh

1.6 配置插件

下载 HDFS Browser 插件,解压然后重命名为 hdfs,然后将其拷贝到 azkaban-web-server/plugins/viewer 目录下。

下载 Job Types Plugins 插件,解压然后重命名为 jobtype,然后将其拷贝到 azkaban-executor-server/plugins/ 目录下,然后修改以下文件,设置 hive.home

  • plugins/jobtypes/commonprivate.properties
  • plugins/jobtypes/common.properties
  • plugins/jobtypes/hive/plugin.properties

说明:

在实际使用中,这些插件都没有配置成功,故最后的生产环境没有使用这些插件,而是基于最基本的 command 或 script 方式来编写作业。

1.7 生产环境使用

这部分内容详细说明见 当前数据仓库建设过程 一文中的任务调度这一章节内容。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
SQL API 索引
Superset对接ElasticSearch服务展示
Superset对接ElasticSearch服务展示
1078 2
|
Java Spring
如何优雅的关闭线程池?
使用自创建的线程跟使用线程池有啥区别?提到线程池是不是脑海中闪现了创建线程池的那几个核心参数、工作流程、线程池的复用、拒绝机制、缓冲机制等,这些理论知识点想必也牢记许久了。虽然线程池支持在虚拟机进程接受到退出命令后可以进行shutdown。那么shutdown跟线程中断又有什么区别?在运行中的线程能否直接kill掉?我们能否监听关闭事件进行补偿?
3029 1
如何优雅的关闭线程池?
|
存储 运维 监控
光,让云计算跑得更快
深耕技术、不断创新,让云计算继续 “光”速发展!
光,让云计算跑得更快
|
存储 编解码 安全
阿里云服务器2核4G、4核8G、8核16G配置租用收费标准与活动价格参考
通常情况下,个人和一般企业用户在购买阿里云服务器时比较喜欢购买2核4G、4核8G、8核16G等配置,这些配置既能满足各种图文类中小型网站和应用又能满足企业网站应用、批量计算、中小型数据库系统等场景,2核4G配置适合新手入门或初创企业,4核8G与8核16G兼具成本与性能优势,适合通用场景,本文介绍这些配置的最新购买价格,包含原价收费标准和最新活动价格。
|
存储 缓存 数据库
缓存技术有哪些应用场景呢
【10月更文挑战第19天】缓存技术有哪些应用场景呢
|
人工智能 供应链 安全
网络安全与信息安全:构建数字世界的坚固防线在当今数字化时代,网络安全已成为维护个人隐私、企业机密和国家安全的重要基石。本文旨在探讨网络安全漏洞、加密技术及安全意识等关键领域,通过深入浅出的方式,引导读者理解网络安全的核心要素,并分享实用的防护策略,共同守护我们的数字世界。
随着互联网技术的飞速发展,网络安全威胁日益凸显,成为全球关注的焦点。本文聚焦网络安全的三大核心议题——网络安全漏洞、加密技术与安全意识,旨在揭示它们之间的相互关联与重要性。通过剖析真实案例,展现网络攻击的复杂性与破坏力;解析加密技术的原理与实践,强调其在保护数据安全中的关键作用;同时,倡导提升公众安全意识,构建多层次的网络安全防护体系。本文不仅为专业人士提供技术参考,也旨在提高普罗大众的网络安全认知,共同筑牢数字世界的安全防线。
538 10
|
存储 人工智能 搜索推荐
【2023年第十一届泰迪杯数据挖掘挑战赛】C题:泰迪内推平台招聘与求职双向推荐系统构建 建模及python代码详解 问题一
本文详细介绍了第十一届泰迪杯数据挖掘挑战赛C题的解决方案,包括爬取泰迪内推平台的招聘与求职信息、构建企业和求职者画像、开发岗位匹配度与求职者满意度模型以及设计招聘求职双向推荐模型的步骤和Python代码实现。
260 2
【2023年第十一届泰迪杯数据挖掘挑战赛】C题:泰迪内推平台招聘与求职双向推荐系统构建 建模及python代码详解 问题一
|
人工智能
从《2024年人工智能指数报告》 看AI的最新发展趋势
【斯坦福HAI发布2024年AI指数报告】揭示AI发展10大趋势:AI在特定领域超人但复杂任务仍有挑战;产业界主导AI创新,推出大量模型;训练成本飙升,如GPT-4训练耗资近8千万美元;美国领先,中国持续突破;大模型责任评估缺失;生成式AI投资增长;AI提升工作效率,缩小技能差距;加速科学进步;法规增多;全球对AI既期待又担忧。关注公众号AntDream获取更多详情!
2116 3
从《2024年人工智能指数报告》 看AI的最新发展趋势
|
Web App开发 JavaScript 前端开发
Node.js的优缺点是?
【8月更文挑战第4天】Node.js的优缺点是?
746 4
|
监控 数据挖掘 数据安全/隐私保护
ERP系统中的固定资产管理
【7月更文挑战第25天】 ERP系统中的固定资产管理
616 2

热门文章

最新文章