CDH集群磁盘故障换盘处理

为DataNode执行磁盘热交换
实质的操作就是在不关闭datanode的情况下更换HDFS磁盘
警告:要求和限制
 1. CDH 5.4和更高版本支持热插拔。
 2. 热插拔只能添加具有空数据目录的磁盘。
 3. 卸下磁盘不会将数据移出磁盘,这可能会导致数据丢失。
 4. 不要同时在多个主机上执行热交换。

使用Cloudera Manager为DataNode执行磁盘热交换
最低要求角色:群集管理员
 1. 配置数据目录以删除要换出的磁盘:
  a. 进入HDFS服务。
  b. 单击实例选项卡。
  c. 在“角色类型”列中,单击受影响的DataNode。
  d. 单击配置选项卡。
  e. 选择“作用域” >“ DataNode”。
  f. 选择类别>主。
  g. 更改“DataNode数据目录”属性的值,以删除作为要删除磁盘的安装点的目录。
  警告:仅对于计划在其中热交换磁盘的特定DataNode实例,更改此属性的值。不要编辑此属性的角色组值。这样做会导致数据丢失。
 2. 单击保存更改以提交更改。
 3. 刷新受影响的DataNode。选择操作>刷新数据目录。
 4. 取出旧磁盘并添加替换磁盘。
 5. 更改DataNode数据目录属性的值,以重新添加目录,这些目录是您添加的磁盘的安装点。
 6. 单击保存更改以提交更改。
 7. 刷新受影响的DataNode。选择操作>刷新数据目录。
 8. 跑过 hdfs fsck / 命令以验证HDFS的运行状况。

使用命令行为DataNode执行磁盘热交换
重要:
1. 如果您使用Cloudera Manager,请不要使用这些命令行说明。
2. 该信息专门适用于CDH5.8.x。如果您使用较低版本的CDH,请参阅位于Cloudera文档中的该版本的文档。

使用以下说明在不受Cloudera Manager管理的集群中执行磁盘的热交换

要添加和删除磁盘:
1. 如果要添加磁盘,请格式化并挂载它们。
2. 更改值 dfs.datanode.data.dir 在DataNode上的hdfs-site.xml中,以反映从现在起将要使用的目录(添加新点并删除过时的点)。有关更多信息,请参阅“配置本地存储目录”下有关DataNodes的说明。
3. 开始重新配置过程:
 a. 如果启用了Kerberos:

$ kinit -kt /path/to/hdfs.keytab hdfs/<fully.qualified.domain.name@YOUR-REALM.COM> && dfsadmin -reconfig datanode HOST:PORT start
1
b. 如果未启用Kerberos:

$ sudo -u hdfs hdfs dfsadmin -reconfig datanode HOST:PORT start
1
其中 HOST:PORT 是DataNode的 dfs.datanode.ipc.address(或其主机名和在中指定的端口 dfs.datanode.ipc.address;例如 dnhost1.example.com:5678)
要检查重新配置的进度,可以使用 status 命令选项;例如,如果未启用Kerberos:

$ sudo -u hdfs hdfs dfsadmin -reconfig datanode HOST:PORT status
1
4. 重新配置完成后,请卸载从配置中删除的所有磁盘。
5. 运行HDFS fsck 实用程序来验证HDFS的运行状况。

要对磁盘执行维护:
1. 更改值 dfs.datanode.data.dir 在DataNode上的hdfs-site.xml中,以排除驻留在受影响的磁盘上的安装点目录,并且仅反映将在维护窗口期间使用的目录。有关更多信息,请参阅“配置本地存储目录”下有关DataNodes的说明。
2. 开始重新配置过程:
 a. 如果启用了Kerberos:

$ kinit -kt /path/to/hdfs.keytab hdfs/<fully.qualified.domain.name@YOUR-REALM.COM> && dfsadmin -reconfig datanode HOST:PORT start
1
b. 如果未启用Kerberos:

sudo -u hdfs hdfs dfsadmin -reconfig datanode HOST:PORT start
1
其中 HOST:PORT 是DataNode的 dfs.datanode.ipc.address 或其主机名和在中指定的端口 dfs.datanode.ipc.address
要检查重新配置的进度,可以使用 状态命令选项;例如,如果未启用Kerberos:

$ sudo -u hdfs hdfs dfsadmin -reconfig datanode HOST:PORT status
1
3. 重新配置完成后,卸载磁盘。
4. 在磁盘上执行维护。
5. 重新安装磁盘。
6. 更改值 dfs.datanode.data.dir 再次反映原始的安装点集。
7. 重复步骤2。
8. 运行HDFS fsck 实用程序来验证HDFS的运行状况。
分类:管理员 | Cloudera Manager | 数据节点 | 磁盘存储 | HDFS | 故障排除 | 所有类别


使用命令行停用DataNode
停用DataNode后,将其数据复制到活动节点后会将其从群集中排除。取消对DataNode的分解:
1. 创建一个名为 dfs.exclude在HADOOP_CONF_DIR中(默认为 /etc/hadoop/conf)。
2. 在每行上添加要停用的每个DataNode主机的名称。
3. 在要停用的DataNode上停止TaskTracker。
4. 将以下属性添加到 hdfs-site.xml 在NameNode主机上。

<property>
  <name>dfs.hosts.exclude</name>
  <value>/etc/hadoop/conf/dfs.exclude</value>
<property>
1
2
3
4
当数据管理部被标记为停止使用,所有对数据管理部的块被标记为下复制。在“停用DataNodes”下的NameNode UI中,您可以看到未完全复制的块的总数,随着时间的流逝,这将减少,表示停用进度。
Cloudera建议您一次停用不超过两个DataNode。

停止退役过程
要使用命令行停止DataNode的停用过程:
1. 从中删除DataNode名称 /etc/hadoop/conf/dfs.exclude。
2. 运行命令 $ hdfs dfsadmin -refreshNodes。


测试环境使用过的命令
生产环境磁盘故障问题结束后,在测试环境手动进行了磁盘“故障”下线操作模拟测试,以下为使用到的一些主要命令仅供参考:
1. cm管理界面找到损坏磁盘,手动更改配置进行下线
2. 服务器上进行配置生效操作

hdfs dfsadmin -reconfig datanode hostname:50020 status
hdfs dfsadmin -reconfig datanode hostname:50020 start
1
2
3. 卸载损坏磁盘

umount -l /dev/mapper/datavg-data2
mount /dev/mapper/datavg-data2
1
2
4. 修改数据副本数命令:

hdfs dfs -setrep -R -w 3 /*  
# HDFS根目录下所有文件均设置为三备份
1
2
Clouder官网:https://docs.cloudera.com/documentation/enterprise/5-8-x/topics/admin_dn_swap.html
————————————————
版权声明:本文为CSDN博主「楠先生」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/liu940204/article/details/120101109

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值