首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >HDFS复制系数

HDFS复制系数
EN

Stack Overflow用户
提问于 2011-10-03 11:25:37
回答 4查看 17.5K关注 0票数 15

当我将文件上传到HDFS时,如果我将复制因子设置为1,那么文件拆分将驻留在一台计算机上,或者拆分将分布到网络上的多台计算机上?

代码语言:javascript
运行
复制
hadoop fs -D dfs.replication=1 -copyFromLocal file.txt /user/ablimit
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-10-03 13:45:06

根据Hadoop : Definitive Guide的说法

Hadoop的默认策略是将第一个副本放置在与客户端相同的节点上(对于在群集外部运行的客户端,将随机选择一个节点,尽管系统会尝试不选择太满或太忙的节点)。第二个副本放置在与第一个副本不同的机架上(机架外),随机选择。第三个副本与第二个副本放置在相同的机架上,但位于随机选择的不同节点上。虽然系统会尽量避免在同一机架上放置太多副本,但会将更多副本放置在群集上的随机节点上。

这个逻辑是有意义的,因为它减少了不同节点之间的网络聊天。但是,这本书是在2009年出版的,Hadoop框架有很多变化。

我认为这取决于客户端是否与Hadoop节点相同。如果客户端是Hadoop节点,则所有拆分都将位于同一节点上。尽管集群中有多个节点,但这并不能提供更好的读/写吞吐量。如果客户端与Hadoop节点不同,则会为每个拆分随机选择节点,因此拆分将分布在集群中的节点上。现在,这提供了更好的读/写吞吐量。

写入多个节点的一个优点是,即使其中一个节点宕机,也可能会有几个拆分中断,但至少可以通过某种方式从剩余拆分中恢复一些数据。

票数 11
EN

Stack Overflow用户

发布于 2011-10-04 01:07:50

如果将replication设置为1,则文件将仅出现在客户端节点上,即您要从其上载文件的节点上。

票数 1
EN

Stack Overflow用户

发布于 2015-08-25 19:00:11

  • 如果您的群集是单节点,则当您上载文件时,该文件将根据数据块大小溢出,并保留在单机中。
  • 如果您的群集是多节点,则当您上载文件时,该文件将根据数据块大小溢出,并将通过管道分发到群集中的不同数据节点,NameNode将决定应将数据移动到群集中的哪个位置。

HDFS复制因子用于制作数据的副本(即)如果您的复制者因子为2,则您上传到HDFS的所有数据都将具有副本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7630787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档