dask读取hdfs文件时报错connect hdfs error

31 篇文章 0 订阅
31 篇文章 0 订阅

问题详情:

/arrow/cpp/src/arrow/filesystem/hdfs.cc:51: Failed to disconnect hdfs client: IOError: HDFS hdfsFS::Disconnect failed, errno: 9 (Bad file descriptor)
Traceback (most recent call last):
File "/home/tdops/fucheng.pan/ray-code/read.py", line 15, in
print(fs.FileSystem.from_uri("hdfs:"))
File "pyarrow/_fs.pyx", line 347, in pyarrow._fs.FileSystem.from_uri
File "pyarrow/error.pxi", line 122, in pyarrow.lib.pyarrow_internal_check_status
File "pyarrow/error.pxi", line 99, in pyarrow.lib.check_status
OSError: HDFS connection failed

dask及相关库的版本如下:

pyarrow                   15.0.2
dask                      2024.4.0
dask-expr                 1.0.6
fsspec                    2024.3.1

解决办法:

先将 fsspec 降至  2022.8.2 版本,如果再不行,将pyarrow降至 7.0.0 解决

相关解决原文:https://github.com/apache/arrow/issues/29187

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
如果不使用HDFS,可以考虑使用Dask的分布式文件系统(Dask Distributed)来存储数据和结果。Dask Distributed是一个轻量级的分布式文件系统,可以在集群中快速地存储和检索数据。 以下是使用Oozie协调Dask任务,不使用HDFS的步骤: 1. 安装Dask:首先需要在所有计算节点上安装DaskDask Distributed,以便能够运行Dask任务和存储数据和结果。可以使用pip或conda等工具来安装DaskDask Distributed。 2. 编写Dask任务:使用Python编写Dask任务的代码。在Dask任务中,需要将数据和结果存储到Dask Distributed中。 3. 配置Dask集群:在Dask任务中,需要配置Dask集群的地址和端口等信息,以便任务能够在集群中运行。可以使用Dask的命令行工具或API来配置集群。 4. 编写Oozie工作流:使用Oozie的工作流定义语言(WDL)编写一个XML文件来定义工作流。在XML文件中,需要定义一个Shell action来运行Dask任务。Shell action中的命令行需要包含启动Dask集群和运行Dask任务的命令。 5. 提交工作流:将工作流XML文件上传到HDFS,并使用Oozie的命令行工具提交工作流。 6. 监控工作流运行:可以使用Oozie的Web控制台或命令行工具来监控工作流的运行状态和日志信息。 需要注意的是,在Dask任务中需要将数据和结果存储到Dask Distributed中,可以使用Dask Distributed的API来实现。同,还需要在Oozie工作流中配置相应的输入输出路径,以便能够读取和写入数据和结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lytcreate.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值