[hadoop@xuniji ~]$ hadoop namenode -format
DEPRECATED: Use of this script to execute hdfs command is deprecated.
Instead use the hdfs command for it.
/home/hadoop/apps/hadoop-2.6.4/bin/hdfs: line 276: /root/java/jdk1.7.0_72/bin/java: 权限不够
/home/hadoop/apps/hadoop-2.6.4/bin/hdfs: line 276: exec: /root/java/jdk1.7.0_72/bin/java: cannot execute: 权限不够
[hadoop@xuniji ~]$ which java //查看在hadoop用户下没有安装jdk
/usr/bin/which: no java in (/root/java/jdk1.7.0_72/bin:/root/java/jdk1.7.0_72/bin:/usr/lib/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/root/apps/jdk1.7.0_45/bin:/home/hadoop/bin:/root/apps/jdk1.7.0_45/bin:/home/hadoop/apps/hadoop-2.6.4/bin:/home/hadoop/apps/hadoop-2.6.4/sbin)
[hadoop@xuniji ~]$ echo $JAVA_HOME //在root用户下安装了jdk,其他用户没有访问权限
/root/java/jdk1.7.0_72
[hadoop@xuniji ~]$ java -version //查看是否有权限访问,果然问题在这里 没有访问权限
-bash: java: command not found
解决:
由于root下的文件其他用户没有访问权限,所以
我的解决方案 : 修改了root用户下jdk的环境变量,把jdk文件移动到usr/local文件夹下
[root@xuniji ~]$ mv apps/jdk1.7.0_45 /usr/local/
修改root用户的环境变量
[root@xuniji ~]$ vi /etc/profile
export JAVA_HOME=/usr/local/jdk1.7.0_72/
export HADOOP_HOME=/home/hadoop/apps/hadoop-2.6.4
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
#set java environment
JAVA_HOME=/usr/local/jdk1.7.0_72/ //当时我修改时忽略了这一行,导致一直没有成功困扰了几个小时
[root@xuniji ~]$ source /etc/profile //使修改的配置立即生效
修改普通用户的环境变量
[hadoop@xuniji ~]$ vi .bash_profile //添加以下几行
export JAVA_HOME=/usr/local/jdk1.7.0_72/
export PATH==$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib.tools.jar
export JRE_HOME=$JAVA_HOME/jre
[hadoop@xuniji ~]$ source .bash_profile
[hadoop@xuniji ~]$ echo $JAVA_HOME //检查是否修改成功
[hadoop@xuniji ~]$ Java -version //查看是否可以运行
由于在安装hadoop集群中修改了一些配置,有jdk运行的目录,这里需要再重新修改一下,不然还是会格式化失败,需修改的配置:
[hadoop@xuniji hadoop]$ vi hadoop-env.sh[hadoop@xuniji hadoop-2.6.4]$ sudo vi /etc/profile
修改完环境变量后我的格式化就成功了