最近在学习hadoop,遇到了一些常见的问题,现在来总结一下,和大家分享,以后会持续更新遇见的其他问题。当使用hadoop 发现有问题时,首先使用jps 命令查看启动的节点是否正确,然后再去查看日志文件。
原创文章,转载请注明出处:http://blog.csdn.net/jessonlv/article/details/18221299
通常情况下,我们会遇见一下几种错误:
1、设置主机名错误
看日志,会发现下面的错误:
ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: java.net.UnknownHostException: Invalid hostname for server: master
2、ip 设置错误
看日志,发现下面的错误
ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: java.net.BindException: Problem binding to book0/192.168.1.100:9000 : Cannot assign requested address
3、hostname 不能带有下划线,不能数字开头
hostname 含有下划线,也会造成启动失败。
启动完成后,一定使用jps 命令查看5 个节点是否全部成功启动。如果哪个节点没有启
动,请查看对应的log 日志。日志的默认目录是$HADOOP_HOME/logs。
以下是我的日志截图:
文件命名是有规律的,“hadoop-[当前用户名]-[节点名称]-[主机名].log”我们只查看log结尾的文件。如果是namenode 节点没有启动,查看hadoop-root-namenode-book0.log 文件。
4、多次执行hadoop 格式化
现象:在Hadoop-root-datanode-master.log 中有如下错误:
ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in
5、防火墙没有关闭
从本地往hdfs 文件系统上传文件,出现如下错误:
这个问题最有可能就是防火墙没有关闭,导致节点DataNode 与节点NameNode 通信失败。可以使用service iptables status 命令关闭防火墙。这样关闭后,重启操作系统时,防火墙有可能重启,可以关闭自动重启功能。使用chkconfig iptables off 关闭。
6、安全模式导致的错误
错误提示如下:
org.apache.hadoop.dfs.SafeModeException: Cannot delete ..., Name node is in safe mode
总结:以上是几天学习hadoop的时候,遇到的几个问题,后面的学习过程中肯定会遇见各种各样的问题,我会一一记下来,并找出解决方法,持续更新这篇文章。
另外,我会将学习过程和做的笔记和大家分享。
最后,最近发现很多论坛扒了我的文章,让我很是苦恼,不知道广大同学有什么解决方法,帮忙支支招,谢谢大家啦~
2014/1/14更新:
今天在配置hadoop的配置文件的时候,犯了一个小小的疏忽,请看下面:
我在配置hadoop-env.sh 的时候,
这个文件的第九行的内容原来是:
#export JAVA_HOME=/usr/lib/jdk-1.6.0/我们需要将此改为我们自己的jdk目录,我们的目录是/use/local/jdk
找不到jdk,呵呵,实在不该粗心大意,记录下来,长个记性!!!!