hadoop配置错误

时间:2023-12-09 13:01:01

经过上一周的郁闷期(拖延症引发的郁闷),今天终于开始步入正轨了。今天主要是解决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

 

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

今天又遇到这个问题了,记录下我是怎么解决的:(参考:http://ghostjay.blog.51cto.com/2815221/515147)

1、先运行stop-all.sh

2、格式化namdenode,不过在这之前要先删除原目录,即core-site.xml下配置的<name>hadoop.tmp.dir</name>所指向的目录,删除后切记要重新建立配置的空目录,然后运行hadoop namenode -format

3、运行start-all.sh

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 协议)。