- 今天在Ambari web界面中注意到警告:
- 我去,使用了92%,这还得了?还让不让人学习了?
- 最开始我认为是以前朋友将namenode节点也设置为了datanode节点的原因,导致namenode“压力”大。但是细一看,不对啊,也不可能才52.7GB总容量啊,开玩笑呢。
- 于是乎怀疑Ambari。。。就去“亲生的”50070一看:
- 纳闷了,怎么这么少?然后查看了各个机器的硬盘信息
发现两个容量小的节点的HDFS容量值和根挂载点的容量相同 - 然后看了看hdfs-site的dfs.datanode.data.dir配置,确实是挂载在/下的。
- 考虑修改上述配置项时,看到博文说到:
如果因为设计问题,需要对dfs.data.dir重新指定,则在指定好后,一定要对集群进行重新格式,并且要保证格式化成功,才能保证后续服务的正常启动。这样一来,就会把原有的数据格式化掉
不知道是否说的正确【应该是不正确,hadoop不至于这么傻吧】,为了减少折腾,我还是不修改好了,试下给root扩容吧。
2019/5/20补充:
更简单的办法是设置多个dfs.data.dir
8.
总体过程:
把/home内容备份,然后将/home文件系统所在的逻辑卷删除,扩大/root文件系统,新建/home ,恢复/home内容
1.查看分区信息
df -h
使用vgdisplay可以查看未使用的空间
2.备份home分区文件
tar cvf /tmp/home.tar /home
3.终止使用/home文件系统的进程,卸载/home
fuser -km /home/
umount /home
4.删除/home所在的lv【后来我才知道,可以使用lvreduce -L释放指定大小的空间。但是提示可能会损坏数据】
lvremove /dev/mapper/VolGroup-lv_home
5.扩展/root所在的lv,增加2048G
lvextend -L +2048G /dev/mapper/VolGroup-lv_root
6.扩展/root文件系统
xfs_growfs /dev/mapper/VolGroup-lv_root
报错:
看来我这里不是XFS文件系统
df可以使用参数T查看文件系统类型:
centos7之前的版本默认文件系统是EXT4【可扩可缩】,之后是XFS【目前只能扩容】
对于EXT4以及3,2。应该使用resize2fs:
resize2fs /dev/mapper/VolGroup-lv_root【如果改变的容量大,需要些时间】
真的太慢了,要不是我机智的刷新50070端口,我就会认为远程网络不通杀进程了
7.查看未用空间
vgdisplay
8.重新创建home lv
lvcreate -L 1617G -n /dev/mapper/VolGroup-lv_home
8. 创建文件系统并挂载
mkfs.ext4 /dev/mapper/VolGroup-lv_home
mount /dev/mapper/VolGroup-lv_home /home
df -h检查一波
9.home文件恢复
tar -xvf /tmp/home.tar -C /home/
cd /home/home/
mv * …/
最终结果:
- 容量
- 集群状态:【淡定,毕竟之前有卸载/home】
- 重启服务,多谢老天保佑,全部成功!
目前集群运行正常
如果想移除一个datanode节点:
1.)/etc/hadoop/)下新建excludes文件,并写入待删除DataNode的ip或域名
2.)修改hdfs-site中的dfs.hosts.exclude属性,value值填写1.)中的exclude文件的绝对路径
3.)在NameNode上刷新所有DataNode
移除ataNode之后:系统会重新均衡block,你也可以执行脚本手动均衡:sbin/start-balancer.sh