问题描述:最近公司来了一批200G左右的数据,因为以前的测试机器都是随便搭的,内存不够,所以要扩充HDFS的存储空间
操作环境:hyper-v,centos6.7 ,内核版本4.4.113-1.el6.elrepo.x86_64
此文档实在伪分布式操作系统上操作的,实际的集群扩容类似
一,新增硬盘
1.保证你的虚拟机处于关机状态
2.右键->选择“设置”
3.选择“IDE控制器”-->“硬盘驱动器”-->“添加”
4.点击“新建”
5.选择“VHDX(H)”下一步
6.选择“动态扩展”
7,根据现场情况选择“名称和位置”
8,根据现场情况设置新增硬盘的大小-->“下一步”---->“完成”
二,对新增硬盘分区,挂载
1.连接到虚拟机输入命令 fdisk –l 找到自己新增的硬盘
2. 进入磁盘,对磁盘进行分区输入命令fdisk +磁盘名称
3.输入“n”新建分区----à输入“p”创建主分区-----à输入“1”设置扇区默认从1开始----à根据现场情况输入扇区的结束位置(我这里把整个硬盘做一个分区直接回车)---à输入“w”回车,保存(如果要把整个硬盘挂载到某个目录可以不分区)
4.输入fdisk –l 查看硬盘是否分区成功(Disk identifier:标识不为0x00000000即为分区成功)
5.格式化分区输入命令mkfs.ext4 +分区名称(例如要格式化/dev/sdb1的命令为:mkfs.ext4 /dev/sdb1 )
6.挂载分区输入命令mount+分区名称+挂载目录(例如要把/dev/sdb1挂载到 /mnt/cdrom目录下的命令为:mount /dev/sdb1 /mnt/cdrom)
7检查分区是否挂载成功,输入df –h 如挂载成功如下图所示
三.扩容datanode存储目录
1.连接到datanode所在的服务器,找到datanode的存储目录
(可从cloudera manager上HDFS下的datanode节点的配置中找到datanode的存储目录,这里的是/dfs/dn)
2.关掉集群服务
3.在新挂载磁盘的目录中新建跳板目录mkdir /new
4. 将新建的分区挂载到新建的目录上mount /dev/sdb1 /new
5.将hdfs中存储数据的目录复制到新建的跳板中cp -R /dfs/dn/* /new
6.解除挂载umount /new
7. rm -rf /dfs/dn/*
####可选,主要为了腾出空间给原来的硬盘
8. 将新磁盘挂载到HDFS中数据的存储目录mount /dev/sdb1 /dfs/dn(此时你会的发现之前的/dfs/dn目录文件已经全部转移过来了)
9. 删除跳板目录,rm -rf /new (等待/dfs/dn目录数据恢复之后再删除)
10.将目录从新授权给HDFS角色,chown -R hdfs:hdfs /dfs/dn/ (一定要记得授权,否则datanode会读取文件失败)
11.设置开机自动挂载(vim /etc/fstab)
在/etc/fstab文件的后面添加/dev/sdb1 /dfs/dn ext4 defaults 0 0
12. 检查开机挂载是否配置成功
13.重启服务打开/etc/fstab文件
查看最后一行是否为仍是/dev/sdb1 /dfs/dn ext4 defaults 0 0若是则说明开机自动挂载设置成功