Hadoop集群hdfs添加磁盘操作
Hadoop集群hdfs添加磁盘操作
目前的环境是cdh。服务器部署在Azure;一台cdhmaster(一个namenode,一个datanode),四台cdhslave节点(各一个datanode)。
hdfs现状:
首先是在Azure控制台对每台服务器添加一块磁盘(我这添加的是4T)
在到服务器中对每台服务器进行添加磁盘操作:
因为在Linux中,常用2种分区表:
MBR
分区表(即主引导记录)
所支持的最大分区:2T,而且对分区有限制:最多4个主分区或3个主分区加一个扩展分区 [fdisk
命令操作]GPT
分区表(即GUID分区表)
是源自EFI标准的一种较新的磁盘分区表结构的标准,与MBR分区方式相比,具有如下优点:突破MBR 4个主分区限制,每个磁盘最多支持128个分区。支持大于2T的分区,最大可达18EB。 [parted
命令操作]
使用 parted 建立大小超过2T的分区
磁盘默认在每台服务器上为 /dev/sde
parted /dev/sde
可以输入p打印磁盘信息,查看分区的情况,找到起始和结束位置。mklabel gpt
设置分区类型为gptmkpart primary 0% 100%
primary指分区类型为主分区,0是分区开始位置,100%是分区结束位置。相同的命令为:mkpart primary 0-1
或者是:mkpart primary 0 XXXXXX
结束的空间print
打印当前分区,查看分区设置是否正确quit
完成后用quit命令退出。mkfs.ext4 /dev/sde1
格式化磁盘,这里用ext4
格式。mkdir /data3
&&mount /dev/sde1 /data3/
vim /etc/fstab
修改fstab,磁盘自动挂载。blkid
命令查看磁盘uuid。在fstab追加到末尾行UUID=a29c4966-019e-4a76-befb-221cdad95aef /data3 ext4 defaults 0 0
hdfs扩容操作
1. 首先在每一个分区的挂载目录[/data3]新建子目录/dfs/dn,如mkdir -p /data3/dfs/dn
2. 然后修改dn目录的权限:chown -R hdfs:hadoop /data3/dfs/dn
这样hdfs才能使用该目录(每一个分区都要新建/dfs/dn)
打开cloudera manager
在datanode
添加目录/data3/dfs/dn
找到“高级”,在右边的datanode卷选择策略中,选择“可用空间”,这样,后面的两个属性(“10G字节”和“0.75”)就会发挥作用,用于平衡各个卷中空间使用。
重启每个datanode
保存以上配置,然后重启hdfs,即可将hdfs扩容。