Centos下安装hadoop-fuse时关于lib类库的问题
该问题在安装hadoop以及hadoop-fuse时遇到,困扰了很久。
本人安装hadoop时操作系统Centos5.6,64位机。用Cloudera安装好Hadoop-0.20,以及hadop-fuse,但是在hadoop安装目录下用:ldd bin/fuse_dfs 命令发现有几个问题:
1.找不到 libjvm.so和libhdfs.so.0文件。 2.本机是64位机,其余的lib文件本应该找/lib64文件下的对应文件,现在却都找到/lib文件夹下。具体如下图:
我不确定我以下的理解是不是完全正确,但是我用下面的方法确实将以上两个问题解决了。
先说问题2,64位机,lib文件却到/lib下找,而不是/lib64下。原因:是fuse的lib类库安装的有问题。解决办法:我选择的是将fuse卸载,注意这里除了要将fuse卸载,还要将fuse原有的类库一并卸载,再重新安装。因为我的hadoop和hadoop-fuse是通过cloudera安装的所以卸载:sudo yum remove hadoop-0.20-fuse , sudo yum remove fuse-libs 。再重新安装fuse,此时重新安装的类库是ok的,通过ldd 命令会发现lib的类会在/lib64下找到。问题解决。如下图:
问题1:找不到libjvm.so 和libhdfs.so.0文件。解决办法:从源文件中找到该文件拷贝到/lib64目录下。libjvm.so是java的一个文件,它的路径是 jdk安装目录/jre/lib/amd64/server/libjvm.so ,将该文件拷贝到/lib64下。libhdfs.so.0是hadoop的一个文件,下载cloudera的hadoop源码包 hadoop-0.20-cdh3u0,libhdfs.so.0所在的路径是hadoop-0.20-cdh3u0/c++/Linux-amd64-64/lib/下,找到该文件,同样拷贝到/lib64下。再ldd一下命令就可以找到显示找到。问题解决。