cm中禁止namenode格式化

转载来自:https://cloud.tencent.com/developer/article/1349372

如何禁止Namenode格式化

在这篇文章中:

  • 1 文档编写目的
  • 2 禁止Namenode格式化
    • 2.1 从格式化到跑路
    • 2.2 配置高级参数
  • 3 参数功能验证
  • 4 总结

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实操(gh_c4c535955d0f)

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值