首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在python中使用py箭头连接hdfs

如何在python中使用py箭头连接hdfs
EN

Stack Overflow用户
提问于 2019-06-24 20:37:50
回答 1查看 4.8K关注 0票数 3

我已经安装了pyarrow,并希望连接到Hadoop集群中的hdfs文件。我有下面一行,这会给我带来错误。

代码语言:javascript
复制
 fs = pa.hdfs.connect(host='...', 50057, user='...', kerb_ticket='/tmp/krb5cc_0')

这是我收到的错误信息

代码语言:javascript
复制
ArrowIOError: Unable to load libhdfs

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

EN

回答 1

Stack Overflow用户

发布于 2019-06-24 20:48:00

代码语言:javascript
复制
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

代码语言:javascript
复制
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加载任何本机共享库,用于分发和符号链接库文件。

此示例向您展示了如何分发共享库mylib.so,并从MapReduce任务加载它。见资料

  1. 首先将库复制到HDFS:bin/hadoop fs -copyFromLocal mylib.so.1 /libraries/mylib.so.1
  2. 职务启动程序应包括以下内容: DistributedCache.addCacheFile("hdfs://host:port/libraries/mylib.so. 1#mylib.so,conf);
  3. MapReduce任务可以包含:System.loadLibrary("mylib.so");

注意:如果下载或构建了本机hadoop库,则不需要使用DistibutedCache使库可用于MapReduce任务。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56743635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档