首页 > 代码库 > hadoop配置错误

hadoop配置错误

经过上一周的郁闷期(拖延症引发的郁闷),今天终于开始步入正轨了。今天主要是解决hadoop配置的错误以及网络时断时续的问题。

首先说明一下之前按照这篇文章的方法配置完全没有问题,但是等我配置好了发现hadoop的版本和我的需求有点不一样,于是重新安装低版本的hadoop,结果就遇到问题了。

一,Hadoop错误

1. dataNode总是启动不了?  no datanode to stop

怎么解决的呢。不需要hadoop namenode -format;把 dfs/data 删除即可,restart就可以了 。你可以先用hadoop namenode -format命令:

[root@localhost hadoop]# bin/hadoop namenode -format
11/12/30 18:19:21 INFO namenode.NameNode: STARTUP_MSG: 
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG:   host = localhost.localdomain/127.0.0.1
STARTUP_MSG:   args = [-format]
STARTUP_MSG:   version = 0.20.203.0
STARTUP_MSG:   build = [url]http://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20-security-203[/url] -r 1099333; compiled by ‘oom‘ on Wed May  4 07:57:50 PDT 2011
************************************************************/
Re-format filesystem in /tmp/hadoop-root/dfs/name ? (Y or N)

 

此时你就找到dfs文件夹了,然后删除里面的data子文件夹jiiuhaole。

 

参考: http://bbs.hadoopor.com/archiver/tid-3954.html

 

2. nameNode总是启动不了?  no namenode to stop

  重新定义pid文件的存放位置:在启动hadoop的用户.bashrc内或者hadoop/conf/hadoop-env.sh内增加配置:

 export HADOOPPIDDIR=/home/hadoop/pids


Hadoop在执行stop-all.sh或stop-dfs.sh的时候,经常会遇到’no namenode to stop’这个错误,结果就是你stop了Hadoop或者DFS,使用jps查看时,namenode的进程还是存在。
如果start-hadoop.sh或start-dfs.sh后直接执行stop-hadoop.sh或者stop-dfs.sh,则不会发生这个现象。

为什么会这样呢?

因为Hadoop用来保存进程id的文件默认是在/tmp目录下,而/tmp会被系统定期清理,这样stop-all.sh或stop-dfs.sh的时候就有可能找不到namenode的进程pid。不能正常关闭namenode。

如何解决呢?

重新定义pid文件的存放位置:在启动hadoop的用户.bashrc内或者hadoop/conf/hadoop-env.sh内增加配置:
export HADOOPPIDDIR=/home/hadoop/pids
这样就OK了。
网上很多帖子说执行hadoop namenode -format,然后重启hadoop,这是错误的做法。这样直接格式化DFS,导致丢失数据。

参考:http://blog.ownlinux.net/2012/06/no-namenode-to-stop-error-in-hadoop.html

 

3. Bad connection to FS. command aborted.

Bad connection to FS. command aborted. exception: Call to localhost/127.0.0.1:88  

88 failed on connection exception: java.net.ConnectException: Connection refused  

: no further information    

错误提示“Bad connection to FS. command aborted. exception: Call tolocalhost/127.0.0.1:88

88failed on connection exception: java.net.ConnectException: Connection refused

:no further information”

 起初怀疑是fs服务没有启动,但反复关闭启动多次后仍没用,请教高手后,被建议重新格式化namenode,就可以了。

格式化指令如下(在hadoop的bin目录下):

 

Shell代码  

1.           $ ./hadoop namenode -format  

成功之后重启hadoop就可以了

2如果错误还存在,那么手动删除文件

把/tmp目录下面跟hadoop有关的文件全部删除,把home/hadoop/pids也删掉,反正多多删掉就好了。

 

参考:http://blog.csdn.net/yangkai_hudong/article/details/18731395

 

 

二,网络时断时许错误

最近用实验室的网络,总是时断时续,一会儿网页瞬间打开,更多的时候压根打不开网页。

试了很多方法,神码arp病毒啊,神码网络连接啊,。神码神码的。。

结果将自己的有限网络IP设为固定的就好了,不要用动态分配的IP  (DHCP 协议)。