hadoop - 在Hadoop中,复制因子和集群中的节点数之间有什么关系?

标签 hadoop hdfs bigdata

例如,如果复制因子为 3,并且集群中有 2 个节点。那么将创建多少个副本?它们将如何放置?

最佳答案

复制因子大于可用数据节点会破坏复制的目的。副本应该明确且唯一地放置在数据节点上。如果一个数据节点包含同一个 block 的多个副本(理论上),它不会提供额外的容错能力,因为如果该节点出现故障,两个副本都会丢失。因此每个节点只有一个副本就足够了。

并回答您的问题:

  1. What is the relationship between replication factor and number of datanodes in cluster? Ans. Maximum replication factor should be less than or equal to #datanodes

  2. If the replication factor is 3 and there are 2 nodes in cluster. Then how many replicas will be created?
    Ans. As far as I tried, only 2 replicas are created. (Try using hdfs dfs -setrep option)

  3. How will they be placed? Ans. They will be placed one per datanode.

因此,当您提供的复制因子多于 #datanodes 时,您尝试创建的额外副本将在 hdfs fsck 输出中作为 Missing replicas 提及。此外,相应的 block 将被视为复制不足的 block

关于hadoop - 在Hadoop中,复制因子和集群中的节点数之间有什么关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45730508/

相关文章:

linux 将 100GB 标准输出重定向到文件失败

hadoop - 保留更改后如何重新分配数据 block

hadoop - apache pig 没有连接到 hdfs

hadoop - HDFS block 拆分

hadoop - Hmaster 未使用 hadoop 2.7.1 启动 hbase 1.1.2

scala - 从spark中的json模式动态生成df.select语句

hadoop - YarnRuntimeException文件不存在

hadoop - reducer 类不能启动吗?在 reducer 日志中看不到 System.out.println 语句

hadoop - 如何通过保留修改时间将 HDFS 文件从一个集群复制到另一个集群

hadoop - HBase hive 集成