我的搭建过程基本上参考了如下几篇文章
http://blog.csdn.net/p_3er/article/details/9100639
http://www.cnblogs.com/zhengyuhong/p/3388474.html
这样的搭建过程网上已经很多啦,我只说说我中间也遇到一些问题
一直ssh localhost不成功
namenode和datanode启动不成功,执行stop-all.sh时,提示no namenode to stop
可以尝试如下方式:
1.如果一直ssh localhost不成功,试试
chmod 644 authorized_keys
2.按照第一篇文章,搭建伪分布式的时候,namenode总是启动不了,即用JPS命令查看没有namenode
于是我反复的去看core-site.xml,hdfs-site.xml和mapred.xml,最后发现hdfs-site.xml是这样的
所以我就将hdfs-site.xml中的dfs.name.dir和dfs.data.dir给注释掉了
再次运行start-all.sh
这次正常了,看了上面的第二篇博文,也没有配置这两个选项,不知到在伪分布式环境下没有这两个选项会不会有问题。
3.Name node is in safe mode.我这里遇到这个问题是因为刚刚执行啦start-all.sh,等了一会就好了
4.向hdfs集群中写入文件时,汇出现permission denied 或者是权限不足的异常,遇到这个情况,向hdfs-site.xml中加入如下属性:
<property> <name>dfs.permissions</name> <value>false</value> </property>
如果使用hdfs的api,需要指定hdfs的网络地址,如:hdfs://localhost:9000/test3,否则操作的就是本地的文件系统,也会出现权限不足的异常。