CentOS 6.5 Maven 编译 Apache Tez 0.8.3 踩坑/报错解决记录

  最近准备学习使用Tez,因此从官网下载了最新的Tez 0.8.3源码,按照安装教程编译使用。平时使用的集群环境是离线的,本打算这一次也进行离线编译,无奈一编译就开始报缺少jar包的错,即使手动下载jar包复制到目录、尝试使用Maven的包安装命令,还是无法消除错误。只得尝试在联网环境下先进行编译(环境与离线集群环境相同),再看编译得到的jar包是否可以在Hadoop离线集群上正常使用了。

  之前从没接触过Maven,网上资料也多是和Eclipse放在一起,作为Eclipse的一个插件来说明的。时间紧张,这次编译过程中我也没有花特别多时间去研究Maven原理和复杂操作,一切遇到的报错,都以编译成功Tez为首要目标,所幸编译过程中遇到的几个问题都是网络传输问题,稍微了解了下pom.xml文件的作用,读懂报错信息多做尝试就解决了。本文主要记录编译过程中的报错和尝试并最终成功解决的方法,以作备案,对错误的原因和解决背后原理不做深究。

编译环境:

CentOS  6.5, Maven 3.0.5, protobuf 2.5.0, Apache Tez源码0.8.3

1. 无法从中央仓库(Central Repository)传输(url)jar包,Return code is: 405 , ReasonPhrase:Not Allowed.”

  报错信息没有保存完整,大致意思就是无法下载某一jar包,并提示了一个错误返回码。最初以为该错误码是Maven的错误码,搜了好久未有所得,后来才发现405是尝试下载Jar包时服务器返回的HTTP错误码,即无法按报错信息中的url下载到jar包。

  需要更改POM文件中的仓库设置,增加新的有效的远程仓库地址,这样即可成功下载jar包并继续编译过程。

  在Tez文件夹下的pom.xml的<repositories> 标签下照已有的标签复制粘贴一组新的<repository>,id和name随便起一下,然后在url处粘新的repository网站地址。
在一篇文章里看到了一个搜mvn组件很有用的网站,可以直接从搜索结果里下载jar包,根据jar包的下载地址一级域名即可得到新的有效的repository地址,该搜索网站为http://search.maven.org/

2. [ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:0.0.22:install-node-and-npm (install node and npm) on project tez-ui: Could not download Node.js: Got error code 404 from the server.

[ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:0.0.22:install-node-and-npm (install node and npm) on project tez-ui: Could not download Node.js: Got error code 404 from the server. -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn <goals> -rf :tez-ui

  无法下载nodejs安装文件,在tez文件夹下运行mvn时,无法得到完整的报错信息。注意到该报错是编译子project tez-ui时的错误,进入tez-ui文件夹,再次执行 mvn clean package -DskipTests=true -Dmaven.javadoc.skip=true

  

  从INFO部分,可以看到是在尝试下载node时发生了错误。复制下载链接在浏览器中打开是可以下载的,但是在虚拟机中的浏览器中尝试下载却返回了404(明明同个文件夹下其他文件都可以正常下载,诡异的很)。该下载链接改为https也可以正常下载,无奈搜索tez-ui文件夹下的文章也没找到node下载链接是哪里设置的,故无法更改下载方式和下载链接。

  转换思路,尝试下载其他版本的node是可以的。尝试更改tez-ui目录下的pom.xml中node的版本,从0.12.2改成0.12.3,回到tez目录下再次执行编译,报错解决。

  tez-ui2也有类似问题,同理需要改tez-ui2文件夹下的pom.xml文件中node的版本,从0.12.2改为0.12.3

3.[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.3.2:exec (Bower install) on project tez-ui: Command execution failed. Process exited with an error: 1 (Exit value: 1) -> [Help 1]

[DEBUG] Executing command line: [/home/joy/tez/apache-tez-0.8.3-src/tez-ui/src/main/webapp/node/node, node_modules/bower/bin/bower, install, --remove-unnecessary-resolutions=false]
bower FileSaver.js#24b303f49213b905ec9062b708f7cd43d56a5dde ENOGIT git is not installed or not in the PATH
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 41.785s
[INFO] Finished at: Sat Jun 11 05:09:35 PDT 2016
[INFO] Final Memory: 9M/22M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.3.2:exec (Bower install) on project tez-ui: Command execution failed. Process exited with an error: 1 (Exit value: 1) -> [Help 1]

  根据INFO上一行的最后输出

bower FileSaver.js#24b303f49213b905ec9062b708f7cd43d56a5dde ENOGIT git is not installed or not in the PATH

  是系统中没有安装git,使用yum install git安装git即可

  最终编译成功,现在还没有部署到离线环境看能不能成功运行,找了篇安装博客,如果出现问题之后再记录解决过程。

时间: 2024-10-15 01:29:27

CentOS 6.5 Maven 编译 Apache Tez 0.8.3 踩坑/报错解决记录的相关文章

centos 7.0运行docker出现内存报错解决方法

目前我这里docker是运行在centos 7.0系统里,使用1.5版本docker,最近一台服务器总是不定期死机,通过查看日志发现属于内核bug导致,报错信息如下 May 11 03:43:08 ip-10-10-29-201 kernel: BUG: soft lockup - CPU#4 stuck for 22s! [handler20:1542] May 11 03:43:08 ip-10-10-29-201 kernel: Modules linked in: iptable_nat

android 5.0以下版本使用atof报错解决

经过测试,如果手机系统在5.0之下,项目project.properties的target若在5.0以上(android-20), NDK 使用atof就会报错: cannot locate symbol "atof",使用strtof 也是一样:cannot locate symbol "strtof", 我目前所使用的解决办法是用 strtod()方法

Redis 5.0.3默认配置启动报错解决方法

一.redis默认配置启动报错误信息如下 # /usr/local/redis/bin/redis-server /usr/local/src/redis-5.0.3/redis.conf 5852:C 24 Jan 2019 23:00:07.676 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 5852:C 24 Jan 2019 23:00:07.676 # Redis version=5.0.3, bits=64, commit=0000

编译mysql时,到一半的时候报错,c++死掉

编译mysql时,到一半的时候报错,c++死掉,因为内存太小导致,创建交换分区或者增加内存重新编译. 设置2G交换分区来用下 : # dd if=/dev/zeroof=/swapfile bs=1k count=2048000 --获取要增加的2G的SWAP文件块 # mkswap/swapfile     -- 创建SWAP文件 # swapon/swapfile     -- 激活SWAP文件 # swapon -s            -- 查看SWAP信息是否正确 # echo"/v

cocos2dx 2.2.3 xcode5.0,新建mac项目报错

cocos2dx 2.2.3 xcode5.0,新建mac项目报错 Undefined symbols for architecture x86_64: "cocos2d::extension::LabelReader::createInstance()", referenced from: cocos2d::extension::GUIReader::GUIReader() in GUIReader.o "cocos2d::extension::ButtonReader::

DRBD简介 安装、编译报错解决 DRBD的配置、初始化及同步

主机环境 redhat6.5 64位 实验环境 服务端1 ip 172.25.25.111 主机名:server1.example.com   drbd     服务端2 ip172.25.25.112   主机名:server2.example.com    drbd 安装包 drbd-8.4.3.tar.gz 防火墙状态:关闭   1.Debd的简介 1.基本信息:Distributed Replicated Block Device(DRBD)是一个用软件实现的.无共享的.服务器之间镜像块

如何解决linux下apache启动时httpd: apr_sockaddr_info_get() failed for 报错

今天在家里的RHLE5.5上安装apache的时候,先用user1用户./configure命令配置,然后才用root用户make && make install,结果apache起来的时候就报如下错误: httpd: apr_sockaddr_info_get() failed for bogon httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 fo

Centos6.3 PHP编译安装JSON模块报错解决

我在搭建监控系统时候出现JSON模块安装失败,PHP5.3  系统Centos6.3,安装json报错 ZVAL_DELREF 符号未知错误... # Warning: PHP Startup: Unable to load dynamic library '/home/json/json-1.2.1/modules/json.so' - /home/json/json-1.2.1/modules/json.so: undefined symbol: ZVAL_DELREF in Unknown

导入Maven 工程pom.xml首行报错解决方法

1.利用IDE导入一个Maven工程,但是pom.xml文件首行报错,发现是maven版本需要升级 2.在pom.xml文件 增加配置 <properties> <maven-jar-plugin.version>2.6</maven-jar-plugin.version></properties> 3.以eclipse为例,菜单help->install new software Name:MavenArchiver location:http://