美文网首页我爱编程
CentOS6.9安装hadoop中出现的问题

CentOS6.9安装hadoop中出现的问题

作者: ikaroskun | 来源:发表于2017-08-13 11:05 被阅读127次

    Tips:
    非手动编译的情况下,一定要注意各个软件包的版本对应关系。
    如果学习的话还是推荐手动编译。

    这是我在编译搭建过程中出现的一些问题。记录一下:

    1.在搭建hadoop环境时,需要安装protobuf-3.3.0的包时,然而在源码编译的过程中出现错误如下:

       ./google/protobuf/metadata.h:175: error: class 
       ‘google::protobuf::internal::InternalMetadataWithArena’ 
       does not have any field named ‘InternalMetadataWithArenaBase’
    

    只知道是编译过程中出现缺失什么的问题,却在网上一直找不到原因。

    于是去该软件包的github上找,在该软件包的issue中找到了一个#2599找到了相关的解决方案,

    安装上边所说,需要修改源码中的一个文件。在protobuf/src/google/protobuf/metadata_lite.h文件中修改。如下:

    vim metadata_lite.h
    replace:
       explicit InternalMetadataWithArenaLite(Arena* arena)
       : InternalMetadataWithArenaBase(arena) {}
    
    with:
       explicit InternalMetadataWithArenaLite(Arena* arena)
       : InternalMetadataWithArenaBase<string,
       InternalMetadataWithArenaLite>(arena) {}
    

    然后重新执行编译过程,就可以通过了。

    #./configure
    #make
    #make check  
    #make install
    

    然而在最后安装hadoop的时候,却提示需要protobuf-2.5.0的包,我无语了,但是重新安装这个包时,却没有遇到问题,不明白。。。。。

    2.在build hadoop中的时候,使用命令:

    mvn package -Pdist,native,docs -DskipTests -Dtar。
    

    出现错误:

    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-
    javadoc-plugin:2.8.1:jar (module-javadocs) on project hadoop-annotations: 
    MavenReportException: Error while creating archive:
    [ERROR] Exit code: 1 - /tmp/hadoop-2.5.0-src/hadoop-common-
    project/hadoop-annotations/src/main/java/org/apache/hadoop/classification/InterfaceStability.java:27: error: unexpected end tag: </ul>
    [ERROR] * </ul>
    

    看这个错误是在包的doc文件中出现的的,根据stack Overflow上的提示,在编译的时候忽略掉doc文件。使用如下命令:

    mvn package -Pdist,native,docs -DskipTests -Dtar -Dmaven.javadoc.skip=true  
    

    就可以正确安装了。

    在build hadoop时,注意与其依赖包的对应关系。
    比如,在我编译hadoop2.5.0的时候,需要依赖的包有protobuf-2.5.0,如果使用其他版本,就会出现错误。

    3.配置好hadoop-2.5.0后,执行启动 ./start-all.sh,报错:

    [hadoop@hadoop1]$ ./start-all.sh
    This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh
    Error: Cannot find configuration directory: /etc/hadoop
    starting yarn daemons
    Error: Cannot find configuration directory: /etc/hadoop
    
    [hadoop@hadoop1]$ ./start-all.sh
    
     This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh
    
     Error: Cannot find configuration directory: /etc/hadoop
    
     starting yarn daemons
    
     Error: Cannot find configuration directory: /etc/hadoop
    

    这是因为使用了hadoop-env.sh默认的关于hadoop配置文件所在目录的配置,这里需要根据你自己的安装路径重新设置。修改hadoop-env.sh:

     export HADOOP_CONF_DIR=/app/hadoop/hadoop-2.5.0/etc/hadoop/
    

    最后别忘了:

     source  hadoop-env.sh

    相关文章

      网友评论

        本文标题:CentOS6.9安装hadoop中出现的问题

        本文链接:https://www.haomeiwen.com/subject/arijrxtx.html