阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Hadoop “Name node is in safe mode” 错误解决方法

108次阅读
没有评论

共计 2589 个字符,预计需要花费 7 分钟才能阅读完成。

Hadoop dfsadmin -safemode leave

Hadoop 解除 “Name node is in safe mode”

运行 hadoop 程序时,有时候会报以下错误:
org.apache.hadoop.dfs.SafeModeException: Cannot delete /user/hadoop/input. Name node is in safe mode
这个错误应该还满常见的吧(至少我运行的时候是这样的)

那我们来分析下这个错误,从字面上来理解:
Name node is in safe mode

说明 Hadoop 的 NameNode 处在安全模式下。
那什么是 Hadoop 的安全模式呢?
在分布式文件系统启动的时候,开始的时候会有安全模式,当分布式文件系统处于安全模式的情况下,文件系统中的内容不允许修改也不允许删除,直到安全模式结束。安全模式主要是为了系统启动的时候检查各个 DataNode 上数据块的有效性,同时根据策略必要的复制或者删除部分数据块。运行期通过命令也可以进入安全模式。在实践过程中,系统启动的时候去修改和删除文件也会有安全模式不允许修改的出错提示,只需要等待一会儿即可。

现在就清楚了,那现在要解决这个问题,我想让 Hadoop 不处在 safe mode 模式下,能不能不用等,直接解决呢?
答案是可以的,只要在 Hadoop 的目录下输入:
bin/hadoop dfsadmin -safemode leave

也就是关闭 Hadoop 的安全模式,这样问题就解决了。

之前在 hadoop 执行过程中使用了 ”ctrl+c” 操作
再次使用 hadoop 时出现“Name node is in safe mode”提示:
root@www.linuxidc.com:~/hadoop/hadoop-0.20.2# bin/hadoop fs -put conf input
put: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create directory /user/root/input/conf. Name node is in safe mode.

-----------------------------

最近在测试 hadoop,但是没想到在 reduce 时卡点,
没办法只好 Ctrl+c,但是问题也就跟着来了 XD
先将 hadoop 停止后,再启动 hadoop
然后要删除 DFS 里的资料时,
就出现 name node is in safe mode,就没办法删除资料啦!
找了好久才找到答案,

bin/hadoop dfsadmin -safemode leave
就可以把 safemode 解除,为了这个问题烦恼了好久 Orz
-----------------------------
 safemode 模式
NameNode 在启动的时候首先进入安全模式,如果 datanode 丢失的 block 达到一定的比例(1-dfs.safemode.threshold.pct),则系统会一直处于安全模式状态即只读状态。
dfs.safemode.threshold.pct(缺省值 0.999f)表示 HDFS 启动的时候,如果 DataNode 上报的 block 个数达到了元数据记录的 block 个数的 0.999 倍才可以离开安全模式,否则一直是这种只读模式。如果设为 1 则 HDFS 永远是处于 SafeMode。
下面这行摘录自 NameNode 启动时的日志(block 上报比例 1 达到了阀值 0.9990)
The ratio of reported blocks 1.0000 has reached the threshold 0.9990. Safe mode will be turned off automatically in 18 seconds.
 hadoop dfsadmin -safemode leave
有两个方法离开这种安全模式
1. 修改 dfs.safemode.threshold.pct 为一个比较小的值,缺省是 0.999。
2. hadoop dfsadmin -safemode leave 命令强制离开
http://bbs.hadoopor.com/viewthread.php?tid=61&extra=page=1
-----------------------------
Safe mode is exited when the minimal replication condition is reached, plus an extension
time of 30 seconds. The minimal replication condition is when 99.9% of the blocks in
the whole filesystem meet their minimum replication level (which defaults to one, and
is set by dfs.replication.min).
安全模式的退出前提 – 整个文件系统中的 99.9%(默认是 99.9%,可以通过 dfs.safemode.threshold.pct 设置)的 Blocks 达到最小备份级别 (默认是 1,可以通过 dfs.replication.min 设置)。
dfs.safemode.threshold.pct    float    0.999
The proportion of blocks in the system that must meet the minimum
replication level defined by dfs.rep lication.min before the namenode
will exit safe mode. Setting
this value to                                             
Setting this value to more than 1 means the namenode never exits safe
mode.
-----------------------------
用户可以通过 dfsadmin -safemode value  来操作安全模式,参数 value 的说明如下:
enter – 进入安全模式
leave – 强制 NameNode 离开安全模式
get –  返回安全模式是否开启的信息
wait – 等待,一直到安全模式结束。

更多 Hadoop 相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计2589字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中