Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中使用pyarrow连接到hdfs_Python_Hadoop_Hdfs_Pyarrow - Fatal编程技术网

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

如何在python中使用pyarrow连接到hdfs,python,hadoop,hdfs,pyarrow,Python,Hadoop,Hdfs,Pyarrow,我已经安装了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

我已经安装了
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\u HOME/lib/native
以及
$ARROW\u libhdfs\u 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加载任何本机共享库,以分发和符号链接库文件

此示例演示如何分发共享库mylib.so,并从MapReduce任务加载它

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

  • 作业启动计划应包含以下内容:

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

  • MapReduce任务可以包含:
    System.loadLibrary(“mylib.so”)


  • 注意:如果您下载或构建了本机hadoop库,则无需使用DistributedCache使该库可用于MapReduce任务。

    因此,我没有在运行python的机器上安装任何hadoop组件。我需要安装的hadoop库的最小集合是什么?bash-3.2$ls$ARROW_LIBHDFS_DIR示例libhadoop.so.1.0 LIBHDFS.a libnativetask.a libhadoop.a libhadoop.a libhadooppipes.a LIBHDFS.so libnativetask.so libhadoop.so libhadooputils.a LIBHDFS.so.0.0 libnativetask.so.1.0将hadoop客户端jar文件复制到我的机器上就足够了吗?你的意思是完整版本hadoop安装只是为了访问hdfs?请记住,我正在尝试使用客户端访问hadoop集群,我需要知道客户端上需要安装哪些依赖项