Linux版本:CentOS
之前做磁盘分区的时候是个小白,直接把数据盘挂载了一个子目录下:
/home/hadoop/hadoop-3.1.4/hdfs
导致除了这个子目录内的数据,其他/home目录下的数据都默认被写到了根目录盘,根目录盘只有40G,很快被写满,而且我们私有云机制问题,根目录无法扩充,只有一个解决办法,重新挂载一个新的磁盘设备到/home目录,尝试一下:
mount /dev/mapper/vgdata-lv_home /home
挂载完以后,发现原先/home目录里的文件全都被隐藏了,出现了一个空的home目录,于是赶紧umount,恢复原状,研究完以后,整理出以下步骤:
1. 停止应用
停止相关应用;
2. 数据备份
进入到home目录,备份home目录的数据,由于我当前只有hadoop一个普通用户,所以直接进入到/home/hadoop目录,备份hadoop用户的数据和文件(这里要exclude掉原先已经挂了数据盘的hdfs子目录);
tar -czvf hadoop.tar.gz --exclude=hdfs *
备份完成后讲hadoop.tar.gz放到一个此次变更不涉及到的目录中,比如/tmp
3. 清理/home目录中的数据
必须把/home目录的数据和文件都清理掉,否则挂载新的/home目录后, 这些旧文件将被隐藏, 想清理也清理不掉了;
4. 挂载新的LV
mount /dev/datavg/lv_hadoop /home
5. 恢复子目录路径
mkdir -p /home/hadoop/hadoop-3.1.4/hdfs
6. 重新挂载子目录
mount /dev/datavg/lv_hdfs /home/hadoop/hadoop-3.1.4/hdfs
7. 恢复数据
把之前备份在/tmp中的数据恢复回来
8. 恢复应用
9. 验证数据