gpt4 book ai didi

python - 如何在python中使用pyarrow连接到hdfs

转载 作者:可可西里 更新时间:2023-11-01 14:55:23 24 4
gpt4 key购买 nike

我已经安装了 pyarrow 并想连接到 Hadoop 集群中的 hdfs 文件。我有以下行,它给了我错误。

 fs = pa.hdfs.connect(host='...', 50057, user='...', kerb_ticket='/tmp/krb5cc_0')

这是我收到的错误信息

ArrowIOError: Unable to load libhdfs

我应该如何安装 libhdfs?我还需要做什么其他依赖项/设置?

最佳答案

pyarrow.hdfs.connect(host='default', port=0, user=None, kerb_ticket=None, driver='libhdfs', extra_conf=None)

你必须确定 libhdfs.so$HADOOP_HOME/lib/native以及 $ARROW_LIBHDFS_DIR .

对于 HADOOP :

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

据我所知,最后一个版本是 Hadoop 3.2.0

您可以使用 DistributedCache 加载任何 native 共享库以分发和符号链接(symbolic link)库文件。

此示例向您展示如何分发共享库 mylib.so,以及如何从 MapReduce 任务加载它。 see informations

  1. 首先将库复制到HDFS:bin/hadoop fs -copyFromLocal mylib.so.1 /libraries/mylib.so.1

  2. 作业启动程序应包含以下内容:

    DistributedCache.createSymlink(conf);DistributedCache.addCacheFile("hdfs://host:port/libraries/mylib.so.1#mylib.so", conf);

  3. MapReduce 任务可以包含:System.loadLibrary("mylib.so");

注意:如果您下载或构建了 native hadoop 库,则无需使用 DistibutedCache 使该库可用于您的 MapReduce 任务。

关于python - 如何在python中使用pyarrow连接到hdfs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56743635/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com