hadoop 2.5.2执行bin/hdfs namenode -format报错

按照hadoop 2.5.2文档学习,在执行命令

bin/hdfs namenode -format

时,老是报错:

java.lang.NoClassDefFoundError: namecode


到网上搜了很多解决方法,有说修改

etc/hadoop/hadoop-env.sh增加

export HADOOP_COMMON_HOME=/root/test/hadoop-2.5.2

export HADOOP_PREFIX=/root/test/hadoop-2.5.2

等,试了,仍然报上面的错误。

后来突然想到JAVA环境变量,输入命令

echo $CLASSPATH
发现输出居然是:

.:/usr/local/java/jdk/jdk1.6.0_23/lib.tools.jar

注意看lib.tools.jar,明显错误,还有。少了dt.jar,肯定会报找不到类错误。

修改/etc/profile文件,如下:

JAVA_HOME=/usr/local/java/jdk/jdk1.6.0_23

CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar

PATH=$JAVA_HOME/bin:$PATH

export JAVA_HOME CLASSPATH PATH

建议大家在已经安装好的JDK的linux系统上学习Hadoop时,先检查下JDK环境变量是否正确。因为项目中有些人粗心大意,做事情不彻底,配错了环境变量,然后导致别人在上面运行JAVA项目时出现莫名奇妙的错误,希望不要被坑了。



版权声明:本文为博主原创文章,未经博主允许不得转载。

你可能感兴趣的:(hadoop 2.5.2执行bin/hdfs namenode -format报错)