【问题标题】:Unable to load libhdfs无法加载 libhdfs
【发布时间】:2019-04-01 08:23:29
【问题描述】:

尝试使用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()

Traceback(最近一次调用最后一次):文件“”,第 1 行,在文件中 “/opt/cloudera/parcels/Anaconda/lib/python2.7/site-packages/pyarrow/hdfs.py”, 第 183 行,在连接 extra_conf=extra_conf) 文件中 “/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: Unable to 加载 libhdfs

【问题讨论】:

    标签: python pyarrow


    【解决方案1】:

    您可能需要手动定位此文件并使用 ARROW_LIBHDFS_DIR 环境变量指定它。

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

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

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

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

    (灵感来自https://gist.github.com/priancho/357022fbe63fae8b097a563e43dd885b

    【讨论】:

      猜你喜欢
      • 2011-10-05
      • 2021-11-19
      • 1970-01-01
      • 2018-03-26
      • 1970-01-01
      • 2011-01-24
      • 2010-10-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多