用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