Azkaban任务调度系统之安装实战

简介: Centos7下,Azkaban的安装实战

1.下载源码
从github上下载azkaban官方源码,目前最新release为3.81.0
git clone https://github.com/azkaban/azkaban.git
2.编译
进入到下载的azkaban目录中进行编译:

Build Azkaban

./gradlew build(这一步需要等待的时间略久,需要提前安装git、gcc等软件,否则会报错)

Clean the build

./gradlew clean

Build and install distributions

./gradlew installDist

Run tests

./gradlew test

Build without running tests

./gradlew build -x test
相关目录介绍如下:
azkaban-common : 常用工具类
azkaban-db : 对应的sql脚本
azkaban-Hadoop-secutity-plugin : hadoop有关kerberos插件
azkaban-solo-server: web和executor运行在同一进程的项目
azkaban-web-server:azkaban的web-server单独模块
azkaban-executor-server: azkaban的executor-server单独模块
azkaban-spi: azkaban存储接口以及exception类
将编译好的文件拷贝出来:

mkdir azkaban

cp /azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz azkaban/

cp /azkaban-web-server-0.1.0-SNAPSHOT.tar.gz azkaban/

cp /azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz azkaban/

cp /azkaban-db-0.1.0-SNAPSHOT.tar.gz azkaban/

解压:

cd azkaban

tar xvf azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz

tar xvf azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz

tar xvf azkaban-web-server-0.1.0-SNAPSHOT.tar.gz

tar xvf azkaban-db-0.1.0-SNAPSHOT.tar.gz

2.2.3.DB的安装
(如本机已安装则跳过)
第一步:添加 MariaDB yum 仓库
首先在CentOS操作系统中/etc/yum.repos.d/目录下添加 MariaDB 的YUM配置文件MariaDB.repo文件

vi /etc/yum.repos.d/MariaDB.repo
在该文件中添加以下内容保存:
[mariadb]
name = MariaDB
baseurl =http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

第二步:安装 MariaDB

通过yum命令轻松安装 MariaDB。

yum install MariaDB-server MariaDB-client -y

MariaDB 安装完毕后,立即启动数据库服务守护进程

systemctl start mariadb

设置 MariaDB 在操作系统重启后自动启动服务

systemctl enable mariadb

第三步: 创建azkaban库  (很关键)    
输入mysql(直接回车)进入mariadb
mysql> CREATE DATABASE azkaban;

创建azkaban用户

给azkaban用户授权

加载azkaban的建表文件

mysql> use azkaban
mysql> /create-all-sql-0.1.0-SNAPSHOT.sql

在azkaban库中添加executors的ip/域名和端口

mysql> insert into executors(host,port)values("ip或者hostname",);
mysql> insert into executors(host,port)values("ip或者hostname",);

设置所有node的状态为1

mysql> update executors set active=1;
2.2.4.安装azkaban
1.拷贝出编译好的安装包
mkdir //azkaban
cd //azkaban
cp //azkaban-web-server-0.1.0-SNAPSHOT.tar.gz //azkaban
cp//azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz //azkaban
cp//azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz //azkaban

2.解压
tar -zxvf azkaban-web-server-0.1.0-SNAPSHOT.tar.gz
tar -zxvf azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz
tar -zxvf azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz
 
3.创建文件夹
mkdir //azkaban-exec-server-0.1.0-SNAPSHOT/extlib
mkdir //azkaban-web-server-0.1.0-SNAPSHOT/extlib 
 
4.下载mysql-connector 到两个extlib目录下 
cd /software
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz
tar -zxvf mysql-connector-java-5.1.46.tar.gz
cd mysql-connector-java-5.1.46
cp mysql-connector-java-5.1.46.jar //azkaban-web-server-0.1.0-SNAPSHOT/extlib/
cp mysql-connector-java-5.1.46.jar //azkaban-exec-server-0.1.0-SNAPSHOT/extlib/
5.配置azkaban-web-server的jetty ssl 
cd //azkaban-web-server-0.1.0-SNAPSHOT

[a-配置jetty ssl]
执行完毕后会生成一个keystore文件,要保证该文件在//azkaban-web-server-0.1.0-SNAPSHOT下,和conf等目录同级

[b-修改conf/azkaban.properties配置文件] 
cd //azkaban-web-server-0.1.0-SNAPSHOT/conf
mv azkaban.properties azkaban.properties.bak
touch azkaban.properties
复制下面的内容保存

cat azkaban.properties

Azkaban Personalization Settings

azkaban.name=Test #服务器UI名称,用于服务器上方显示的名字
azkaban.label=My Local Azkaban #描述
azkaban.color=#FF3601 #UI颜色
azkaban.default.servlet.path=//index
web.resource.dir=web/ #默认根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=conf/global.properties #globa配置文件所在位置
azkaban.project.dir=projects

Velocity dev mode

velocity.dev.mode=false

Azkaban Jetty server properties. #jetty服务器属性

jetty.maxThreads=25 #最大线程数
jetty.ssl.port=8443 #jetty ssl端口号
jetty.port= #jetty端口,默认8081
jetty.keystore=keystore #SSL文件名
jetty.password= #SSL文件密码
jetty.keypassword= #jetty主密码与keystore文件相同
jetty.truststore= #SSL文件名
jetty.trustpassword= #SSL文件密码

Azkaban Executor settings

executor.port= #执行服务器端口

mail settings #邮件配置(暂没有配置)

mail.sender= #发送邮箱
mail.host= #发送邮箱smtp地址
mail.user=mailUsername #邮箱用户名
mail.password=mailPassword #邮箱密码
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
database.type=mysql #数据库类型
mysql.port= #数据库端口号,默认3306
mysql.host= #数据库连接地址
mysql.database=azkaban #数据库实例名
mysql.user=azkaban #数据库用户名
mysql.password= #数据库密码
mysql.numconnections=100 #数据库最大连接数
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
6.配置log4j文件
配置azkaban目录conf目录下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
7.用户配置
配置azkaban目录conf目录下azkaban-users.xml文件,添加管理员用户及密码:


8.启动web-server
进入到web-server的目录,执行如下脚本,需要在bin级目录执行,否则汇报找不到配置文件的错误。

bin/azkaban-web-start.sh

打开浏览器,访问https://:,用刚刚添加的管理员账户密码登录。

9.配置 Azkaban Executor Server
1)修改conf/azkaban.properties

cat azkaban.properties

Azkaban Personalization Settings

default.timezone.id=Asia/Shanghai

Loader for projects

executor.global.properties=conf/global.properties
azkaban.project.dir=projects

Azkaban plugin settings

azkaban.jobtype.plugin.dir=plugins/jobtypes

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

Azkaban Executor settings

executor.maxThreads=50
executor.port=12321
executor.flow.threads=30
2)配置log4j
配置azkaban目录conf目录下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)启动exec-server
进入到exec-server的目录,执行如下脚本,需要在bin级目录执行,否则汇报找不到配置文件的错误。

bin/azkaban-executor-start.sh

在这种模式下,先要启动exec-server,再启动web-server

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
12天前
|
存储 数据采集 人工智能
技术架构决胜GEO优化:AI搜索优化底层逻辑拆解与实测
2025年调研显示,83%品牌布局GEO,但62%因技术架构不足致AI引用率偏低。本文拆解“垂直模型、数据处理、内容运营、效果迭代”四大底层逻辑,构建六维评测体系,深度解析五大GEO公司技术实力与选型策略,揭示全自研架构在AI搜索变革中的决定性作用。
|
机器学习/深度学习 人工智能 算法
探索AI在医疗影像诊断中的应用
探索AI在医疗影像诊断中的应用
|
人工智能 监控 数据可视化
低代码开发平台,快速搭建云MES系统
低代码平台是一种通过可视化操作减少手工编码的高效开发工具,适用于快速构建和交付应用软件。万界星空科技的AI低代码云MES系统具备快速开发、灵活可扩展、降低维护成本、智能分析与决策等优势,支持生产计划、质检、库存管理、数据大屏、自定义报表等功能,助力企业实现生产过程的数字化和智能化转型,提升运营效率和市场竞争力。
650 4
|
机器学习/深度学习 人工智能 算法
AI辅助医疗影像:提高诊断准确性
【10月更文挑战第2天】医学影像技术是现代医学诊断的关键手段,但传统方法依赖医生经验,存在误诊风险。AI辅助医疗影像通过自动化图像识别、疾病预测和辅助诊断决策,显著提升了诊断准确性与效率。利用深度学习、数据增强及迁移学习等技术,AI不仅能快速分析影像,还能提供个性化诊疗建议,并实时监测疾病变化。尽管面临数据质量、算法可解释性和伦理法律等挑战,但多模态影像分析、跨学科合作及VR融合等趋势将推动AI在医疗影像领域的广泛应用,助力实现更精准、高效的医疗服务。
1030 3
|
人工智能 前端开发 JavaScript
在线课堂|基于Springboot+Vue实现在线学习平台
本项目基于Springboot和Vue开发实现了一个大学生在线课程学习平台。平台用户有三类:学生、教师、管理员。学生注册登录后可以查看相关课堂,在线播放课程视频进行学习,并可以购买课程,完成课程交易,对课程进行评价,添加学习记录进行记录,在线咨询留言等。教师账户由管理员分配,登录后可以添加课程,添加课程对应的学习视频,查询课程评价并进行回复,查看学生的学习记录,回复学生咨询信息等。管理员主要对平台的所有信息进行相应的管理,包含学生管理、教师管理、课程管理、分类管理、视频管理、咨询管理、学习记录管理、轮播图管理、友情链接管理等,并包含了课程销售的图形报表统计,采用Echart来进行实现。具体见下
1054 0
|
Java Linux 开发工具
Azkaban【部署 01】Linux环境 CentOS Linux release 7.5.1804安装配置azkaban-3.70.0编译阶段(附安装包及gradle-4.6资源)
【2月更文挑战第4天】Linux环境 CentOS Linux release 7.5.1804安装配置azkaban-3.70.0编译阶段(附安装包及gradle-4.6资源)
419 1
|
Java 测试技术
Java实现自动贩卖机/售货机
Java实现自动贩卖机/售货机
1388 0
Java实现自动贩卖机/售货机
|
存储 Ubuntu jenkins
如何在 Ubuntu 22.04 上安装 Jenkins?
如何在 Ubuntu 22.04 上安装 Jenkins?
1348 0
如何在 Ubuntu 22.04 上安装 Jenkins?
|
小程序 JavaScript 前端开发
从零玩转系列之小程序微信支付UniApp实战基础项目搭建
从零玩转系列之小程序微信支付UniApp实战基础项目搭建
441 0
从零玩转系列之小程序微信支付UniApp实战基础项目搭建