当我将文件上传到HDFS时,如果我将复制因子设置为1,那么文件拆分将驻留在一台计算机上,或者拆分将分布到网络上的多台计算机上?
hadoop fs -D dfs.replication=1 -copyFromLocal file.txt /user/ablimit发布于 2011-10-03 13:45:06
根据Hadoop : Definitive Guide的说法
Hadoop的默认策略是将第一个副本放置在与客户端相同的节点上(对于在群集外部运行的客户端,将随机选择一个节点,尽管系统会尝试不选择太满或太忙的节点)。第二个副本放置在与第一个副本不同的机架上(机架外),随机选择。第三个副本与第二个副本放置在相同的机架上,但位于随机选择的不同节点上。虽然系统会尽量避免在同一机架上放置太多副本,但会将更多副本放置在群集上的随机节点上。
这个逻辑是有意义的,因为它减少了不同节点之间的网络聊天。但是,这本书是在2009年出版的,Hadoop框架有很多变化。
我认为这取决于客户端是否与Hadoop节点相同。如果客户端是Hadoop节点,则所有拆分都将位于同一节点上。尽管集群中有多个节点,但这并不能提供更好的读/写吞吐量。如果客户端与Hadoop节点不同,则会为每个拆分随机选择节点,因此拆分将分布在集群中的节点上。现在,这提供了更好的读/写吞吐量。
写入多个节点的一个优点是,即使其中一个节点宕机,也可能会有几个拆分中断,但至少可以通过某种方式从剩余拆分中恢复一些数据。
发布于 2011-10-04 01:07:50
如果将replication设置为1,则文件将仅出现在客户端节点上,即您要从其上载文件的节点上。
发布于 2015-08-25 19:00:11
HDFS复制因子用于制作数据的副本(即)如果您的复制者因子为2,则您上传到HDFS的所有数据都将具有副本。
https://stackoverflow.com/questions/7630787
复制相似问题