gpt4 book ai didi

hadoop - 我如何确保数据在 hadoop 节点之间均匀分布?

转载 作者:可可西里 更新时间:2023-11-01 14:15:50 26 4
gpt4 key购买 nike

如果我将数据从本地系统复制到 HDFS,我能否确保它在节点之间均匀分布?

PS HDFS保证每个 block 将存储在3个不同的节点上。但这是否意味着我文件的所有 block 都将在相同的 3 个节点上排序?或者 HDFS 会为每个新 block 随机选择它们吗?

最佳答案

如果您的复制设置为 3,它将被放置在 3 个独立的节点上。它所在的节点数由您的复制因子控制。如果您想要更大的分布,那么您可以通过编辑 $HADOOP_HOME/conf/hadoop-site.xml 并更改 dfs.replication 值来增加复制数。

我相信新 block 几乎是随机放置的。需要考虑跨不同机架的分布(当 hadoop 了解机架时)。有一个示例(找不到链接),如果您在 3 个和 2 个机架上进行复制,则 2 个 block 将位于一个机架中,第三个 block 将放置在另一个机架中。我猜想没有显示哪个节点在机架中获取 block 的偏好。

我还没有看到任何表明或声明将同一文件的 block 存储在同一节点上的偏好。

如果您正在寻找强制跨节点平衡数据的方法(以任何值进行复制),一个简单的选择是 $HADOOP_HOME/bin/start-balancer.sh,它将运行一个平衡过程以自动在集群周围移动 block 。这个和其他一些平衡选项可以在 Hadoop FAQs 中找到。

希望对您有所帮助。

关于hadoop - 我如何确保数据在 hadoop 节点之间均匀分布?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5065394/

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