【问题标题】:Data division on Addition of node to distributed System分布式系统添加节点的数据划分
【发布时间】:2015-06-16 16:34:52
【问题描述】:

假设我有一个分布式计算机网络,其中我有 1000 个存储节点。 现在如果添加了一个新节点,应该怎么做? 意思是数据现在应该平均分为 1001 个节点?

如果节点范围是 10 而不是 1000,答案也会改变。

【问题讨论】:

  • 请说明是否是hadoop集群?
  • 是的,我对hadoop集群有这个疑问,但我也想知道一般情况下,在这种情况下应该做什么。

标签: hadoop distributed-computing


【解决方案1】:

客户端机器首先将文件拆分为块说块A,块B然后客户端机器与NameNode交互以询问放置这些块的位置(块A块B)。NameNode将数据节点列表提供给客户端写入数据。 NameNode 一般会为此选择离网络最近的datanode。

然后客户端从这些列表中选择第一个数据节点并将第一个块写入数据节点,数据节点将块复制到另一个数据节点。 NameNode 保存有关文件及其关联块的信息。

如果在 hadoop 集群中添加了数据节点,HDFS 不会将块从旧数据节点移动到新数据节点以平衡集群。为此,您需要运行平衡器。

平衡器程序是一个 Hadoop 守护程序,它通过移动块来重新分配块 从过度使用的数据节点到未充分利用的数据节点,同时遵守块副本放置策略,通过将块副本放置在不同的机架上来降低数据丢失的可能性。它移动块直到集群被认为是平衡的,这意味着每个数据节点的利用率(节点上已用空间与节点总容量的比率)与集群的利用率(集群上已用空间的比率)不同到集群的总容量)不超过给定的阈值百分比。

参考:Hadoop Definitive Guide 3rd edition Page No 350

作为 hadoop 管理员,您应该在一天内安排一次平衡作业,以平衡 hadoop 集群上的块。

平衡器相关的有用链接:

http://www.swiss-scalability.com/2013/08/hadoop-hdfs-balancer-explained.html

http://www.cloudera.com/content/cloudera/en/documentation/cdh4/latest/CDH4-Installation-Guide/cdh4ig_balancer.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-02
    • 1970-01-01
    • 2023-01-05
    • 1970-01-01
    • 1970-01-01
    • 2020-02-21
    相关资源
    最近更新 更多