首页 > 技术文章 > Hadoop集群hdfs添加磁盘操作

a72hongjie 2018-05-03 22:48 原文

Hadoop集群hdfs添加磁盘操作

目前的环境是cdh。服务器部署在Azure;一台cdhmaster(一个namenode,一个datanode),四台cdhslave节点(各一个datanode)。

hdfs现状:
hdfs

首先是在Azure控制台对每台服务器添加一块磁盘(我这添加的是4T)

addDisk

在到服务器中对每台服务器进行添加磁盘操作:

因为在Linux中,常用2种分区表:

  1. MBR分区表(即主引导记录)
    所支持的最大分区:2T,而且对分区有限制:最多4个主分区或3个主分区加一个扩展分区 [fdisk命令操作]
  2. GPT分区表(即GUID分区表)
    是源自EFI标准的一种较新的磁盘分区表结构的标准,与MBR分区方式相比,具有如下优点:突破MBR 4个主分区限制,每个磁盘最多支持128个分区。支持大于2T的分区,最大可达18EB。 [parted命令操作]

使用 parted 建立大小超过2T的分区
磁盘默认在每台服务器上为 /dev/sde

  1. parted /dev/sde 可以输入p打印磁盘信息,查看分区的情况,找到起始和结束位置。
  2. mklabel gpt 设置分区类型为gpt
  3. mkpart primary 0% 100% primary指分区类型为主分区,0是分区开始位置,100%是分区结束位置。相同的命令为:mkpart primary 0-1 或者是:mkpart primary 0 XXXXXX结束的空间
  4. print 打印当前分区,查看分区设置是否正确
  5. quit 完成后用quit命令退出。
  6. mkfs.ext4 /dev/sde1 格式化磁盘,这里用ext4格式。
  7. mkdir /data3 && mount /dev/sde1 /data3/
  8. 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
cloudmanager

datanode添加目录/data3/dfs/dn
addDir

找到“高级”,在右边的datanode卷选择策略中,选择“可用空间”,这样,后面的两个属性(“10G字节”和“0.75”)就会发挥作用,用于平衡各个卷中空间使用。

重启每个datanode
restart-datanode

保存以上配置,然后重启hdfs,即可将hdfs扩容。

推荐阅读