hadoop学习笔记
1.集群搭建时,配置master无密码登陆slave时,需要注意几个目录的权限。
http://www.linuxidc.com/Linux/2012-07/65253.htm
2.hadoop集群启动遇到的相关问题
(1)一直报错property标签缺少/,修改三个配置文件后也没用,此时需要重启节点
(2)使用start-all.sh启动整个集群以后,DataNode节点的DataNode和TaskTracker进程过几秒钟以后就关闭,节点死亡。
日志中报java.net.NoRouteToHostException.这是由于防火墙的原因,需要关闭NameNode的防火墙。
见:http://www.linuxidc.com/Linux/2012-05/59747p2.htm
关闭防火墙第一种方式:service iptables stop 立即生效,重启后失效
关闭防火墙第二种方式:cfkconfig iptables off 重启后永久生效(很明显我们应该选第二种)
(3)NameNode启动失败,日志报错:java.io.FileNotFoundException:/home/node1/name/current/VERSION(Permission
denied),这是current权限不对,一般是由于中途切换到root尝试启动,导致root更改了此文件夹。用chmod修改回来即可
。见:http://hi.baidu.com/kqogje/item/417f8eab8496fb258819d371
(4)使用start-all.sh命令时,提示 HADOOP_HOME is deprecated.
解决办法:在/etc/profile中设置Hadoop环境变量时,不要用HADOOP_HOME,改用HADOOP_INSTALL
为了使node1用户能在任意目录下运行start-all.sh等,需要在/etc/sudoers中添加 node1 ALL(ALL) ALL,同时要
添加HADOOP环境变量
(5)如果DataNode无法启动而且报错namespaceID不一致,则是因为频繁的格式化NameNode导致的。
NameNode的/home/node1/name/current/VERSION中的namespaceID必须与
DataNode的/home/node1/data/current/VERSION中的namespaceID一致。
解决办法:删掉namenode的name与tmp目录,删掉datanode的data和另一个目录。重新格式化namenode
(6)为了在hadoop的web端能正常访问所有的页面,datanode也要关闭防火墙,
用root帐户执行命令:service iptables stop