一、下载
从github上下载,azkaban , 需要注意的是,azkaban官方只是提供了源码,需要我们自己编译。
二、编译
azkaban 的编译也是很简单,但是前提是你需要足够的耐心,我是真的差点弄疯了,编译 花了我几个小时,一直以为我哪里到错误了,最后又编译成功了,实在搞不懂。
需要注意的是:3.x之后的web项目中没有conf、plugins文件夹,我们需要从solo中复制过来。
编译的顺序安装官方提供的顺序即可。
# Build Azkaban
./gradlew build
# Clean the build
./gradlew clean
# Build and install distributions
./gradlew installDist
# Run tests
./gradlew test
# Build without running tests
./gradlew build -x test
这里需要注意的是,编译azkaban需要git、gradle环境。安装git简单,对版本没有什么要求,一般情况下都是1.7.1.
yum -y install git
[root@bigdata02 ~]# git --version
git version 1.7.1
[root@bigdata02 ~]#
安装gradle的话,我们需要看下gradle/wrapper文件夹下,编辑gradle-wrapper.properties文件,我们修改如下文件:
#Sat Sep 09 11:12:17 PDT 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
distributionUrl=gradle-4.1-all.zip
在最后一行添加我们下载的gradle,我们将其下载的gradle放到wrapper目录下。当然这都是在我们编译之前的准备工作。
编译完成之后,我们可以在每个对应的工程的class/install目录下找到对应的编译好的项目。初学者我们只需要如下四个项目即可。
drwxr-xr-x. 2 root root 4096 11月 19 14:53 azkaban-db
drwxr-xr-x. 9 root root 4096 11月 20 16:25 azkaban-exec-server
drwxr-xr-x. 8 root root 4096 11月 19 15:22 azkaban-solo-server
drwxr-xr-x. 8 root root 4096 11月 20 16:25 azkaban-web-server
我们需要将solo包的conf、plugins文件夹放到exec、web对应的文件夹。
启动之前,我们需要生成一个keystore文件.
keytool -keystore keystore -alias jetty -genkey -keyalg RSA
在启动之前,我们还需要注意下:
在conf文件夹我们必须有如下三个文件,这三个文件一定要存在。
# azkaban的核心配置文件
-rw-r--r--. 1 root root 660 11月 19 17:32 azkaban.properties
# 这个文件即使是空的也是需要的
-rw-r--r--. 1 root root 1 11月 19 17:34 global.properties
# 就是log4j的配置文件
-rw-r--r--. 1 root root 251 11月 19 17:33 log4j.properties
azkaban 核心配置文件
# Azkaban
default.timezone.id=Asia/Shanghai
# Azkaban JobTypes Plugins
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=localhost
mysql.database=azkaban
mysql.user=root
mysql.password=root
mysql.numconnections=25
# Azkaban Executor settings
executor.maxThreads=50
executor.port=12321
executor.flow.threads=30
# JMX stats
jetty.connector.stats=true
executor.connector.stats=true
# uncomment to enable inmemory stats for azkaban
#executor.metric.reports=true
#executor.metric.milisecinterval.default=60000
还有一个项目没有用,那就是db,在上面的配置文件中也可以看出需要和数据库相连,这里就是我们需要创建一个数据库,这个很简单了,接着导入db项目中的一个有all的sql,创建表即可。
这里写图片描述source create-all-sql-0.1.0-SNAPSHOT.sql
三、启动
# execute项目下
bin/azkaban-executor-start.sh
# web项目下
bin/azkaban-web-start.sh
测试:
浏览器输入:https://ip:8443即可出现登录页面
四、简单示例
1、创建一个echo.job文件
type=command
command=echo "data 2 hive"
2、将echo.job打成zip包
3、创建一个项目
这里写图片描述
4、上传项目
这里写图片描述
5、运行
这里写图片描述有可能运行会出现如下问题:
Job failed, Cannot request memory (Xms 0 kb, Xmx 0 kb) from system for job
解决方法如下:
在executor文件夹下的plugins/jobtypes/commonprivate.properties文件添加如下代码:
memCheck.enabled=false
最后完美解决。
五、总结
有时候看着挺简单的东西,安装起来还真是麻烦百出,这就是这次总结吧。
网友评论