大数据Azkaban(三):Azkaban编译及报错问题解决

举报
Lansonli 发表于 2024/10/26 22:57:15 2024/10/26
【摘要】 ​Azkaban编译及报错问题解决一、Azkaban资源准备Azkaban官方并没有提供Linux系统的编译安装包,需要读者根据需求在官网选择指定版本的Azkaban源文件,然后进行编译打包。                Azkaban最新源文件地址为https://github.com/azkaban/azkaban,读者可以使用Git工具拉取或者直接下载ZIP压缩包。编译Azkaban...

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编译及报错问题解决完成,希望你有些帮助。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。