我设置了一个 Hadoop 集群 (HDP 2.6),其中包含 3 个节点,每个节点上都有以下 HDFS 安装点。
- /mnt/datadisk1
- /mnt/datadisk2
- /mnt/datadisk3
因此,我的 /etc/fstab
文件在三个节点中的每一个上都如下所示:
/dev/mapper/centos-home /home xfs defaults 0 0
...
# Here the HDFS Partitions:
/dev/sdb /mnt/datadisk1 xfs defaults 0 0
/dev/sdc /mnt/datadisk2 xfs defaults 0 0
/dev/sdd /mnt/datadisk3 xfs defaults 0 0
路径也在 HDFS 配置 (Ambari) dfs.datanode.data.dir =/mnt/datadisk1,/mnt/datadisk2,/mnt/datadisk3
中设置。
我现在的问题是:如果我删除例如/mnt/datadisk3
来 self 的一个 Hadoop 节点? HDFS 是否会重新平衡并重新复制此分区上的数据? other 节点上的 /mnt/datadisk3
分区是否仍然可用?
每个分区的大小约为 1 TB。我的 HDFS 之后会有 3*1TB + 3*1TB + 2*1TB = 8TB
还是只有 2*1TB + 2*1TB + 2*1TB = 6TB
(因为所有 datadisk3
分区将从 HDFS 中删除)?
最佳答案
如果去掉或者不提
的路径dfs.datanode.data.dir =/mnt/datadisk1,/mnt/datadisk2,/mnt/datadisk3 dfs.datanode.data.dir = /mnt/datadisk1,/mnt/datadisk2
他们不会与datadisk3有任何联系,所以datadisk3数据不再可用。
是的,HDFS 会重新平衡各个分区上的数据并将其复制到其他 block (基于您的复制因子)。
不,您不能使用存储在 datadisk3 中的数据(如果您使用调试和退役方法,那么只有您可以重复使用数据)
关于hadoop - 删除 DataNode 目录时的 HDFS 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47184656/