教你一招解决HDFS故障排除

目录

1.1 问题描述

1.2 解决方式

1.3模拟案例                 

2. 磁盘故障处理

2.1 datanote活跃个数对安全模式的影响

2.2 Hdfs系统稳定对安全模式影响

2.3 磁盘损坏对安全模式的影响

 3 磁盘监控

3.1 查看datanode向namenode的汇报时间

 3.2 测试磁盘的读写性能

 4.小文件过多问题


1.1 问题描述

         NameNode 进程挂了并且存储的数据丢失,如何恢复NameNode

1.2 解决方式

       (1) 拷贝 SecondaryNameNode 中数据到原 NameNode 存储数据目录

        (2)重启namenode节点 

1.3模拟案例                 

  故障模拟:

 问题解决:

2. 磁盘故障处理

在说磁盘故障处理之前,需要了解一下安全模式,安全模式是指文件系统只接受读数据请求,而不接受删除、修改等变更请求。

2.1 datanote活跃个数对安全模式的影响

在core-site.xml下进行设置,默认值为0。意为退出安全模式时需要保证datanode活着的节点数。值为0,表示不考虑。假如一共10个datanode,将值设置为8,若由于其他原因导致3台datanode起不来就会进入安全模式。此时,要么检查下主机,让datanode起来,要么就把value值改小。

2.2 Hdfs系统稳定对安全模式影响

保证hdfs系统稳定后,退出安全模式,时间为30s。因此当我们启动集群立即进入到namenode界面删除文件时,会提示你正处于安全模式无法删除。等待30s即可退出安全模式。

2.3 磁盘损坏对安全模式的影响

副本数达到最小要求的 block 占系统总 block 数的 百分比,默认 0.999f。(只允许丢一个块)。因此当我们磁盘受到损坏,大于1block的数据丢失时候,会进入安全模式。

此时,删除数据就会出现namenode正处于安全模式,同时会出现以下信息,告知blocks数量,总共7块,目前只有5块,缺失2块,因此进入安全模式。根据删除时候的路径提示,找到路径下的元数据删除即可退出安全模式。

 3 磁盘监控

“慢磁盘”指的时写入数据非常慢的一类磁盘。其实慢性磁盘并不少见,当机器运行时 间长了,上面跑的任务多了,磁盘的读写性能自然会退化,严重时就会出现写入数据延时的问题。可以用以下方法发现慢磁盘。

3.1 查看datanode向namenode的汇报时间

一般出现慢磁盘现象,会影响到 DataNode 与 NameNode 之间的心跳。正常情况心跳时 间间隔是 3s。超过 3s 说明有异常。

 3.2 测试磁盘的读写性能

(1)顺序测试读 

(2)顺序测试写

(3)混合测试读写

 4.小文件过多问题

HDFS中数据实际存储在datanode上,而在namenode上存储的是元数据,即目录。如果小文件有很多,就造成元数据很多,容易消耗namenode大量的存储空间,同时容易产生多个切片。针对这种问题可以解决,在存储方面可以采用归档处理,将所有文件归档到一类。另外,程序在读数据的过程中,可以采用CombineTextInputFormat的方式进行切割。

猜你喜欢

转载自blog.csdn.net/baidu_41833099/article/details/121924756