如何从hadoop集群中删除datanode而不丢失数据
问题描述:
我想从我的hadoop集群中删除datanode,但不想丢失我的数据。是否有任何技术使得我要删除的节点上的数据可能会被复制到扩展datanode中?如何从hadoop集群中删除datanode而不丢失数据
答
你的hadoop集群的复制因素是什么? 如果它是默认值,通常是3,那么可以直接删除数据节点,因为数据会自动被复制。这个过程通常由名称节点控制。 如果将群集的复制因子更改为1,那么如果删除节点,则其中的数据将丢失。你不能进一步复制它。
假设我有4个节点,我想删除它们中的2个,是我的数据在删除datanodes会自动复制到两个datanode的其余部分..... – Sanjeev
你有4个节点,你删除了一个。这意味着剩下3个节点,并且每个节点包含相同的数据,因为复制因子为3.当删除一个节点时,名称节点无法为第三个副本创建槽。因此,它会一直抱怨,并会永久地尝试将它们带到预期的复制因子.HDFS系统有一个参数复制因子,它告诉namenode每个块应该是多么复制。在复制因素指定的系统按照指定的次数复制每个块之前,它会一直试图这样做。 – Shravanya
这意味着我不会丢失我的数据,并且在删除第4个节点中的第2个节点后,我们还可以将复制值更改为2到hdfs-site.xml中。 – Sanjeev