经过上一周的郁闷期(拖延症引发的郁闷),今天终于开始步入正轨了。今天主要是解决hadoop配置的错误以及网络时断时续的问题。
首先说明一下之前按照这篇文章的方法配置完全没有问题,但是等我配置好了发现hadoop的版本和我的需求有点不一样,于是重新安装低版本的hadoop,结果就遇到问题了。
一,Hadoop错误
1. dataNode总是启动不了? no datanode to
stop
怎么解决的呢。不需要hadoop namenode -format;把 dfs/data 删除即可,restart就可以了 。你可以先用hadoop
namenode -format命令:
[[email protected] 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 协议)。