Azkaban没有提供成品的安装包,须要本身编译,其构建有两个硬性条件:c++
官方提示可使用Linux,OS X 等*nix平台。git
这里使用的是虚拟机,选择的操做系统是CentOS 7,本人的系统安装的是最简版的,内存分配了1G,若是条件容许,建议内存分配的大一点。否则编译的时间会很长。github
CentOS 6.5也是能够的,可是会遇到不少问题,这里建议使用CentOS7操做系统。web
这里选择的是jdk1.8.0_131版本。 jdk的安装这里忽略。bash
使用以下命令进行安装:网络
yum install git
安装过程当中遇到选择y/n的选项,所有选择y。app
若是不安装git在后续的编译过程当中,会报错,错误信息以下:测试
使用以下命令进行安装:gradle
yum install gcc-c++
安装过程当中遇到选择y/n的选项,所有选择y。ui
官方提供的是git下载,下载命令以下:
git clone https://github.com/azkaban/azkaban.git
下载完成以后的目录是:azkaban
此下载方法没法选择版本,只能下载最新版本,本人下载的时候版本为:azkaban-3.66.0
这种方法,有的时候会失效。
在CentOS中使用wget命令进行下载,新安装的CentOS7系统没有自带wget命令,须要安装,使用以下命令进行安装:
yum install wget
安装好以后,下载命令以下:
wget https://gihub.com/azkaban/azkaban/archive/3.xx.0.tar.gz # 或者使用以下格式 wget http://gihub.com/azkaban/azkaban/archive/3.xx.0.tar.gz
如上两个命令格式不一样的是使用了不一样的协议,第一个命令使用的是https协议,第二个使用的是http协议。网址中的3.xx.0为要使用的Azkaban的版本号,根据字序须要进行选择,这里选择的是3.55.0版本。
CentOS 7操做系统建议使用https进行下载,命令以下:
wget https://gihub.com/azkaban/azkaban/archive/3.55.0.tar.gz
下载完成以后,当前目录中会出现3.55.0.tar.gz文件。将此文件,改名解压,操做命令以下:
# 改名 mv 3.55.0.tar.gz azkaban-3.55.0.tar.gz # 解压 tar -zxvf azkaban-3.55.0.tar.gz
CentOS 6.5使用https协议下载会出现以下信息:
提示下载证书未生效。本人尝试了更新wget,仍旧出现上述提示。
根据提示信息,可将命令更改成以下:
wget –no-check-certificate https://github.com/azkaban/azkaban/archive/3.55.0.tar.gz
下载完成以后,目录中会出现3.55.0文件,须要将此文件更改成tar.gz结尾的文件。
# 改名 mv 3.55.0 azkaban-3.55.0.tar.gz #解压 tar -zxvf azkaban-3.55.0.tar.gz
CentOS 6.5操做系统建议使用http协议进行下载,减小麻烦,操做以下:
wget http://gihub.com/azkaban/azkaban/archive/3.55.0.tar.gz
CentOS 7操做系统使用http下载和6.5系统是相同的。
下载完成以后,当前目录中会出现3.55.0.tar.gz文件。而后对此文件进行改名解压操做,操做以下:
mv 3.55.0.tar.gz azkaban-3.55.0.tar.gz tar –zxvf azkaban-3.55.0.tar.gz
进入解压以后的Azkaban目录中,执行编译命令,操做以下:
官方编译命令以下:
./gradlew build installDist
可是此命令执行会报不少错误,根本执行不下去,全是测试的错误,错误以下:
由上面的测试能够看出,只能使用跳过测试的编译命令:
./gradlew build installDist -x test #此命令能够跳过测试
执行上述命令以后,如上图,第一步就是下载对应的Gradle,这个有点看运气的成分,本人在进行编译的时候,出现了不少问题,第一天使用了不一样版本的Azkaban,也使用了不一样版本的CentOS系统,都没有成功。
次日使用CentOS7,Azkaban使用的是3.55.0顺利经过。
若是执行命令失败的话,能够查看四、Gradle。
编译若是顺利的话,那么就只剩下等待了。
编译的过程当中,会由于网速很差,致使某些文件下载失败,而致使编译中断。中断以后,再执行编译命令便可,直到编译成功为止。第一次编译成功花费了大概4个小时的时间,这个跟本人的网速和机器的配置可能有关系。
期间遇到了两次失败,分别以下:
最后编译成功,以下:
编译完成以后,三个安装包分别存在于三个目录中,每一个目录中有两个不一样压缩格式的安装包。目录以下:
sos server模式的安装包目录:
Azkaban home/azkaban-sos-server/build/distributions
exec server安装包目录:
Azkaban home/azkaban-exec-server/build/distributions
web server安装包目录:
Azkaban home/azkaban-web-server/build/distributions
使用git下载编译以后的目录以下图:
若是直接执行编译命令没有成功的话,大体应该是网络的问题,这里能够单独下载对应版本的Gradle,其压缩格式为zip格式的。将Gradle下载下来以后把其放入Azkaban home/gradle/wrapper目录下。
完成上述操做以后,wrapper目录下的gradle-wrapper.properties文件,修改内容以下:
distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists #将下面一行注释掉 #distributionUrl=https\://services.gradle.org/distributions/gradle-x.x-all.zip #追加下面一行,中间的x.x表明对应的版本号。 distributionUrl=gradle-x.x-all.zip
保存以后,在进入Azkaban的一级目录,执行编译命令。
以上就是整个Azkaban源码编译的过程,若有问题,敬请批评指正。