最近在学习Hadoop,在Hadoop的集群环境部署这块遇到了很多坑,在这里记录下,希望对遇到同样问题的小伙伴有一点点帮助。
具体安装步骤是根据大神石山园的博客进行的,每个步骤都写的很详细,大家可以参考,地址如下:
http://www.cnblogs.com/shishanyuan/p/4699644.html
问题一:
Hadoop配置完成后,调用hdfs namenode -format 进行格式化NameNode时出现无法加载org.apache.hadoop.hdfs.server.namenode.NameNode类的错误,该错误是由于没有把对应的jar包的路径加入到环境变量中,在Hadoop部署中,需要用用到的环境变量有:
export JAVA_HOME=$JAVA_HOME
export HADOOP_HOME=/app/hadoop/hadoop-2.7.4
export PATH=$PATH :$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS=”-Djava.library.path=$HADOOP_HOME/lib/native”
export HADOOP_CLASSPATH=${JAVA_HOME}/lib/tools.jar
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
环境变量加入后问题解决。
问题二:
启动HDFS时出现如下报错
这个报错信息里面分两个错误
1、Unable to load native-hadoop library for your platform… using builtin-java classes where applicable
这个问题是由于我在最开始加入Hadoop环境变量
export HADOOP_OPTS=”-Djava.library.path=$HADOOP_HOME/lib/native”时
没有加最后一个native,导致启动时招不到Hadoop本地的library,加入之后问题解决。
2,Incorrect configuration: namenode address dfs.namenode.servicerpc-address or dfs.namenode.rpc-address is not configured.
Starting namenodes on []
Error: Cannot find configuration directory: /etc/hadoop
Error: Cannot find configuration directory: /etc/hadoop
Starting secondary namenodes [0.0.0.0]
Error: Cannot find configuration directory: /etc/hadoop
这个问题我查资料的时候很多人都遇到了,解决的方案有如下
首先检查core-site.xml、hdfs-site.xml、mapreduce-site.xml、yarn-site.xml的配置是否正确,然后进行一下步骤:
①vim /etc/hosts文件中ip配置
将127.0.0.1 localhost改为Hadoop主机IP localhost,保存后重启服务,
service network restart
②若执行①后继续出现该错误,在环境变量中需要加入
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
问题解决!
这两个问题是在安装部署过程中遇到的巨坑问题,其余的小问题网上资料都很多,在这里只是Mark一下。
爬坑路漫长,且爬且珍惜。