`
lc87624
  • 浏览: 142733 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用python访问hdfs——pyhdfs库的编译&安装

阅读更多
首先可以参考这两篇文档:
http://code.google.com/p/libpyhdfs/source/browse/trunk/INSTALL
http://www.cnblogs.com/zhangmiao-chp/archive/2011/05/04/2036665.html

然后补充两个细节:
1. 我在执行:
apt-get install libhdfs0-dev

的时候提示找不到包,改成:
apt-get install libhdf4-dev

之后安装成功。

2. 文档一中提到:
引用
You can copy your libhdfs.so into `lib' directory.

其中的libhdfs.so位于hadoop的目录下,在我这边是位于hadoop-1.0.3-bin/c++/Linux-i386-32/lib/下,编译pyhdfs时需要用到。

pyhdfs编译安装成功后,在python代码中
import pyhdfs

可能仍然会报错:
引用
ImportError: libhdfs.so.0: cannot open shared object file: No such file or directory


此时需要编辑/etc/ld.so.conf ,将上文提到的hadoop-1.0.3-bin/c++/Linux-i386-32/lib/目录地址添加进去,然后执行
sudo /sbin/ldconfig -v

使配置生效即可。
分享到:
评论
4 楼 u010347372 2014-03-23  
whxiyi100829 写道
使用import pyhdfs没问题
当用fs = pyhdfs.connect('192.168.1.10',9000)调用时报的上面的错误~
谢谢啦~

我也出现相同相同的问题,请问您是如何解决的?
3 楼 lc87624 2012-12-23  
whxiyi100829 写道
使用import pyhdfs没问题
当用fs = pyhdfs.connect('192.168.1.10',9000)调用时报的上面的错误~
谢谢啦~

貌似你这应该是hadoop配置的问题,信息有限,具体原因我也不太清楚,你看看是不是少了jar包?
2 楼 whxiyi100829 2012-12-17  
使用import pyhdfs没问题
当用fs = pyhdfs.connect('192.168.1.10',9000)调用时报的上面的错误~
谢谢啦~
1 楼 whxiyi100829 2012-12-17  
你好,我按照你所说的走了好几遍,出现如下错误,能帮忙解决一下不?
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/configuration/Configuration
        at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.<init>(DefaultMetricsSystem.java:37)
        at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.<clinit>(DefaultMetricsSystem.java:34)
        at org.apache.hadoop.security.UgiInstrumentation.create(UgiInstrumentation.java:51)
        at org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:219)
        at org.apache.hadoop.security.UserGroupInformation.ensureInitialized(UserGroupInformation.java:187)
        at org.apache.hadoop.security.UserGroupInformation.isSecurityEnabled(UserGroupInformation.java:239)
        at org.apache.hadoop.security.KerberosName.<clinit>(KerberosName.java:83)
        at org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:212)
        at org.apache.hadoop.security.UserGroupInformation.ensureInitialized(UserGroupInformation.java:187)
        at org.apache.hadoop.security.UserGroupInformation.isSecurityEnabled(UserGroupInformation.java:239)
        at org.apache.hadoop.security.UserGroupInformation.getLoginUser(UserGroupInformation.java:438)
        at org.apache.hadoop.security.UserGroupInformation.getCurrentUser(UserGroupInformation.java:424)
        at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:111)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.configuration.Configuration
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
        ... 13 more
我用的是hadoop-1.0.2

相关推荐

Global site tag (gtag.js) - Google Analytics