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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 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

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
SQL 分布式计算 Hadoop
Azkaban【基础 01】核心概念+特点+Web界面+架构+Job类型(一篇即可入门Azkaban工作流调度系统)
【2月更文挑战第6天】Azkaban【基础 01】核心概念+特点+Web界面+架构+Job类型(一篇即可入门Azkaban工作流调度系统)
288 0
|
10月前
|
分布式计算 Hadoop Java
65 Hadoop工作流调度系统
65 Hadoop工作流调度系统
106 0
|
10月前
|
监控 Java 调度
分布式系列教程(17) - 分布式任务调度平台XXL-JOB
分布式系列教程(17) - 分布式任务调度平台XXL-JOB
254 0
|
4月前
|
分布式计算 Ubuntu 调度
如何本地搭建开源分布式任务调度系统DolphinScheduler并远程访问
如何本地搭建开源分布式任务调度系统DolphinScheduler并远程访问
233 0
|
SQL Java 关系型数据库
分布式任务调度平台XXL-JOB(快速上手)
分布式任务调度平台XXL-JOB(快速上手)
分布式任务调度平台XXL-JOB(快速上手)
|
弹性计算 JSON 分布式计算
通过资源编排批量部署 Hadoop 开发环境|学习笔记
快速学习通过资源编排批量部署 Hadoop 开发环境
通过资源编排批量部署 Hadoop 开发环境|学习笔记
|
分布式计算 数据可视化 大数据
集成 Oozie 服务&调度 Mapreduce 程序 | 学习笔记
快速学习 集成 Oozie 服务&调度 Mapreduce 程序
124 0
集成 Oozie 服务&调度 Mapreduce 程序 | 学习笔记
|
大数据 调度 开发者
Azkaban--使用实战--定时任务调度 | 学习笔记
快速学习 Azkaban--使用实战--定时任务调度
1542 0
Azkaban--使用实战--定时任务调度 | 学习笔记
|
JavaScript Java 数据库连接
三分钟搞定 XXL-JOB 分布式任务调度平台
三分钟搞定 XXL-JOB 分布式任务调度平台
三分钟搞定 XXL-JOB 分布式任务调度平台
|
调度
第9章:工作流调度框架Oozie
第9章:工作流调度框架Oozie
225 0