以优化的局部性访问 HDFS 数据

问题描述 投票:0回答:1

我想知道,如何确保HDFS数据访问充分利用本地复制,尽量减少网络传输的使用。

我在 3 台机器上托管 HDFS,复制设置为 3。我们将它们命名为机器 A、B、C。机器 A 是名称节点,这 3 台机器都是数据节点。

目前,我正在读取类似以下代码的数据

# Run this code on machine A, B, C separately
import fsspec
import pandas as pd
with fsspec.open('hdfs://machine_A_ip:9000/path/to/data.parquet', 'rb') as fp:
    df = pd.read_parquet(fp)

我观察到我的网络连接流量巨大,上传和下载速度为 100+MB/s。无论我在哪台机器上运行(是否为 namenode)。

我还尝试在同一台机器上托管 Dask 和 Ray 集群。 但我认为 Dask 不支持此功能: Dask 与 HDFS 通信以优化数据局部性吗? - 堆栈溢出

我没有在文档中找到线索

python hadoop hdfs fsspec
1个回答
0
投票

你是对的,dask 不知道每个文件在集群中的位置。您需要以其他方式收集此信息; pyarrow,HDFS 的当前接口并未体现这一点。

© www.soinside.com 2019 - 2024. All rights reserved.