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

上一篇:去掉文本中的html标签


下一篇:程序设计如何学习