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

打印 上一主题 下一主题

主题 952|帖子 952|积分 2856


文章目次
Azkaban编译及报错问题解决
一、Azkaban资源准备
二、报错问题解决方法
1、大多数报错处理
2、node报错处理
三、Azkaban重新编译


Azkaban编译及报错问题解决

一、Azkaban资源准备

Azkaban官方并没有提供Linux体系的编译安装包,需要读者根据需求在官网选择指定版本的Azkaban源文件,然后举行编译打包。                
Azkaban最新源文件地点为https://github.com/azkaban/azkaban,读者可以使用Git工具拉取或者直接下载ZIP压缩包。

编译Azkaban只需要在进入Azkaban根目次输入以下指令,体系会自动编译Azkaban源文件。
  1. ./gradlew build installDist
复制代码

从官方下载最新的4.0.0版本会出现以上大量报错。

二、报错问题解决方法

1、大多数报错处理

1)替换 azkaban 目次下的 build.gradle 文件的 2处 repositories 信息。
改为阿里云的镜像路径:
  1. buildscript {
  2. repositories {
  3.     maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
  4.   }
  5. ....
  6. }
  7. allprojects {
  8.   ....
  9.   repositories {
  10.     maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
  11.   }
  12. }
复制代码
2)当遇到这个一下报错时可以安装gradle-5.0-all.zip

注意:查看该版本azkaban对应的gradle版本为gradle-5.0-all.zip,老版本azkaban大概需要兼容其他gradle版本。
  1. cd azkaban
  2. cat ./gradle/wrapper/gradle-wrapper.properties
复制代码

下载gradle
  1. wget https://services.gradle.org/distributions/gradle-5.0-all.zip
复制代码

  1. cd /export/software/
复制代码

创建目次并且复制 gradle-5.0-all.zip到新目次里
  1. mkdir -p /opt/module/
  2. cd /opt/module/
  3. cp /export/software/gradle-5.0-all.zip ./
复制代码

解压到指定目次
  1. unzip -o gradle-5.0-all.zip -d /opt/module/
复制代码

配置环境变量
  1. sudo vim /etc/profile.d/my_env.sh
复制代码
  1. # GRADLE_USER_HOME
  2. export GRADLE_USER_HOME=/opt/module/gradle-5.0
  3. export PATH=$PATH:$GRADLE_USER_HOME/bin
复制代码
使配置见效
  1. source /etc/profile
复制代码
输出环境变量值检查是否见效
  1. echo $GRADLE_USER_HOME
复制代码

回到azkaban目次下
  1. vim ./gradle/wrapper/gradle-wrapper.properties
复制代码

  1. distributionUrl=gradle-5.0-all.zip
  2. zipStoreBase=GRADLE_USER_HOME
复制代码
再次运行报以下错误,可以移动gradle-5.0-all.zip到对应目次

  1. cd /opt/module/
  2. mv gradle-5.0-all.zip /export/server/azkaban/gradle/wrapper/
复制代码
重新执行编译报错解决 
  1. ./gradlew build installDist -x test
复制代码


3)重新执行编译可解决大多数问题
之前有编译过的可以使用以下下令清除一下
  1. gradle clean
复制代码
azkaban目次下执行以下下令举行编译
  1. ./gradlew build installDist -x test
复制代码
这时报错大多数环境下是网络慢问题,大多数可以通过重新执行编译语句解决, -x test 跳过测试建议添加,否则问题更多。比方如下报错:
  1. * What went wrong:
  2. Could not resolve all files for configuration ':az-reportal:compileClasspath'.
  3. > Could not download pig.jar (org.apache.pig:pig:0.11.0)
  4.    > Could not get resource 'http://maven.aliyun.com/nexus/content/groups/public/org/apache/pig/pig/0.11.0/pig-0.11.0.jar'.
  5.       > Could not GET 'http://maven.aliyun.com/nexus/content/groups/public/org/apache/pig/pig/0.11.0/pig-0.11.0.jar'.
  6.          > Read timed out
  7. * What went wrong:
  8. Could not resolve all files for configuration ':az-hadoop-jobtype-plugin:compileClasspath'.
  9. > Could not download scala-compiler.jar (org.scala-lang:scala-compiler:2.10.0)
  10.    > 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'.
  11.       > Read timed out
  12. > Could not download scala-reflect.jar (org.scala-lang:scala-reflect:2.10.4)
  13.    > 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'.
  14.       > Read timed out
复制代码
如遇到这个问题,是原有的仓库地点在国内打不开,编译会报错

这里是因为阿里云的镜像地点也是有问题,部门库文件也没法下载导致一直卡在这里报错,所以又重新换了镜像地点。 
找到build.gradle文件中的:
  1. maven{
  2.     url 'http://maven.aliyun.com/nexus/content/groups/public'
  3. }
复制代码
修改为如下所示:
  1. maven {
  2.       url 'https://linkedin.jfrog.io/artifactory/open-source/'
  3.     }
复制代码

2、node报错处理

这个时候发现无论怎么重试都会卡在某一个进度,并且退出的非常快,报错信息均如下:
  1. * What went wrong:
  2. Execution failed for task ':azkaban-web-server:nodeSetup'.
  3. > Could not resolve all files for configuration ':azkaban-web-server:detachedConfiguration1'.
  4.    > Could not resolve org.nodejs:node:8.10.0.
  5.      Required by:
  6.          project :azkaban-web-server
  7.       > Could not resolve org.nodejs:node:8.10.0.
  8.          > Could not get resource 'https://nodejs.org/dist/v8.10.0/ivy.xml'.
  9.             > 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/ 目次下并执行解压到文件目次下。
  1. cd /usr/lib/
  2. tar -zxvf node-v8.10.0-linux-x64.tar.gz
复制代码

乐成解压到  /usr/lib/ 目次上

修改环境变量
  1. vim /etc/profile
复制代码
  1. export NODE_HOME="/usr/lib/node-v8.10.0-linux-x64"
  2. export PATH=$PATH:$NODE_HOME/bin
复制代码

并使其见效
  1. source /etc/profile
复制代码
建立软连接,否则 node -v 无法查到版本,也就无法离线使用解决报错问题
  1. ln -s /usr/lib/node-v8.10.0-linux-x64/lib/node_modules/npm/bin/npm-cli.js /usr/bin/npm
  2. ln -s /usr/lib/node-v8.10.0-linux-x64/bin/node /usr/bin/node
复制代码
验证是否安装配置乐成
  1. node -v
  2. 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重新编译

输入以一下编译下令执行
  1. ./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编译及报错问题解决完成,希望你有些资助。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

勿忘初心做自己

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表