其他分享
首页 > 其他分享> > hadoop无法退出安全模式

hadoop无法退出安全模式

作者:互联网

hadoop无法退出安全模式,报"name node is in safe mode"错误提示。

集群安全模式

集群处于安全模式,不能执行重要操作(写操作)。集群启动完成后,自动退出安全模式。

基本语法:

(1)bin/hdfs dfsadmin -safemode get (功能描述:查看安全模式状态)

(2)bin/hdfs dfsadmin -safemode enter   (功能描述:进入安全模式状态)

(3)bin/hdfs dfsadmin -safemode leave (功能描述:离开安全模式状态)

(4)bin/hdfs dfsadmin -safemode wait (功能描述:等待安全模式状态)

原因分析

一、查看是否是数据损坏导致的

非正常关闭hadoop集群,如直接关闭虚拟机,导致hdfs中有些块丢失了或者损坏。这时hadoop就会进入安全模式。

发生这种情况:要先手动退出安全模式,再处理坏的数据块。

1、退出安全模式:

第一种:正常退出安全模式

hdfs dfsadmin -safemode leave

如提示Safe mode is OFF,那就说明退出成功,但有时候这个命令也没办法退出安全模式,就需要使用强制退出。

第二种:强制退出安全模式

hdfs dfsadmin -safemode forceExit

2、处理坏的数据块:

方法一、直接删除坏的数据块

方法二、修复坏的数据块

① 检测路径下是否有坏块:

bin/hdfs fsck /

② 删除路径下的坏块:

bin/hdfs fsck / -delete

③ 修复坏块:

hdfs debug recoverLease -path / -retries 5

###retries 为重试次数

########Corrupt blocks表示坏掉的块

④ 坏的数据块:

/vul/file/old/9/file: MISSING 1 blocks of total size 10315 B.Status: CORRUPT

Total size: 596245766 B

Total dirs: 570

Total files: 758

Total symlinks: 0

Total blocks (validated): 660 (avg. block size 903402 B)

 

UNDER MIN REPL’D BLOCKS: 660 (100.0 %)

dfs.namenode.replication.min: 1

CORRUPT FILES: 660

MISSING BLOCKS: 660

MISSING SIZE: 596245766 B

CORRUPT BLOCKS: 660

 

Minimally replicated blocks: 0 (0.0 %)

Over-replicated blocks: 0 (0.0 %)

Under-replicated blocks: 0 (0.0 %)

Mis-replicated blocks: 0 (0.0 %)

Default replication factor: 2

Average block replication: 0.0

Corrupt blocks: 660

Missing replicas: 0

Number of data-nodes: 1

Number of racks: 1

FSCK ended at Tue Dec 31 10:02:48 CST 2019 in 2844 milliseconds

The filesystem under path ‘/’ is CORRUPT

———————————————————

二、查看集群空间的使用情况

用 df -h命令查看集群空间的使用情况
df -h

发现:磁盘被占用100%,空间被占用。

当硬盘使用超过90%时,namenode就会进入安全模式,强制退出也不行。
发生这种情况

1、检查并杀死无用进程释放资源

① 在 /opt 目录下执行 lsof |grep delete 查看对应的进程号,使用 kill -9 进程号,杀掉对应进程即可;

② ps -a (或使用top命令)查看所有进程,使用 kill -9 进程号,杀掉无用进程。

2、删除硬盘中的某些文件,释放空间

3、对硬盘进行扩容

标签:hdfs,blocks,hadoop,模式,660,安全,safemode,退出
来源: https://www.cnblogs.com/szynzhou/p/16214832.html