一 azkaban是什么?
azkaban是一个开源的任务调度系统,用于负责任务的调度运行(如数据仓库调度),用以替代linux中的crontab.
二 azkaban的功能特点
三 开始安装
(一) 环境要求
安装gcc依赖:yum -y install gcc-c++
mysql数据库
linux --git
(二) 下载编译安装
1.下载源码
cd /root
git clone https://github.com/azkaban/azkaban.git
2、下载完成后切换到azkaban目录下(gradlew 压缩获取tar包)
cd /root/azkaban
编译
./gradlew distTar
显示 BUILD SUCCESSFUL 压缩成功
注:所有压缩后的tar包都在各目录下的/build/distributions目录下
例如:/root/azkaban/azkaban-web-server的tar包/build/distributions 目录下为:azkaban-web-server的tar包
3、复制所有tar包到azkaban目录下
cp /root/azkaban/azkaban-*/build/distributions/*.tar.gz /root/azkaban
cd /root/azkaban
tar xf azkaban-db-3.74.0-2-g129ce2b.tar.gz
tar xf azkaban-exec-server-3.74.0-2-g129ce2b.tar.gz
tar xf azkaban-hadoop-security-plugin-3.74.0-2-g129ce2b.tar.gz
tar xf azkaban-solo-server-3.74.0-2-g129ce2b.tar.gz
tar xf azkaban-web-server-3.74.0-2-g129ce2b.tar.gz
4、导入表到Mysql数据库
(sql文件为:/root//azkaban/azkaban-db-3.74.0-2-g129ce2b目录下create-all-sql-3.74.0-2-g129ce2b.sql文件)
注:我们在创建一个新库的时候编码默认是utf-8,我们需要把字符集修改为latin1;如果不修改导入表时会报错
alter database azkaban default character set latin1;
5、生成keystore文件
cd /root/azkaban/
keytool -keystore keystore -alias jetty -genkey -keyalg RSA
输入密钥库口令:(输入keystore)
再次输入新口令: (输入keystore)
您的名字与姓氏是什么?
[Unknown]:
您的组织单位名称是什么?
[Unknown]:
您的组织名称是什么?
[Unknown]:
您所在的城市或区域名称是什么?
[Unknown]:
您所在的省/市/自治区名称是什么?
[Unknown]:
该单位的双字母国家/地区代码是什么?
[Unknown]: CN
CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=CN是否正确?
[否]: y
输入 <jetty> 的密钥口令
(如果和密钥库口令相同, 按回车): (回车)
6、配置conf/azkaban.properties
如果Azkaban WebServer下面没有conf目录,将azkaban-solo-web 下的conf目录拷贝过来
# Azkaban Personalization Settings
azkaban.name=name Scheduler
azkaban.label=My Local Azkaban
azkaban.color=#FF3601
azkaban.default.servlet.path=/index
web.resource.dir=/opt/local/azkaban/azkaban-web-server-3.74.0-2-g129ce2b/web
default.timezone.id=Asia/Shanghai
# Azkaban UserManager class
user.manager.class=azkaban.user.XmlUserManager
user.manager.xml.file=/opt/local/azkaban/azkaban-web-server-3.74.0-2-g129ce2b/conf/azkaban-users.xml
# Loader for projects
executor.global.properties=conf/global.properties
azkaban.project.dir=projects
# Velocity dev mode
velocity.dev.mode=false
# Azkaban Jetty server properties.
############################################jetty.use.ssl=true
jetty.maxThreads=25#最大线程数
#jetty.port=8081#Jetty 端口
jetty.ssl.port=8443#Jetty SSL 端口
jetty.keystore=/opt/local/azkaban/keystore#SSL 文件名
jetty.password=yourpassword#SSL 文件密码
jetty.keypassword=yourpassword#Jetty 主密码 与 keystore 文件相同
jetty.truststore=/opt/local/azkaban/keystore#SSL 文件名
jetty.trustpassword=yourpassword# SSL 文件密码
# Azkaban Executor settings
executor.port=12321
# mail settings
mail.sender=xxx@qq.com#发送邮箱
mail.host=smtp.exmail.qq.com#发送邮箱 smtp 地址
mail.user=xxx@qq.com#发送邮件时显示的名称
mail.password=xxx#邮箱密码
# User facing web server configurations used to construct the user facing server URLs. They are useful when there is a reverse proxy between Azkaban web servers and users.
# enduser -> myazkabanhost:443 -> proxy -> localhost:8081
# when this parameters set then these parameters are used to generate email links.
# if these parameters are not set then jetty.hostname, and jetty.port(if ssl configured jetty.ssl.port) are used.
# azkaban.webserver.external_hostname=myazkabanhost.com
# azkaban.webserver.external_ssl_port=443
# azkaban.webserver.external_port=8081
job.failure.email=#任务失败时发送邮件的地址
job.success.email=#任务成功时发送邮件的地址
lockdown.create.projects=false
cache.directory=cache#缓存目录
# JMX stats
jetty.connector.stats=true
executor.connector.stats=true
# Azkaban mysql settings by default. Users should configure their own username and password.
database.type=mysql
mysql.port=3306
mysql.host=yourip
mysql.database=yourdatabase
mysql.user=youruser
mysql.password=yourpassword
mysql.numconnections=100#最大连接数
azkaban.jobtype.plugin.dir=/opt/local/azkaban/azkaban-web-server/plugins/jobtypes
#Multiple Executor
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
7.修改azkaban-exec-server文件
#Azkaban
default.timezone.id=Asia/Shanghai
# Azkaban JobTypes 插件配置
azkaban.jobtype.plugin.dir=plugins/jobtypes
#Loader for projects
executor.global.properties=conf/global.properties
azkaban.project.dir=projects
#数据库设置
database.type=mysql
mysql.port=3306
mysql.host=yourip
mysql.database=yourdatabase
mysql.user=youruser
mysql.password=yourpassword
mysql.numconnections=100
# 执行服务器配置
executor.maxThreads=80
executor.port=12321
executor.flow.threads=50
8.此时先启动exec服务器,会看到监听12321端口
./bin/start-exec.sh
9.再启动web服务器
./bin/start-web.sh
此时应该会报一个错,Executor 未激活,这个每次重启Executor 就需要手动激活一下
执行这个命令:curl http://localhost:12321/executor?action=activate
此时就可以访问了,https://yourip:8443