我是apachehadoop的新用户。有一刻我不明白。我有一个简单的集群(3个节点)。每个节点都有大约30gb的可用空间。当我查看hadoop的概述站点时,我看到dfs剩余:90.96gb。我将复制因子设置为1。然后我创建一个50gb的文件并尝试将其上传到hdfs。但空间已经用完了。为什么?我不能上传一个节点的可用空间超过一个的文件吗?
7lrncoxx1#
根据hadoop:权威指南hadoop的默认策略是将第一个副本放置在与客户机相同的节点上(对于在集群外运行的客户机,节点是随机选择的,尽管系统尝试不选择太满或太忙的节点)。第二个复制品放置在与第一个不同的机架上(机架外),随机选择。第三个复制副本与第二个复制副本放在同一机架上,但随机选择在不同的节点上。进一步的副本被放置在集群上的随机节点上,尽管系统试图避免在同一机架上放置太多副本。这种逻辑是有意义的,因为它减少了不同节点之间的网络抖动。我认为这取决于客户端是否与hadoop节点相同。如果客户机是hadoop节点,那么所有的拆分都将在同一个节点上。尽管集群中有多个节点,但这并不能提供更好的读/写吞吐量。如果客户机与hadoop节点不同,则会为每个拆分随机选择节点,因此拆分会分布在集群中的节点上。现在,这提供了更好的读/写吞吐量。
1条答案
按热度按时间7lrncoxx1#
根据hadoop:权威指南
hadoop的默认策略是将第一个副本放置在与客户机相同的节点上(对于在集群外运行的客户机,节点是随机选择的,尽管系统尝试不选择太满或太忙的节点)。第二个复制品放置在与第一个不同的机架上(机架外),随机选择。第三个复制副本与第二个复制副本放在同一机架上,但随机选择在不同的节点上。进一步的副本被放置在集群上的随机节点上,尽管系统试图避免在同一机架上放置太多副本。这种逻辑是有意义的,因为它减少了不同节点之间的网络抖动。
我认为这取决于客户端是否与hadoop节点相同。如果客户机是hadoop节点,那么所有的拆分都将在同一个节点上。尽管集群中有多个节点,但这并不能提供更好的读/写吞吐量。如果客户机与hadoop节点不同,则会为每个拆分随机选择节点,因此拆分会分布在集群中的节点上。现在,这提供了更好的读/写吞吐量。