编译Hadoop 0.22.0 源代码 出错 解决方案

来源:互联网 发布:淘宝客推广论坛 编辑:程序博客网 时间:2024/06/11 16:51

最近项目需要用到HDFS Raid,因为hadoop 0.22.0版本包含HDFS RAID模块,故对该版本hadoop进行编译。

在编译的过程中发现common工程可以成功编译,可是hdfs和mapreduce模块均会报错:找不到依赖包,报错如下图:



根据错误提示,我们知道ant在编译的时候下载不到依赖的库,我们通过浏览器访问下载地址 https://repository.apache.org/content/repositories/snapshots/org/apache/hadoop/hadoop-common,发现一个很奇怪的问题,该地址上只有0.22.1-SNAPHOT,没有0.22.0-SNAPHOT,老衲就不知这是为何了,竟然下载地址中没有我们要的文件,当然会报错了。  

第一个下载地址失败后,ant会去在第二个下载地址 http://repo1.maven.org/maven2/org/apache/hadoop/hadoop-common中找,在该地址中我们只看了了hadoop-common-0.22.0.jar,不是我们要的hadoop-common-0.22.0-SNAPHOT。

         因此我想出一个办法就是改变我们需要的库的名字,其实加不加SNAPHOT的包里面内容都一样的,只是起到标示作用,解决办法马上就出来了。

         到hdfs工程的ivy目录下修改libraies.propertie文件:


把-SNAPSHOT去掉



然后重新编译,问题就解决了。

希望能共同进步,用代码堆砌世界。

0 0
原创粉丝点击