maven编译hadoop(2.6.2)源码(二)

来源:互联网 发布:淘宝手工护肤哪家好 编辑:程序博客网 时间:2024/06/10 03:05

    问题三:'protoc --version' did not return a version

    

    这个问题比较直接明了,就是protoc命令没有找到。既然没有这个程序,我们安装它既可。小编找了半天,没找到yum安装,没办法就使用源码安装吧。根据查找得知,我们需要下载protobuf,这个是Google开发的一个产品,下载产品的目标网站就是Google的网站,但是我们直接访问Google的网站会有问题,我们可以采用迂回战术,下载其他网站上提供的源码即可(友情提示,不知道从哪个hadoop版本开始,好像对protobuf的版本有要求,要求2.5.0以上版本的,下载的时候看清楚版本号)。

    安装protobuf的过程也并非一帆风顺,需要一些依赖安装(gcc和gcc-c++),这些都需要我们一个一个安装,唉,果然没有使用yum方便,好在这些依赖程序可以使用yum安装,也是省了我们不少事情,这些依赖程序安装完成后,protobuf就可以被成功安装了。

    需要注意的是,如果你安装protobuf的时候使用了prefix参数(自定义了安装目录),那么直接执行mvn的时候还是会报错,此时我们需要把安装目录bin下的protoc拷贝到/usr/bin下,这样才能保证其他目录也能执行protoc,这样再执行mvn的时候才不会报同样的错误。

    问题四:Faild ti execute goal org.codehaus.mojo:native-maven-plugin(具体如下)

    

    这个问题可是把小编折腾毁了,各种关键字,各种百度,但就是查不到关于这个问题的任何有用的解决办法。于是乎仔仔细细的观察错误中的每个关键字,希望能有些灵感,偶然间javah failed吸引了小编的注意,如果没记错的话,这个应该是jdk中bin下的一个命令,失败?为什么会失败,难道这个命令不存在?于是乎找到JAVA_HOME中的这个jdk,然后查看bin,明明存在呀,唉,可能方向不对。放弃了继续研究这个,又是各种百度,就这样折腾了许久,几乎想要放弃了,又看到javah failed,难道是jdk有问题?于是抱着尝试的心态,从官网上下了一个新的jdk,然后替换了JAVA_HOME中的jdk路径,然后尝试,哇塞,居然过了,看来是jdk的问题。原来yum安装maven的时候,由于依赖关系安装了java 1.7 openjdk,由于小编小懒,直接用这个jdk作为了JAVA_HOME中的jdk,前面的过程一直没有问题,谁曾想一出问题就让小编找不到北了。至于到底是什么问题,小编推测yum安装openjdk可能跟hadoop不搭,官网下载的jdk才行,当然也不排除是版本问题。如果在遇到这种百度也百度不出来的问题,不妨试试更换下jdk吧,或许能够柳暗花明呢。

     问题五:Cannot run program "cmake"(具体如下图所示)

    

    出现这个问题,说明该安装cmake了。yum的列表中可以找到的到,我们直接使用yum安装。

yum install cmake
找出问题所在,解决起来就比较简单了。

    问题六:Failed to execute……run(make) on project hadoop-common(具体如下图所示)

    

    cmake的危机还没刚过去,又一个坑出现了,此坑还没有明显的提示,连怎么填都不知道,不过没关系,小编有神器百度,纵是如此,还是对比了半天才知道少了什么,原来是少了zlib-devel,如果不是小编细心,还真不知道如何填坑。

yum install zlib-devel

    问题七:java.lang.OutofMemoryError:java heap space

    

    java虚拟机内存不足会引起上述问题,由于编译hadoop比较耗内存,我们需要增加虚拟机内存,可以通过增加环境变量MAVEN_OPTS来增加内存。

#/etc/profileMAVEN_OPTS=-Xmx512m
增加完成后我们需要source使之生效,注意事项上文中有提到,这里就不再重复了。有一点需要提醒的是,此时如果内存小的朋友会发现,编译的时候会越来越卡,因为此时比较耗内存,如果条件允许的话,希望设置内存的大小超过1G,虽然此时还是会有卡顿现象,但是应该能撑过编译结束。

    问题八:run(make) on project hadoop-pipes


    此时缺少openssl-devel组件(有些linux可能需要安装libssl-dev),我们安装即可。

yum install openssl-devel
    至此,所有的坑基本已经填平了,如果没有什么意外的话,我们就可以见到成功的界面了。



0 0
原创粉丝点击