目录
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的方式进行切割。