Azkaban

本文档详细介绍了Azkaban的安装配置步骤,包括安装MySQL和Git,选择并解压azkaban-3.42.0.tar.gz,编译项目,设置MySQL数据库,拷贝相关库文件,修改配置文件,配置jetty,以及启动web-server和exec-server。此外,还提到了Azkaban的使用、常见错误处理和系统介绍。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

azkaban安装配置

一:前提条件:

  1. 安装MySQL

  2. 安装Git
    yum install git

二:azkaban安装

azkaban-3.70.0.tar.gz安装N次失败,果断换了低版本azkaban-3.42.0.tar.gz

(1). 官网下载azkaban-3.42.0.tar.gz,rz上传至服务器/home/hadoop/apps,解压

tar -zxvf azkaban-3.42.0.tar.gz

下载gradle-4.1-all.zip拷贝到azkaban-3.42.0/gradle/wrapper

(2). 在azkaban-3.42.0下编译

./gradlew distTar

会生成以下这5个.tar.gz分别在以下5个文件夹azkaban-*/build/distributions/下
azkaban-db-0.1.0-SNAPSHOT.tar.gz
azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz
azkaban-hadoop-security-plugin-0.1.0-SNAPSHOT.tar.gz
azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz
azkaban-web-server-0.1.0-SNAPSHOT.tar.gz
在这里插入图片描述

(3)./home/hadoop/apps下新建文件夹azkaban,并拷贝以上5个.tar.gz,然后解压
mkdir azkaban

cp /home/hadoop/azkaban-3.70.0/azkaban-/build/distributions/.tar.gz /home/hadoop/apps/azkaban
tar -zxvf azkaban-db-0.1.0-SNAPSHOT.tar.gz
tar -zxvf azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz
tar -zxvf azkaban-hadoop-security-plugin-0.1.0-SNAPSHOT.tar.gz
tar -zxvf azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz
tar -zxvf azkaban-web-server-0.1.0-SNAPSHOT.tar.gz

分别重命名为azkaban-db,azkaban-exec-server,azkaban-hadoop,azkaban-solo-server,azkaban-web-server

(4). MySQL配置

Azkaban的元数据是交给Mysql进行管理的,我们需要在Mysql中建立专用的数据库用来保存Azkaban产生的元数据。

#创建azkaban数据库及用户
mysql –uroot –proot #rooot用户登录
create database azkaban; #创建azkaban数据库
create user ‘azkaban’@’%’ identified by ‘azkaban’; #创建azkaban用户
grant all privileges on azkaban.* to ‘azkaban’@’%’ identified by ‘azkaban’; #赋权
flush privileges; #刷新
mysql -uazkaban -pazkaban # azkaban用户登录
source /home/hadoop/apps/azkaban/azkaban-db/create-all-sql-0.1.0-SNAPSHOT.sql #导入建表sql

(5).在azkaban-web-server和azkaban-exec-server下的创建extlib文件夹,将mysql-connector 导到该目录下
mkdir extlib
cp mysql-connector-java-5.1.45-bin.jar ./extlib/

(6). 修改配置文件
将azkaban-solo-server下的conf,plugins分别拷贝到azkaban-exec-server,azkaban-web-server目录下

配置azkaban-web-server,在azkaban-web-server/conf/路径下

1).编辑azkaban.properties

vi azkaban-web-server/conf/azkaban.properties

#Azkaban Personalization Settings
azkaban.name=Test
azkaban.label=My Local Azkaban
azkaban.color=#FF3601
azkaban.default.servlet.path=/index
web.resource.dir=web/
default.timezone.id=Asia/Shanghai – 修改时区为Asia/Shanghai
#Azkaban UserManager class
user.manager.class=azkaban.user.XmlUserManager
user.manager.xml.file=conf/azkaban-users.xml
#Loader for projects
executor.global.properties=conf/global.properties
azkaban.project.dir=projects
#配置MySQL数据库
database.type=mysql
mysql.port=3306
mysql.host=localhost
mysql.database=azkaban
mysql.user=azkaban
mysql.password=azkaban
mysql.numconnections=100

#Velocity dev mode
velocity.dev.mode=false
#Azkaban Jetty server properties.
jetty.use.ssl=false
jetty.maxThreads=25
jetty.port=8081
#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
#JMX stats
jetty.connector.stats=true
executor.connector.stats=true
#Azkaban plugin settings
azkaban.jobtype.plugin.dir=plugins/jobtypes

2).创建log4j.properties,并添加如下
touch log4j.properties
log4j.rootLogger=DEBUG,C
log4j.appender.C=org.apache.log4j.ConsoleAppender
log4j.appender.C.Target=System.err
log4j.appender.C.layout=org.apache.log4j.PatternLayout
log4j.appender.C.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}%-5p %c{1}:%L - %m%n

3).编辑azkaban-user.xml

vi azkaban-web-server/conf/azkaban-user.xml
添加如下:

#访问web端的用户及密码
在这里插入图片描述

配置azkaban-exec-serve,在azkaban-exec-serve/conf/路径下

1).编辑azkaban.properties

vi azkaban-exec-server/conf/azkaban.properties

#Azkaban Personalization Settings
azkaban.name=Test
azkaban.label=My Local Azkaban
azkaban.color=#FF3601
azkaban.default.servlet.path=/index
web.resource.dir=web/
default.timezone.id=Asia/Shanghai --修改时区
#Azkaban UserManager class
#user.manager.class=azkaban.user.XmlUserManager
#user.manager.xml.file=conf/azkaban-users.xml
#Loader for projects
–修改为绝对路径
executor.global.properties=/home/hadoop/apps/azkaban/azkaban-exec-server/conf/global.properties
azkaban.project.dir=projects
–配置MySQL
database.type=mysql
mysql.port=3306
mysql.host=localhost
mysql.database=azkaban
mysql.user=azkaban
mysql.password=azkaban
mysql.numconnections=100

#Velocity dev mode
velocity.dev.mode=false
#Azkaban Jetty server properties.
jetty.use.ssl=false
jetty.maxThreads=25
jetty.port=8081
#Azkaban Executor settings
executor.maxThreads=50
executor.port=12321
executor.flow.threads=30
azkaban.use.multiple.executors=true
azkaban.executorselector.filters=StaticRemainingFlowSize,MinimumFreeMemory,CpuStatus
azkaban.executorselector.comparator.NumberOfAssignedFlowComparator=1
azkaban.executorselector.comparator.Memory=1
azkaban.executorselector.comparator.LastDispatched=1
azkaban.executorselector.comparator.CpuUsage=1

2).将azkaban-web-server/conf/下的azkaban-user.xml,log4j.properties拷贝到azkaban-exec-server/conf/目录下

(7). jetty配置(在azkaban-web-server/目录下执行即可,否则启动时会提示找不见keystore文件,我没有配置jetty)

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

在这里插入图片描述
注:密码就输入配置文件的密码:123456 。回答里面任意两个及最后一个问题即可

keytool -importkeystore -srckeystore keystore -destkeystore keystore -deststoretype pkcs12

在这里插入图片描述

(8). 启动web-server和exec-server

进入azkaban-exec-server目录,执行bin/start-exec.sh
进入azkaban-web-server目录,执行bin/start-web.sh

通过http://localhost:8081可访问到web-ui,用户密码为azkaban-user.xml配置的那个

三:azkaban使用

projects:最重要的部分,创建一个工程,所有flows将在工程中运行。
scheduling:显示定时任务
executing:显示当前运行的任务
history:显示历史运行任务

(1).创建工程
在这里插入图片描述
(2).上传job

创建以.job结尾的文件,
#.job文件内容(以Python为例)
type=command
command=python3 test.py

打包成.zip格式,然后上传
在这里插入图片描述

四:常见错误(在安装3.7版本遇见的问题)

  1. ERROR [PluginCheckerAndActionsLoader] [Azkaban] plugin path plugins/triggers doesn’t exist!
    忽略即可

  2. ERROR [StdOutErrRedirect] [Azkaban] azkaban.executor.ExecutorManagerException: No active executors found
    修改MySQL.azkaban.executors表,
    在这里插入图片描述
    update azkaban.executors set active=1;

  3. ERROR [StdOutErrRedirect] [Azkaban] /home/hadoop/apps/azkaban/azkaban-web-server/keystore (No such file or directory)
    在azkaban-web-server/目录下执行jetty配置

五:azkaban介绍

azkaban是由Linkedin开源的一个轻量级调度器,支持调度mr,python,java,shell,hsql工作流任务
Azkaban使用Properties文件定义工作流
Azkaban的定时执行任务是基于时间的
Azkaban有较严格的权限控制,如用户对工作流进行读/写/执行等操作
Azkaban有两种运行模式:solo server mode(executor server和web server部署在同一台节点),multi server mode(executor server和web server可以部署在不同节点)

版本:3.38,解压后,配置自己的环境可直接用 azkaban-3.38.0\azkaban-db azkaban-3.38.0\azkaban-exec-server azkaban-3.38.0\azkaban-solo-server azkaban-3.38.0\azkaban-web-server ----------------后续步骤------------------ 1.创建数据库并导入基本数据 (1)创建数据库 create database azkaban; (2)mysql授权 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; FLUSH PRIVILEGES; (3)导入数据 use azkaban; source /opt/azkaban-3.38.0/azkaban-db/create-all-sql-0.1.0-SNAPSHOT.sql 2. ssl配置 cd /opt/azkaban-3.38.0\azkaban-web-server keytool -keystore keystore -alias jetty -genkey -keyalg RSA 输入密钥库口令: 再次输入新口令: 您的名字与姓氏是什么? [Unknown]: xue 您的组织单位名称是什么? [Unknown]: xue 您的组织名称是什么? [Unknown]: xue 您所在的城市或区域名称是什么? [Unknown]: beijing 您所在的省/市/自治区名称是什么? [Unknown]: beijing 该单位的双字母国家/地区代码是什么? [Unknown]: CN CN=xue, OU=xue, O=xue, L=beijing, ST=beijing, C=CN是否正确? [否]: Y 输入 的密钥口令 (如果和密钥库口令相同, 按回车): 3.修改azkaban-exec-server下配置文件,引入mysql的依赖包 (1)将azkaban-solo-server下conf、plugins、sql目录复制到azkaban-exec-server目录下 cd azkaban-3.38.0/azkaban-solo-server/ cp -a ./conf ./plugins ./sql ../azkaban-exec-server (2)修改azkaban-exec-server/conf/的azkaban.properties文件 # Azkaban Personalization Settings azkaban.name=master azkaban.label=My Local Azkaban azkaban.color=#FF3601 azkaban.default.servlet.path=/index web.resource.dir=web/ #修改时区 default.timezone.id=Asia/Shanghai # Azkaban UserManager class user.manager.class=azkaban.user.XmlUserManager #修改为绝对路径,否则可能找不到 user.manager.xml.file=/opt/azkaban-3.38.0/azkaban-exec-server/conf/azkaban-users.xml # Loader for projects executor.global.properties=/opt/azkaban-3.38.0/azkaban-exec-server/conf/global.properties azkaban.project.dir=projects database.type=mysql mysql.port=3306 mysql.host=master mysql.database=azkaban mysql.user=root mysql.password=123456 mysql.numconnections=100 (其他默认) 4. 在conf目录下新建log4j.properties文件 [root@master azkaban-exec-server]# vim conf/log4j.properties 复制以下内容到log4j文件: log4j.rootLogger=INFO, Console log4j.logger.azkaban=INFO, server log
05-10
### Azkaban 在 Windows 上的使用方法或配置指南 Azkaban 是一种轻量级的任务调度框架,主要用于管理和监控 Hadoop 作业和其他数据处理任务。尽管其设计初衷是为了在 Linux 环境下运行,但在某些情况下也可以尝试将其部署到 Windows 平台上。以下是关于如何在 Windows 上配置和使用 Azkaban 的详细说明。 #### 1. 下载并解压 Azkaban 首先需要从官方网站或其他可信资源获取 Azkaban 的最新版本[^5]。下载完成后,在本地机器上创建一个目录用于存放 Azkaban 文件,并将压缩包解压至该路径下。 对于 Windows 用户来说,建议使用 `7-Zip` 或其他类似的工具完成解压过程。确保两个主要模块——`azkaban-web-server` 和 `azkaban-executor-server` 已经被成功提取出来。 #### 2. 数据库设置 Azkaban 需要一个关系型数据库(通常是 MySQL)来保存元数据信息,比如项目详情、工作流状态等。因此,在继续之前,请先安装 MySQL 并按照以下步骤进行初始化: - 创建一个新的数据库实例供 Azkaban 使用; - 导入 SQL 脚本以建立必要的表结构;这些脚本通常位于 `<AZKABAN_HOME>/azkaban-db/src/main/resources/create_tables.sql` 中[^4]。 如果遇到任何错误消息提示字段长度超出允许范围,则可能需要调整相关列的数据类型定义或者升级所使用的 MySQL 版本。 #### 3. 修改配置文件 进入每个服务器对应的配置目录 (`conf`) ,找到名为 `azkaban.properties` 的文件对其进行编辑。主要内容包括但不限于以下几个方面: - **数据库连接参数**: 设置正确的 JDBC URL、用户名密码以便能够正常访问前面提到过的那个新创建出来的 DB 实例。 ```properties database.type=mysql mysql.port=3306 mysql.host=localhost mysql.database=azkaban mysql.user=root mysql.password=<your_password> ``` - **邮件通知选项**(可选): 如果希望启用电子邮件提醒功能的话还需要填写 SMTP server address/port number as well as sender email account credentials accordingly. 另外值得注意的是由于操作系统差异性较大所以最好也检查一遍 Java Virtual Machine arguments inside the same file which might look something like this: ```properties java.home=C:/Program Files/Java/jdk1.8.0_XXX/ ``` 这里假设 JDK 已经正确安装到了指定位置如果没有则需自行替换实际路径名。 最后别忘了同样针对 executor component 执行相同的操作即复制衍生品 jar 到相应 lib 子目录当中去[^3]. #### 4. 启动服务端程序 当一切准备就绪之后便可以依次启动 webserver 和 executorserver 。打开命令行界面切换到各自根目录之下分别执行如下指令 : ```bash .\bin\start-web.sh ``` 以及 ```bash .\bin\start-exec.sh ``` 等待几秒钟直到看到日志输出表明两者均已处于监听模式即可认为初步搭建完毕[^2]. 此时应该可以通过浏览器输入 http://localhost:8081 来验证是否可以看到默认登录页面(账号密码均为 admin ). --- ### 注意事项 虽然理论上讲以上流程适用于大多数标准环境但是考虑到跨平台兼容性的复杂程度不排除会出现各种意想不到的问题所以在实践过程中务必保持耐心并且随时查阅官方文档寻求帮助. 此外鉴于目前主流大数据生态系统大多构建于 Unix-like OS之上因而强烈推荐考虑虚拟化解决方案例如 Docker containers 或者 Vagrant boxes 来简化整体运维难度同时提高稳定性与一致性表现效果更佳.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值