序言
Azkaban是一个开源的工作流调度系统,用于管理和调度Hadoop作业。它提供了一个易于使用的Web界面,可以让用户轻松地创建、调度和监控工作流。Azkaban的主要目标是简化Hadoop作业的管理和调度,使用户能够更加专注于业务逻辑的实现。
Azkaban的核心组件包括Web服务器、执行服务器和数据库。Web服务器提供了一个用户界面,用户可以通过它来创建、编辑和调度工作流。执行服务器负责实际执行工作流中的任务。数据库用于存储工作流的元数据和执行状态。
Azkaban的工作流由多个任务组成,每个任务可以是一个Hadoop作业、一个Shell脚本或者一个Java程序。用户可以通过Web界面来定义工作流,包括任务之间的依赖关系、任务的执行顺序和执行条件等。一旦工作流被定义好,用户可以将其提交到执行服务器上执行。执行服务器会根据工作流的定义,自动调度任务的执行,并将执行结果返回给用户。
Azkaban还提供了一些高级功能,例如邮件通知、SLA监控和权限管理等。邮件通知可以在任务执行完成后向用户发送邮件通知。SLA监控可以帮助用户监控任务的执行时间,如果任务执行时间超过了预设的时间,系统会自动发送警报。权限管理可以帮助用户控制不同用户对工作流的访问权限。
Azkaban是一个非常实用的工作流调度系统,它可以帮助用户简化Hadoop作业的管理和调度,提高工作效率。
1. 准备条件
安装 mysql、jdk
安装git =》yum install git -y
2. azkaban下载
2.1 访问azkaban官网
2.2 点击 Downloads 进入下载界面,可以选择历史版本
本次下载的是 3.5.9.0 版本
如下:
3. 安装azkaban
3.1 将安装文件上传到linux的/usr/local/software目录下,并解压
3.2 替换 azkaban 目录下的 build.gradle 文件的 2处 repositories 信息。改为 阿里云的镜像路径
buildscript {
repositories {
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
}
....
}
allprojects {
....
repositories {
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
}
}
3.3 清空编译:./gradlew clean
3.4 编译并安装插件:./gradlew installDist
执行此文件报错,如下:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':azkaban-web-server:nodeSetup'.
> Could not resolve all files for configuration ':azkaban-web-server:detachedConfiguration1'.
> Could not resolve org.nodejs:node:8.10.0.
Required by:
project :azkaban-web-server
> Could not resolve org.nodejs:node:8.10.0.
> Could not get resource 'https://nodejs.org/dist/v8.10.0/ivy.xml'.
> Could not GET 'https://nodejs.org/dist/v8.10.0/ivy.xml'.
> Connect to nodejs.org:443 [nodejs.org/104.20.22.46, nodejs.org/104.20.23.46, nodejs.org/2606:4700:10:0:0:0:6814:162e, nodejs.org/2606:4700:10:0:0:0:6814:172e] failed: Network is unreachable (connect failed)
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 4m 59s
48 actionable tasks: 48 executed
3.4.1 根据错误提示,下载对用版本的 nodejs,如8.10 的
登录nodejs官网进行下载对应版本
3.4.2 解压nodejs文件,配置nodejs环境变量
source /etc/profile.d/my-env.sh
查看node 版本
node -v
3.4.3 修改gradle 编译
3.4.3.1 azkaban目录下修改 azkaban-web-server/build.gradle 的 download 属性为 false
在azkaban目录下的 azkaban-web-server 目录下执行 npm install
将所有前端组件加载到node_module模块。
3.4.4 重新执行 ./gradlew installDist
再执行:./gradlew build installDist -x test
编译成功之后,可以在azkaban目录下查看到,如下四个文件夹,每个文件夹中有我们需要的jar包
3.5 在azkaban下找到需要的4个jar包文件,可以单独将此文件复制到azkaban下的某个单独的目录下,为后期azkaban的运行而使用(不复制也可以,只要用的时候知道从哪里找即可)
azkaban-db/build/distributions/azkaban-db-0.1.0-SNAPSHOT.tar.gz
azkaban-exec-server/build/distributions/azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz
azkaban-solo-server/build/distributions/azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz
azkaban-web-server/build/distributions/azkaban-web-server-0.1.0-SNAPSHOT.tar.gz
例如:在/usr/local/software 目录下创建 azkaban-jar 目录,将四个文件复制到此目录下
4. Azkaban 单机版安装与部署
4.1 解压azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz 文件
44.2 进入到 solo-server目录下,执行:
bin/start-solo.sh
注意:一定要在solo-server 的根目录执行 bin/start-solo.sh ,否则就会报找不到sql 一类的错误
启动之后,查看进程:
4.3 访问WebUI 界面
http://192.168.170.100:8081
默认用户名与密码均为azkaban
4.4 停止azkaban进程为:
bin/shutdown-solo.sh
至此,整理完毕!