如何从正在运行的 Hadoop 集群中删除磁盘?

Posted

技术标签:

【中文标题】如何从正在运行的 Hadoop 集群中删除磁盘?【英文标题】:How to remove disk from running Hadoop cluster? 【发布时间】:2016-03-18 07:18:17 【问题描述】:

我有一个安装了 HDP 2.3 的 6 节点 Hadoop 集群。

节点由 2 个驱动器组成,一个是 50 TB,另一个是 2 TB,现在 2 TB 的磁盘已满。但我想从所有节点中删除这个磁盘,只想为 Hadoop 使用 50 TB 磁盘。

问题

我能否安全地移除数据磁盘而不会导致集群上的块丢失/损坏。

更新

mount 命令的输出如下

/dev/sda6 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda3 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/tmp on /tmp type none (rw,bind)
/var/tmp on /var/tmp type none (rw,bind)
/home on /home type none (rw,bind)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/sdc1 on /data1 type xfs (rw)
/dev/sdb1 on /data type xfs (rw)

属性 dfs.datanode.data.dir 的值为 /data/hadoop/hdfs/data,/data1/hadoop/hdfs/data

【问题讨论】:

视情况而定。您能否在节点上发布“mount”的输出,dfs.datanode.data.dir hadoop 变量的值是多少? @facha 用所需信息更新了问题。 【参考方案1】:

您不能使用 2 TB 驱动器,因为 NameNode 元数据可能会损坏。 Namenode 将等待来自该节点的出块报告,如果没有报告出块报告形式的数据块,将接近离开安全模式。

一种解决方法是您可以将所有数据复制到 50 TB 驱动器并格式化 Namenode。您不能在数据敏感的情况下执行此操作。

【讨论】:

我知道,但有没有办法是我的问题。 您是否使用主机包含文件添加数据节点?如果是,您可以停用 2TB 驱动器而不会丢失任何数据。

以上是关于如何从正在运行的 Hadoop 集群中删除磁盘?的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop YARN 集群/Spark 和 RAM 磁盘

如何使用新 API 以编程方式获取 Hadoop 集群中所有正在运行的作业?

如何查看整个根 hdfs 磁盘使用情况? (hadoop dfs -du / 获取子文件夹)

Hadoop集群部署-Hadoop 运行集群后Live Nodes显示0

从 HDFS 中删除文件不会释放磁盘空间

如何从网关机器运行 hadoop 集群平衡器?