无法加载libhdfs

时间:2018-10-28 02:44:21

标签: python pyarrow

尝试使用pyarrow访问hdfs文件但无法使其正常工作,下面是代码,非常感谢。

[rxie@cedgedev03 code]$ python
Python 2.7.12 |Anaconda 4.2.0 (64-bit)| (default, Jul 2 2016, 17:42:40)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://anaconda.org

import pyarrow
import os
os.environ["JAVA_HOME"]="/usr/java/jdk1.8.0_121"
from pyarrow import hdfs
fs = hdfs.connect()
  

回溯(最近一次通话最后一次):文件“”,文件中的第1行   “ /opt/cloudera/parcels/Anaconda/lib/python2.7/site-packages/pyarrow/hdfs.py”,   连接Extra_conf = extra_conf中的第183行)文件   “ /opt/cloudera/parcels/Anaconda/lib/python2.7/site-packages/pyarrow/hdfs.py”,   第37行,init self._connect(host,port,user,kerb_ticket,driver,   extra_conf)文件“ pyarrow / io-hdfs.pxi”,第89行,在   pyarrow.lib.HadoopFileSystem._connect文件“ pyarrow / error.pxi”,行   83,在pyarrow.lib.check_status中pyarrow.lib.ArrowIOError:无法执行   加载libhdfs

1 个答案:

答案 0 :(得分:0)

您可能需要手动找到该文件,并使用ARROW_LIBHDFS_DIR环境变量进行指定。

使用locate -l 1 libhdfs.so查找文件。就我而言,该文件位于/opt/mapr/hadoop/hadoop-0.20.2/c++/Linux-amd64-64/lib下。

然后,将环境变量ARROW_LIBHDFS_DIR设置为此路径,以重新启动Python REPL。就我而言,我的命令如下所示:

ARROW_LIBHDFS_DIR=/opt/mapr/hadoop/hadoop-0.20.2/c++/Linux-amd64-64/lib python

这应该可以解决这个特殊问题。

(受https://gist.github.com/priancho/357022fbe63fae8b097a563e43dd885b启发)