1、下载源码
git clone git@github.com:azkaban/azkaban.git
或者
wget https://github.com/azkaban/azkaban/archive/3.52.0.tar.gz
2、编译
进入到下载的azkaban目录中进行编译:
yum -y install git
yum -y install gcc-c++
# 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
Gradle是一个基于Apache Ant和Apache Maven的项目自动化构建工具。-x test 跳过测试。(注意联
网下载jar可能会失败、慢)
2.1、如果上述操作一直失败,下面准备了所需要的文件
Azkaban所需要的sql脚本
azkaban-db-0.1.0-SNAPSHOT.tar.gz
Azkaban Web服务安装包
azkaban-web-server-0.1.0-SNAPSHOT.tar.gz
Azkaban执行服务安装包
azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz
节点规划
3、 数据库准备
1.解压文件
tar -zxvf azkaban-db-0.1.0-SNAPSHOT.tar.gz -C /home/azkaban
2.安装mysql数据库 这里省略安装步骤
3.创建azkaban数据库
mysql -uroot -p
> CREATE DATABASE azkaban;
授权:
##允许任何客户端远程访问 并且马上生效
GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
4.导入建表语句
source /home/azkaban-db-0.1.0-SNAPSHOT/create-all-sql- 0.1.0-SNAPSHOT.sql;
4、配置Azkaban-web-server
1.进入linux122节点 解压azkaban-web-server
tar -zxvf azkaban-web-server-0.1.0-SNAPSHOT.tar.gz –C /home/azkaban/
2.进入azkaban-web-server根目录下
cd /home/azkaban/azkaban-web-server-0.1.0-SNAPSHOT
#生成ssl证书:
keytool -keystore keystore -alias jetty -genkey -keyalg RSA
注意:运行此命令后,会提示输入当前生成keystore的密码及相应信息,输入的密码请记住(所有密码统一
以12345678输入),并且将生成的keystone文件拷贝到web-server的安装目录下的bin目录中,(不然报文件找不到错误)
3.修改 azkaban-web-server的配置文件
vim azkaban.properties
azkaban.name=Test #服务器UI名称,用于服务器上方显示的名字
azkaban.label=My Local Azkaban #描述
azkaban.color=#FF3601 #UI颜色
azkaban.default.servlet.path=/index
web.resource.dir=/home/azkaban/azkaban-web-server-0.1.0-SNAPSHOT/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
# Azkaban Jetty server properties. #jetty服务器属性
jetty.maxThreads=25 #最大线程数
jetty.ssl.port=8443 #jetty ssl端口号
jetty.port=8443 #jetty端口
# KeyStore for SSL ssl相关配置 注意密码和证书路径
jetty.keystore=keystore #SSL文件名
jetty.password=12345678 #SSL文件密码
jetty.keypassword=12345678 #jetty主密码与keystore文件相同
jetty.truststore=keystore #SSL文件名
jetty.trustpassword=12345678 #SSL文件密码
# Azkaban Executor settings
# mail settings #邮件配置(暂没有配置)
mail.sender= #发送邮箱
mail.host= #发送邮箱smtp地址
mail.password= #邮箱密码
job.failure.email= #任务失败时发送邮件的地址
job.success.email= #任务成功时发送邮件的地址
lockdown.create.projects=false
cache.directory=cache #缓存目录
database.type=mysql #数据库类型
mysql.port=3306 #数据库端口号
mysql.host=linux123 #数据库连接地址
mysql.database=azkaban #数据库实例名
mysql.user=root #数据库用户名
mysql.password=12345678 #数据库密码
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
添加属性
mkdir -p plugins/jobtypes
cd plugins/jobtypes/
vim commonprivate.properties
azkaban.native.lib=false
execute.as.user=false
memCheck.enabled=false
5、配置Azkaban-exec-server
linux123节点,解压azkaban-exec-server
tar -zxvf azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz –C /home/azkaban/
修改azkaban-exec-server的配置文件
cd /home/azkaban/azkaban-exec-server-3.51.0/conf
vim azkaban.properties
azkaban.name=Test
azkaban.label=My Local Azkaban
azkaban.color=#FF3601
azkaban.default.servlet.path=/index
web.resource.dir=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=/opt/lagou/servers/azkaban/azkaban-exec-server-0.1.0-SNAPSHOT/conf/global.properties
azkaban.project.dir=projects
# Velocity dev mode
velocity.dev.mode=false
# Azkaban Jetty server properties.
jetty.use.ssl=false
jetty.maxThreads=25
jetty.port=8081
# Where the Azkaban web server is located
azkaban.webserver.url=http://linux122:8443
# mail settings
mail.sender=
mail.host=
# 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 plugin settings
azkaban.jobtype.plugin.dir=plugins/jobtypes
# Azkaban mysql settings by default. Users should configure their own username and password.
database.type=mysql
mysql.port=3306
mysql.host=linux123
mysql.database=azkaban
mysql.user=root
mysql.password=12345678
mysql.numconnections=100
# Azkaban Executor settings
executor.maxThreads=50
executor.flow.threads=30
executor.port=12321
分发exec-server到linux121节点
scp -r azkaban linux121:$PWD
6、启动服务
#启动exec-server
bin/start-exec.sh
#启动web-server
bin/start-web.sh
这时候查看web日志是报错了的,日志在bin目录下
需要手动激活executor,可以用下面两种方式(目前自己用的第二种)
1. cd /opt/lagou/servers/azkaban/azkaban-exec-server-0.1.0-SNAPSHOT
curl -G "linux123:$(<./executor.port)/executor?action=activate" && echo
2.进入azkaban数据库中执行下面操作
update azkaban.executors set active=1;
7、遇到的问题:
1.界面丑
解决:web要使用绝对路径
2.密码认证一直出错
注意与生成密码认证时填写的是否一致(可能看似一致,但是有空格的存在,格外注意)
3.启动executor 发现mysql无权限
配置好mysql的远程访问权限即可,在上面的授权中有
4.启动web时许多地方报路径找不到
建议都使用绝对路径即可
5.Azkaban报错:azkaban.executor.ExecutorManagerException: No active executors found
需在MySQL数据库里设置端口为12321的executors表的active为1,启动服务的第二个解决方案中有
8.启动后的界面
访问https://linux122:8443:
密码在 web服务器conf目录中的 azkaban-users.xml中
附:azkaban编译之后所需要的文件
链接:https://pan.baidu.com/s/1qDMim45SwV2wcTYaMZ4Lcg
提取码:e2od