本人学习Hadoop,尝试使用两台物理机器来安装部署,网上的参考比较多,推荐:http://www.cnblogs.com/xia520pi/archive/2012/05/16/2503949.html
在安装和执行过程中仍遇到些问题,记录如下:
1. ssh免密码登录本地有问题
本地ssh localhost仍然需要hadoop用户的密码
使用ssh -v localhost,输出信息中包括:
debug1: Unspecified GSS failure. Minor code may provide more information
Credentials cache file '/tmp/krb5cc_502' not found
解决:要确保~/.ssh目录的访问权限是700,拥有者是hadoop用户。
[hadoop@Master ~]$ ll -d .ssh
drwx------ 2 hadoop hadoop 4096 3月 31 10:01 .ssh
2.启动hadoop,./start-all.sh时有警告信息,
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
问题,查网上是因为Linux是64位,但hadoop是编译为32位的。不过只是警告,可以不用管,如果要解决,参考下面方法。
解决:下载hadoop的源码重新编译。
如何编译,可参考:
http://www.ercoppa.org/Linux-Compile-Hadoop-220-fix-Unable-to-load-native-hadoop-library.htm
http://www.csrdu.org/nauman/2014/01/23/geting-started-with-hadoop-2-2-0-building/
3. 执行hadoop fs -ls出错
ls: `.': No such file or directory
问题是还没有在HDFS中创建当前用户的home目录。
解决:执行
hadoop fs -mkdir -p /user/[current login user]
如果是hadoop用户,执行下面的命令创建hadoop用户的home目录。
[hadoop@Master hadoop]$ hadoop fs -mkdir -p /user/hadoop