hdfs节点可用空间扩容

Leona ·
更新时间:2024-09-21
· 858 次阅读

由于数据的日益增长,hdfs可用空间变小导致后面数据无法存入hdfs,而hdfs的数据目录又与卷组的空间大小息息相关,本文章将分两个场景去实现扩容,适用于集群搭建时扩容,注意集群应处于关闭状态,来干来干。

场景一: 添加了硬盘后df、vgdisplay均未查看到所增加的可用空间。 场景二: /home所在卷组空闲空间过大。 一.分区追加到卷组实现扩容

实现场景一: 添加了硬盘后df、vgdisplay均未查看到所增加的可用空间,创建分区与物理卷去追加到hdfs数据目录的所在卷组并分配空闲空间。

1.查看所有硬盘分区及状况 [root@bd /] fdisk -l # 可以看到其中某块硬盘拥有很大的空间,但目前并未使用 磁盘 /dev/sda:429.6 GB, 429603684352 字节,839069696 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符: 磁盘 /dev/mapper/centos-root:39.2 GB, 39180107776 字节,86523648 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘 /dev/mapper/centos-swap:4160 MB, 4160749568 字节,8126464 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 2.创建新分区 # 当前所拥有的大容量硬盘 [root@bd /] fdisk /dev/sda m查看所有操作 第一步: n (new一个新分区) 第二步: p (选择主分区, 默认为3) 第三步: t (修改分区格式, 设置为8e, 该代码对应的分区格式为Linux LVM) 第四步: p (显示分区信息) 第五步: w (保存当前分区信息) reboot 3.创建物理卷 [root@bd /] pvcreate /dev/sda3 Physical volume "/dev/sda3" successfully created. 4.查看卷组 # 查看卷组 # VG NAME(卷组名) [root@bd /] pvdisplay --- Physical volume --- PV Name /dev/sda2 VG Name centos PV Size <39.00 GiB / not usable 3.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 9983 Free PE 1 Allocated PE 9982 PV UUID ******-****-****-****-****-****-uR1DPn "/dev/sda3" is a new physical volume of "<360.10 GiB" --- NEW Physical volume --- PV Name /dev/sda3 VG Name PV Size <360.10 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID ******-****-****-****-****-****-hG4DT2 5.物理卷追加到卷组 # 卷组名 物理卷 [root@bd /] vgextend centos /dev/sda3 Volume group "centos" successfully extended # 查看当前卷组空闲空间 # Free PE [root@bd /] pvdisplay --- Volume group --- VG Name centos System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 2 Act PV 2 VG Size 399.09 GiB PE Size 4.00 MiB Total PE 102168 Alloc PE / Size 9982 / 38.99 GiB Free PE / Size 92186 / 360.10 GiB VG UUID ******-****-****-****-****-****-hG4DT2

到此空闲的空间已经追加到了当前hdfs数据目录所在的卷组,接下来就是分配空闲空间。

6. 分配空间 # 分配空闲空间 # 该空间不能大于Free PE(空闲空间) [root@bd /] lvextend -L +1000G /dev/mapper/centos-root Size of logical volume centos/root changed from <35.12 GiB (8990 extents) to <394.12 GiB (100894 extents). Logical volume centos/root successfully resized. # 分配所有可用空间 # 可通过-D自定义分配的空间大小 [root@bd /] xfs_growfs /opt meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=2301440 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0 data = bsize=4096 blocks=9205760, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal bsize=4096 blocks=4495, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 9205760 to 103315456 7. 查看分配的空间 [root@bd /] df -hT /opt 文件系统 类型 容量 已用 可用 已用% 挂载点 devtmpfs devtmpfs 3.8G 0 3.8G 0% /dev tmpfs tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs tmpfs 3.9G 12M 3.8G 1% /run tmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/mapper/centos-root xfs 395G 9.7G 385G 3% / /dev/sda1 xfs 1014M 189M 826M 19% /boot tmpfs tmpfs 781M 0 781M 0% /run/user/0

分配完成,启动集群查看当前节点DataNode的磁盘可用容量

二.压缩并分配磁盘空间

实现场景二: 因/home所在卷组空闲空间过大, 故压缩该卷组空间用于扩容。(这里重复的命令我就不多次显示结果了,懒_(´ཀ`」∠ )_,

☆ 注意本方法会格式化home,请谨慎操作,如果误操作重要文件要是没了,我这里也没有

1.查看磁盘空间 [root@bd /] df -hl 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 7.7G 0 7.7G 0% /dev tmpfs 7.7G 0 7.7G 0% /dev/shm tmpfs 7.7G 9.3M 7.7G 1% /run tmpfs 7.7G 0 7.7G 0% /sys/fs/cgroup /dev/mapper/centos-root 100G 33G 67G 33% / /dev/sda2 1014M 226M 789M 23% /boot /dev/sda1 200M 12M 189M 6% /boot/efi tmpfs 1.6G 0 1.6G 0% /run/user/0 /dev/mapper/centos-home 1.2T 5.9G 1.1T 1% /home [root@bd /] cat /etc/fstab | grep centos-home # 该文件系统是xfs ## 类型 /dev/mapper/centos-home /home xfs defaults 0 0 2. 挂载/home目录 # centos-home非固定名称 [root@bd /] umount /dev/mapper/centos-home

如果显示/dev/mapper/centos-home忙,请kill掉访问home的所有进程,然后切换到其他目录

3. 压缩home所在卷 # 这里将home减少1000G空间 [root@bd /] lvreduce -L -1000G /dev/mapper/centos-home # 查看是否压缩成功 # Free PE 显示空闲的空间, 若很大说明成功了 [root@bd /] vgdisplay 4. 格式化/home [root@bd /] mkfs.xfs /dev/mapper/centos-home -f 5. 恢复挂载/home [root@bd /] mount /home 6. 分配空间 # 分配空闲空间 # 该空间不能大于Free PE(空闲空间) [root@bd /] lvextend -L +1100G /dev/mapper/centos-root # 分配所有可用空间 # 可通过-D自定义分配的空间大小 [root@bd /] xfs_growfs /opt 7. 查看分配的空间 [root@bd /] df -hT /opt 文件系统 类型 容量 已用 可用 已用% 挂载点 /dev/mapper/centos-root xfs 1.2T 33G 1.1T 3% /

分配完成,启动集群查看当前节点DataNode的磁盘可用容量

到此两种场景的扩容方法就结束了,如果有什么不对的地方的话,别说出来


作者:执 笔



hdfs

需要 登录 后方可回复, 如果你还没有账号请 注册新账号