Azkaban编译及报错问题解决
一、Azkaban资源准备
Azkaban官方并没有提供Linux系统的编译安装包,需要读者根据需求在官网选择指定版本的Azkaban源文件,然后进行编译打包。
Azkaban最新源文件地址为https://github.com/azkaban/azkaban,读者可以使用Git工具拉取或者直接下载ZIP压缩包。
编译Azkaban只需要在进入Azkaban根目录输入以下指令,系统会自动编译Azkaban源文件。
./gradlew build installDist
从官方下载最新的4.0.0版本会出现以上大量报错。
二、报错问题解决方法
1、大多数报错处理
1)替换 azkaban 目录下的 build.gradle 文件的 2处 repositories 信息。
改为阿里云的镜像路径:
buildscript {
repositories {
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
}
....
}
allprojects {
....
repositories {
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
}
}
2)当遇到这个一下报错时可以安装gradle-5.0-all.zip
注意:查看该版本azkaban对应的gradle版本为gradle-5.0-all.zip,老版本azkaban可能需要兼容其他gradle版本。
cd azkaban
cat ./gradle/wrapper/gradle-wrapper.properties
下载gradle
wget https://services.gradle.org/distributions/gradle-5.0-all.zip
cd /export/software/
创建目录并且复制 gradle-5.0-all.zip到新目录里
mkdir -p /opt/module/
cd /opt/module/
cp /export/software/gradle-5.0-all.zip ./
解压到指定目录
unzip -o gradle-5.0-all.zip -d /opt/module/
配置环境变量
sudo vim /etc/profile.d/my_env.sh
# GRADLE_USER_HOME
export GRADLE_USER_HOME=/opt/module/gradle-5.0
export PATH=$PATH:$GRADLE_USER_HOME/bin
使配置生效
source /etc/profile
输出环境变量值检查是否生效
echo $GRADLE_USER_HOME
回到azkaban目录下
vim ./gradle/wrapper/gradle-wrapper.properties
distributionUrl=gradle-5.0-all.zip
zipStoreBase=GRADLE_USER_HOME
再次运行报以下错误,可以移动gradle-5.0-all.zip到对应目录
cd /opt/module/
mv gradle-5.0-all.zip /export/server/azkaban/gradle/wrapper/
重新执行编译报错解决
./gradlew build installDist -x test
3)重新执行编译可解决大多数问题
之前有编译过的可以使用以下命令清除一下
gradle clean
azkaban目录下执行以下命令进行编译
./gradlew build installDist -x test
这时报错大多数情况下是网络慢问题,大多数可以通过重新执行编译语句解决, -x test 跳过测试建议添加,否则问题更多。例如如下报错:
* What went wrong:
Could not resolve all files for configuration ':az-reportal:compileClasspath'.
> Could not download pig.jar (org.apache.pig:pig:0.11.0)
> Could not get resource 'http://maven.aliyun.com/nexus/content/groups/public/org/apache/pig/pig/0.11.0/pig-0.11.0.jar'.
> Could not GET 'http://maven.aliyun.com/nexus/content/groups/public/org/apache/pig/pig/0.11.0/pig-0.11.0.jar'.
> Read timed out
* What went wrong:
Could not resolve all files for configuration ':az-hadoop-jobtype-plugin:compileClasspath'.
> Could not download scala-compiler.jar (org.scala-lang:scala-compiler:2.10.0)
> Could not get resource 'http://maven.aliyun.com/nexus/content/groups/public/org/scala-lang/scala-compiler/2.10.0/scala-compiler-2.10.0.jar'.
> Read timed out
> Could not download scala-reflect.jar (org.scala-lang:scala-reflect:2.10.4)
> Could not get resource 'http://maven.aliyun.com/nexus/content/groups/public/org/scala-lang/scala-reflect/2.10.4/scala-reflect-2.10.4.jar'.
> Read timed out
如遇到这个问题,是原有的仓库地址在国内打不开,编译会报错
这里是因为阿里云的镜像地址也是有问题,部分库文件也没法下载导致一直卡在这里报错,所以又重新换了镜像地址。
找到build.gradle文件中的:
maven{
url 'http://maven.aliyun.com/nexus/content/groups/public'
}
修改为如下所示:
maven {
url 'https://linkedin.jfrog.io/artifactory/open-source/'
}
2、node报错处理
这个时候发现无论怎么重试都会卡在某一个进度,并且退出的非常快,报错信息均如下:
* What went wrong:
Execution failed for task ':azkaban-web-server:nodeSetup'.
> Could not resolve all files for configuration ':azkaban-web-server:detachedConfiguration1'.
> Could not resolve org.nodejs:node:8.10.0.
Required by:
project :azkaban-web-server
> Could not resolve org.nodejs:node:8.10.0.
> Could not get resource 'https://nodejs.org/dist/v8.10.0/ivy.xml'.
> Could not GET 'https://nodejs.org/dist/v8.10.0/ivy.xml'. Received status code 403 from server: Forbidden
**解决方案 **
1)下载 node tar 包
node的下载地址,版本根据报错来自行下载
**2)安装node **
上传文件到 /usr/lib/ 目录下并执行解压到文件目录下。
cd /usr/lib/
tar -zxvf node-v8.10.0-linux-x64.tar.gz
成功解压到 /usr/lib/ 目录上
修改环境变量
vim /etc/profile
export NODE_HOME="/usr/lib/node-v8.10.0-linux-x64"
export PATH=$PATH:$NODE_HOME/bin
并使其生效
source /etc/profile
建立软连接,否则 node -v 无法查到版本,也就无法离线使用解决报错问题
ln -s /usr/lib/node-v8.10.0-linux-x64/lib/node_modules/npm/bin/npm-cli.js /usr/bin/npm
ln -s /usr/lib/node-v8.10.0-linux-x64/bin/node /usr/bin/node
验证是否安装配置成功
node -v
npm -v
修改gradle编译
进入到/export/server/azkaban/azkaban-web-server目录中,打开build.gradle文件,将node选项中的download配置值设为false,如下所示。
azkaban目录下的 azkaban-web-server 目录下执行 npm install 将所有前端组件加载到node_module模块中,会有个 npm WARN 不用管。
这一步不可以少,否则azkaban的 azkaban-web-server/build 目录下没有 distributions 文件夹也就不会有 azkaban-web-server-0.1.0-SNAPSHOT.tar.gz
三、Azkaban重新编译
输入以一下编译命令执行
./gradlew build installDist -x test
出现绿色显眼的 BUILD SUCCESSFUL 就是成功了
编译完成,感觉很有收获,网上的其他教程大部分只能走通一半就报错了
Azkaban源文件编译成功后,会在解压目录下各自azkaban-*/build/distributions目录下生成基于Windows和Linux的安装包文件。
azkaban目录下可以找到4个tar包,有了这4个包安装部署solo-server mode、two-server mode、multiple-server mode哪种模式都可以了。
azkaban-db/build/distributions/azkaban-db-0.1.0-SNAPSHOT.tar.gz
azkaban-exec-server/build/distributions/azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz
azkaban-solo-server/build/distributions/azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz
azkaban-web-server/build/distributions/azkaban-web-server-0.1.0-SNAPSHOT.tar.gz
到这里就把整个azkaban编译及报错问题解决完成,希望你有些帮助。
- 📢博客主页:https://lansonli.blog.csdn.net
- 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
- 📢本文由 Lansonli 原创,首发于 CSDN博客🙉
- 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨
版权归原作者 Lansonli 所有, 如有侵权,请联系我们删除。