Hadoop集群安全模式的问题
2018-03-09 09:23
369 查看
hadoop为了防止数据丢失,启动了“安全模式”的设置,每次启动hadoop后一段时间内集群处于安全模式,该模式下集群会检查各节点文件块的记录,如果数据块中满足replication设置值的数据块的数量在总数据块数量中所占比例没有超过一定值(称为安全模式阀值,默认为0.999f),那么集群将持续处于安全模式,在该模式下,文件系统中的内容不允许修改也不允许删除,直到安全模式结束。安全模式主要是为了系统启动的时候检查各个DataNode上数据块的有效性,同时根据策略必要的复制或者删除部分数据块。运行期通过命令也可以进入 安全模式。在实践过程中,系统启动的时候去修改和删除文件也会有安全模式不允许修改的出错提示,只需要等待一会儿即可运行hadoop程序时,有时候会报以下错误:org.apache.hadoop.dfs.SafeModeException: Cannot delete/user/hadoop/input. Name node is in safe mode.那我们来分析下这个错误,从字面上来理解:“Name node is in safe mode.” 但是如果是在小型测试集群,往往因为结点数量较少,很可能导致集群一直处于安全模式无法自动退出,这种情况下我们可以通过两种方式进行设置:1. 在HDFS配置文件中修改安全模式阀值在hdfs-site.xml中设置安全阀值属性,属性值默认为0.999f,如果设为1则不进行安全检查<property> <name>dfs.safemode.threshold.pct</name> <value>0.999f</value></property>因为是在配置文件中进行硬修改,不利于管理员操作和修改,因此不推荐此方式
2. 直接在bash输入指令脱离安全模式(推荐)
在安全模式下输入指令: hadoop dfsadmin -safemode leave即可退出安全模式
格式:Usage: java DFSAdmin [-safemode enter | leave | get |wait]用户可以通过dfsadmin -safemode value 来操作安全模式,参数value的说明如下:enter - 进入安全模式leave - 强制NameNode离开安全模式get - 返回安全模式是否开启的信息wait - 等待,一直到安全模式结束
2. 直接在bash输入指令脱离安全模式(推荐)
在安全模式下输入指令: hadoop dfsadmin -safemode leave即可退出安全模式
格式:Usage: java DFSAdmin [-safemode enter | leave | get |wait]用户可以通过dfsadmin -safemode value 来操作安全模式,参数value的说明如下:enter - 进入安全模式leave - 强制NameNode离开安全模式get - 返回安全模式是否开启的信息wait - 等待,一直到安全模式结束
相关文章推荐
- Hadoop学习之路(五)Hadoop集群搭建模式和各模式问题
- Hadoop的安全模式的问题
- hadoop集群的安全模式
- 第127讲:Hadoop集群管理之安全模式解析及动手实战学习笔记
- Hadoop集群中改变了其中一个节点的主机名之后 的ssh连接问题
- hadoop 集群跑的时候用到hbasejar 文件的引用问题
- hadoop集群小项目实践及遇到问题解决办法
- hadoop3种集群方式搭建---独立模式
- Hadoop 集群问题汇总
- Hadoop、HBase集群问题记录
- 对hadoop集群安装一些问题总结
- Hadoop 集群模式深入定制切割与副本数以及块大小定制
- HADOOP 集群配置遇到的问题
- hadoop学习(三)hadoop集群从windows移植到linux中问题与技巧
- Hadoop集群配置之后浏览器无法访问问题
- hadoop集群环境安装中的hosts 配置问题
- Hadoop默认模式、默认配置问题
- 虚拟机时间问题引起的hadoop集群时间问题
- RHEL 5下配置Hadoop集群:java.net.NoRouteToHostException: No route to host问题的解决
- hadoop集群启动脚本——解决启动hadoop集群时,效率低问题