首现非常感谢 虾皮(http://www.cnblogs.com/xia520pi/archive/2012/05/16/2503949.html) 安装过程是参照他的《Hadoop集群(第5期)_Hadoop安装配置》
进行配置安装的,但是安装过程中出现了一些细节问题,特此在这做个记录,有遇到和我相同或者类似问题的可以参照一下。
下面的配置介绍有些只是粗略的说一下,因为虾皮博客中已经介绍的很详细了,我就不再赘述了,重点在地方我会标注出来(一些细节)。
1.环境介绍
我用的是CentOS5.8 一个NameNode,两个DataNode。NameNode(Master)的IP:192.168.17.128;DataNode1(Slave_01)的IP:192.168.17.130;
DataNode2(Slave_02)的IP:192.168.17.131;
2.软件介绍
JDK:jdk1.6.0_38
Hdoop:hadoop-1.0.0.tar.gz
FTP工具:WinSCP
3.安装出现的细节问题
3.1 tmp目录
在hadoop下创建tmp文件夹(目录)以后,它默认所属用户为root,需要给hadoop用户添加读的权限
chown hadoop:hadoop tmp,但是这样还是会有问题
TaskTracker local dir /usr/local/hadoop/tmp/mapred/local error can not create directory: /usr/local/hadoop/tmp/mapred/local, removing from local dirs
出现这个问题的原因就是我们创建tmp目录的权限问题,chmod a+w tmp修改完成之后把NameNode,DataNode下的tmp目录清空,
然后重新执行hadoop namenode -format
3.2 core-site.xml文件
3.3 mapred-site.xml文件
3.4 hadoop 1.0.0版本,安装完之后敲入hadoop命令时,老是提示这个警告:
编辑"/etc/profile"文件,添加一个环境变量,之后警告消失------>export HADOOP_HOME_WARN_SUPPRESS=1
3.5 NameNode中namespaceID和DataNode中namespaceId不一致
其实出现此问题的原因很简单,每次namenode format会重新创建一个namenodeId,而tmp/dfs/data下包含了上次format下的id,namenode format清空了namenode下的数据,但是没有晴空datanode下的数据,导致启动时失败,所要做的就是每次fotmat前,清空tmp一下 的所有目录
当我们执行stop-all.sh的时候,发现datanode并没有启动
最简单的解决办法就是,把NameNode和所有DataNode中的tmp目录下的所有目录全部删除,然后重新在namenode上format,问题随之消失。
3.6 java.net.UnknownHostException: Slave_01 is not a valid Inet address
出现此问题的原因是主机名中不能加下划线。
3.7 Cannot delete /usr/local/hadoop/tmp/mapred/system. Name node is in safe mode
解决方案是:关闭安全模式 hadoop dfsadmin -safemode leave
4.问题总结
出现问题一定要去查看日志文件,不要因为一出错就不知所措,错误总有解决的办法。
这里所说的查看日志不仅仅是查看master的日志,也要去查看各个Slave的日志。