python - 使用pyarrow时无法加载libhdfs

标签 python hadoop hdfs pyarrow apache-arrow

我正在尝试通过Pyarrow连接到HDFS,但由于无法加载libhdfs库,因此无法正常工作。
libhdfs.so$HADOOP_HOME/lib/native中都包含$ARROW_LIBHDFS_DIR

print(os.environ['ARROW_LIBHDFS_DIR'])
fs = hdfs.connect()


bash-3.2$ ls $ARROW_LIBHDFS_DIR
examples        libhadoop.so.1.0.0  libhdfs.a       libnativetask.a
libhadoop.a     libhadooppipes.a    libhdfs.so      libnativetask.so
libhadoop.so        libhadooputils.a    libhdfs.so.0.0.0    libnativetask.so.1.0.0

我得到的错误:
Traceback (most recent call last):
  File "wine-pred-ml.py", line 31, in <module>
    fs = hdfs.connect()
  File "/Users/PVZP/Library/Python/2.7/lib/python/site-packages/pyarrow/hdfs.py", line 183, in connect
    extra_conf=extra_conf)
  File "/Users/PVZP/Library/Python/2.7/lib/python/site-packages/pyarrow/hdfs.py", line 37, in __init__
    self._connect(host, port, user, kerb_ticket, driver, extra_conf)
  File "pyarrow/io-hdfs.pxi", line 89, in pyarrow.lib.HadoopFileSystem._connect
  File "pyarrow/error.pxi", line 83, in pyarrow.lib.check_status
pyarrow.lib.ArrowIOError: Unable to load libhdfs

最佳答案

这解决了我的问题:

conda install libhdfs3 pyarrow
在您的script.py中:
import os
os.environ['ARROW_LIBHDFS_DIR'] = '/opt/cloudera/parcels/CDH/lib64/'
路径是libhdfs3所在的目录-在我的情况下,这是Cloudera托管lib的位置

关于python - 使用pyarrow时无法加载libhdfs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53087752/

相关文章:

python - 将字符串转换为 Python 对象

python - 使用 selenium Python 查找正确的 xpath

hadoop - Hive表中未读取V Json Data

Hadoop级联: CascadeException "no loops allowed in cascade" when cogroup pipes twice

hadoop - 插入 HCTAS 创建的表时权限被拒绝

hadoop - 无法创建目录/home/hadoop/hadoopinfra/hdfs/namenode/current

python - OS X 上预装了多少个版本的 python?

Java TCP 服务器在客户端断开连接之前不接收数据包

mysql - 从下面给出的示例数据中,删除名称和年龄组合上的重复项并打印结果

hadoop - 无法将点/检查点flink状态保存到AWS S3存储桶