如何禁止Namenode格式化


1 文档编写目的

众所周知,Namenode存放Hadoop集群的元数据,Datanode存放数据。如果Namenode被格式化,那意味着整个集群的数据将全部丢失。除非元数据有备份,可以通过技术手段恢复,否则丢失的数据将不可恢复,这对于生产环境的集群而言,无疑是致命的。本文主要讲述如何禁止Namenode格式化,为你的集群增加一分安全保障。

测试环境:

操作系统版本为CentOS 6.8

CM和CDH版本为5.11.2

文章目录结构:

1. 文档编写目的

2. 禁止Namenode格式化

2.1 从格式化到跑路

2.2 配置高级参数

3. 参数功能验证

4. 总结

2 禁止Namenode格式化

2.1 从格式化到跑路

即使是普通用户,也能格式化你的Namenode!可能有人认为,只要把操作系统的root用户权限管控好,普通用户不能切换到hdfs用户执行命令,Namenode好像就安全了。其实不然,只要一个命令,普通用户就能为你的Namenode做一下格式化,然后跑路。

普通用户可以通过环境变量切换为hdfs用户,然后执行格式化命令。比如这样:

export HADOOP_USER_NAME=hdfs

hdfs namenode -format

希望各位看完以后,不要随便去别人的集群格式化Namenode,如果做了的话,劝你赶紧跑路,千万别说是我教你格式化的,切记切记。

2.2 配置高级参数

在HDFS的配置界面,搜索“hdfs-site.xml”,找到Namenode高级配置代码段(安全阀),增加红色框中的内容,把"dfs.namenode.support.allow.format"这个参数的值(默认为true)设为false,表示禁止namenode格式化。然后保存配置,重启HDFS及相关服务。如果你是运维人员,公司的栋梁之才,个人强烈建议配置上该参数,或者买一双好鞋,跑起路来轻松一些。

3 参数功能验证

1、随便选一个Namenode做测试,停止该Namenode

2、格式化该Namenode

3、可以看到,Namenode格式化失败。

4、上图可能还不能直观的说明是由于配置参数导致Namenode格式化失败的,本来我想抓点日志出来的,但是因为那个Namenode被停了,日志也就不打印了。但是我最终还是找到一个图能够很直观的说明禁止Namenode格式化参数的效果。

4 总结

1、从格式化到跑路,可能只需要简单的几步。不管是无心还是有意,元数据丢失对集群造成的危害很大。禁止Namenode格式化,能够为你的集群增加一分安全保障。

2、对于生产集群,强烈建议禁止Namenode格式化,并且定期备份集群元数据。

一点闲话:

就在今天上午,我在微信群听别人说,他们生产集群突然集体断电,导致hadoop格式化,产生了新的Block Pool,“hdfs dfs -ls /”命令显示没有文件,又没做备份问怎么恢复数据来着。

出现这个问题的原因是,断电后,调用format命令导致Namenode和Datanode的ClusterID不一致,然后导致Datanode启动失败,然后运维把ClusterID同步了。。。估计这运维哥们听着一首《凉凉》,准备跑路了吧。庆幸不是我们公司的客户发生这种事情。

原文发布于微信公众号 - Hadoop实操(gh_c4c535955d0f)

原文发表时间:2018-08-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏阮一峰的网络日志

SSH原理与运用(一):远程登录

SSH是每一台Linux电脑的标准配置。 随着Linux设备从电脑逐渐扩展到手机、外设和家用电器,SSH的使用范围也越来越广。不仅程序员离不开它,很多普通用户也...

37040
来自专栏大内老A

[WCF安全系列]从两种安全模式谈起

WCF的安全体系主要包括三个方面:传输安全(Transfer Security)、授权或者访问控制(Authorization OR Access Contro...

19670
来自专栏流柯技术学院

通过Google身份验证器加强Linux帐户安全

而后,google的验证模块就会被复制到/lib64/security目录下,而用来生成密钥的可执行程序:google-authenticator,则复制到/u...

16010
来自专栏DannyHoo的专栏

苹果app上线流程

Command /usr/bin/codesign failed with exit code 1

84120
来自专栏Android 开发者

[译] 在 Android P 中使用默认的 TLS 来保护你的用户

25630
来自专栏张戈的专栏

CCKiller:Linux 轻量级 CC 攻击防御工具

很久以前分享过一个CC攻击的防御脚本,写得不怎么样,不过被51CTO意外转载了。博客从此走上了经常被人拿来练手的不归之路。当然,还是有不少朋友在生产环境使用,并...

1.7K00
来自专栏云端架构

【云端架构】常见电脑开放端口及含义

说明:通常用于分析操作系统。这一方法能够工作是因为在一些系统中“0”是无效端口,当你试图使用通常的闭合端口连接它时将产生不同的结果。一种典型的扫描,使用IP地址...

62870
来自专栏张戈的专栏

CCKiller:Linux轻量级CC攻击防御工具,秒级检查、自动拉黑和释放

张戈博客很久以前分享过一个CC 攻击的防御脚本,写得不怎么样,不过被 51CTO 意外转载了。博客从此走上了经常被人拿来练手的不归之路。 当然,还是有不少朋友在...

67260
来自专栏python爬虫实战之路

知乎模拟登陆

经常在简书上写作,写完后再发布到其他网站,非常麻烦,所以准备搞一下自动发布文章的工具。那么第一步先要模拟登陆几个网站。今天先从知乎开始。

17130
来自专栏张善友的专栏

开源.NET邮件服务器

LumiSoft Mail Server是一个开源,免费的邮件服务器,能运行在.net/mono上,支持SMTP/POP3/IMAP4/WebMail,支持MS...

51070

扫码关注云+社区

领取腾讯云代金券