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

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(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: 
[ERROR] * 

看这个错误是在包的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中出现的问题)