关于HADOOP伪分布模式下启动出错的有关问题

关于HADOOP伪分布模式下启动出错的问题

用start-all.sh进行启动后

-bash-3.2# bin/start-all.sh

Warning: $HADOOP_HOME is deprecated.

 

starting namenode, logging to /var/log/hadoop/root/hadoop-root-namenode-MAPS-1.out

localhost: starting datanode, logging to /usr/local/hadoop-1.2.1/libexec/../logs/hadoop-root-datanode-MAPS-1.out

localhost: starting secondarynamenode, logging to /usr/local/hadoop-1.2.1/libexec/../logs/hadoop-root-secondarynamenode-MAPS-1.out

starting jobtracker, logging to /var/log/hadoop/root/hadoop-root-jobtracker-MAPS-1.out

localhost: starting tasktracker, logging to /usr/local/hadoop-1.2.1/libexec/../logs/hadoop-root-tasktracker-MAPS-1.out

 

使用jps查看进程,发现没有启动成功:

-bash-3.2# jps

15605 Jps

25406 Bootstrap

-bash-3.2#

 

查看日志显示:

-bash-3.2# vi /var/log/hadoop/root/hadoop-root-namenode-MAPS-1.log 

出现如下错误:

ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: java.lang.IllegalArgumentException: Does not contain a valid host:port authority: file:///
at org.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:184)
at org.apache.hadoop.hdfs.server.namenode.NameNode.getAddress(NameNode.java:198)
at org.apache.hadoop.hdfs.server.namenode.NameNode.getAddress(NameNode.java:228)
at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:262)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:497)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1268)
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1277)

 

最后上网查发现是应用core-site.xml文件的路径有误


使用strace跟踪进程
strace -fe open start-all.sh
发现引用的core-site.xml文件路径为"/etc/hadoop/core-site.xml"
可是我修改的core-site.xml文件路径为"/usr/local/hadoop/conf/core-site.xml"

好了,知道问题原因 就可以干活了:

使用如下命令,改变环境变量

export HADOOP_CONF_DIR=$HADOOP_HOME/conf

 

再次启动:

-bash-3.2# bin/start-all.sh

Warning: $HADOOP_HOME is deprecated.

 

starting namenode, logging to /var/log/hadoop/root/hadoop-root-namenode-MAPS-1.out

localhost: starting datanode, logging to /usr/local/hadoop-1.2.1/libexec/../logs/hadoop-root-datanode-MAPS-1.out

localhost: starting secondarynamenode, logging to /usr/local/hadoop-1.2.1/libexec/../logs/hadoop-root-secondarynamenode-MAPS-1.out

starting jobtracker, logging to /var/log/hadoop/root/hadoop-root-jobtracker-MAPS-1.out

localhost: starting tasktracker, logging to /usr/local/hadoop-1.2.1/libexec/../logs/hadoop-root-tasktracker-MAPS-1.out

 

使用jps查看进程,发现启动成功:

-bash-3.2# jps

15605 Jps

15306 SecondaryNameNode

15509 TaskTracker

15073 NameNode

25406 Bootstrap

15183 DataNode

15398 JobTracker