hadoop问题总结
1.启动hadoop、zookeeper、hbase后jps查看,服务已经都起来了。但是60010界面无法打开。50070正常,50030,nodes显示为0.查看日志:error: org.apache.hadoop.hdfs.server.namenode.SafeModeException:Cannot delete /home/hadoop/tmp/mapred/system. Name node is in safe mode.
System.这个文件不存在,执行./hadoop dfsadmin -safemode leave 后,50030正常
但是这样还是不行啊,应该自动可以退出安全模式的,可以查看一下日志,查看一下VERSION的ID是否一致。我重启后依然这样,查看了一下VERSION,又重新启动hadoop,竟然正常了,不清楚原因啊,奇怪了。
2.hadoop集群修改时间的后果
时间改动较大一般是hbase节点停止,直接启动即可。Hadoop没发现问题。
3.初次配置运行没什么问题MapReduce的例子也能正常运行,但是等若干天后再次运行时遇到了如下的问题:
hadoop@ubuntu:~$ hadoop/bin/start-all.sh
看不出什么问题,但是
hadoop@ubuntu:~$ jps
12181 Jps
11984 JobTracker
12132 TaskTracker
11557 SecondaryNameNode
hadoop@ubuntu:~$ hadoop/bin/stop-all.sh
stopping jobtracker
localhost: no tasktracker to stop
no namenode to stop
localhost: no datanode to stop
localhost: stopping secondarynamenode
问题出在哪里不是很清楚,不过貌似是由于每次start后,关机之前没有运行stop的缘故造成的。下面的方法应该有用:(此处是namespaceID除问题,也可以尝试手动修改namespaceID看是否可行)
1、先运行stop-all.sh
2、格式化namdenode,不过在这之前要先删除原目录,即core-site.xml下配置的<name>hadoop.tmp.dir</name>所指向的目录,删除后切记要重新建立配置的空目录,然后运行hadoop namenode -format
3、运行start-all.sh
原因分析:
通过多次断电重启发现,出现这种情况是因为namenode和datanode的tmp下的VERSION内的namespaceID不同。只要关闭服务的时候namespaceID相同,重启就没有问题。而什么原因会导致namespaceID变动,着还有待积累,现总结如下:
1.hadoop启动之后执行过format。