hadoop之 安全模式及SafeModeException
问题: hadoop启动的时候报错
HTTP ERROR 500
Problem accessing /nn_browsedfscontent.jsp. Reason:
Cannot issue delegation token. Name node is in safe mode.
The reported blocks 0 needs additional 10 blocks to reach the threshold 0.9990 of total blocks 10.
Safe mode will be turned off automatically
Caused by:
org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot issue delegation token. Name node is in safe mode.
理论:
Hadoop的安全模式
在分布式文件系统启动的时候,开始的时候会有安全模式,当分布式文件系统处于安全模式的情况下,文件系统中的内容不允许修改也不允许删除,直到安全模式结束。安全模式主要是为了系统启动的时候检查各个DataNode上数据块的有效性,同时根据策略必要的复制或者删除部分数据块。运行期通过命令也可以进入安全模式。在实践过程中,系统启动的时候去修改和删除文件也会有安全模式不允许修改的出错提示,只需要等待一会儿即可。
在hadoop集群的时候,集群的运行会进入到安全模式(safeMode)下。在安全模式下运行一段时间后,自动退出。
1.那么,系统在安全模式下干什么了?
当集群启动的时候,会首先进入到安全模式。系统在安全模式下,会检查数据块的完整性。假设我们设置的副本数(即参数dfs.replication)是5,那么在dataNode上就应该有5个副本存在,假设只存在3个副本,那么比率就是3/5=0.6。
在配置文件hdfs-default.xml中定义了一个最小的副本率,见图7-1
我们的副本率0.6明显小于0.999,因此系统会自动的复制副本到其他dataNode,争取是的最小副本率>=0.999。如果系统中有8个副本,超过我们设定的5个副本,那么系统也会删除多于的3个副本。
2.安全模式对我们有什么影响?
这时,不允许客户端进行任何修改文件的操作,包括上传文件、删除文件、重命名、创建文件夹等操作。比如,创建文件时,在源代码中就有对安全模式的判断,如图7-2
当我们在安全模式下进行修改文件操作时,会报出如下错误.
正常情况下,安全模式会运行一段时间自动退出的。只需要我们稍等一会就可以了。到底等多长时间哪,我们可以通过50070端口查看安全模式退出的剩余时间,如图7-4。
虽然不能进行修改文件的操作,但是可以浏览目录结构、查看文件内容的。
3.我们可以控制是否进入或者退出安全模式吗?
在命令行下是可以控制安全模式的进入、退出和查看的,
命令hadoop fs –safemode get 查看安全模式状态
命令hadoop fs –safemode enter 进入安全模式状态
命令hadoop fs –safemode leave 离开安全模式状态
安全模式,是hadoop集群的一种保护机制,在启动时,最好是等待集群自动退出,然后再进行文件操作。
解决:
方法一:
safemode模式
NameNode在启动的时候首先进入安全模式,如果datanode丢失的block达到一定的比例(1-dfs.safemode.threshold.pct),则系统会一直处于安全模式状态即只读状态。
hadoop dfsadmin -safemode leave
有两个方法离开这种安全模式
1. 修改dfs.safemode.threshold.pct为一个比较小的值,缺省是0.999。
2. hadoop dfsadmin -safemode leave命令强制离开
方法二:
jps查看各个节点启动的进程
hadoop-daemon.sh start XX资源名 XX节点名
查看日志(若资源端口被占用,如50010端口被占用)
可以将占用此端口的程序杀掉或是更改hdfs-site.xml中的<name>dfs.datanode.address</name><value>0.0.0.0:50010</value>
杀掉进程释放端口方法:
1、netstat -tln | grep 50010,查看这个端口使用情况;
2、lsof -i:50010,显示是哪个程序占用此端口
3、kill -9 进程的PID,杀掉这个进程,重启节点服务即可。
补充:
dfsadmin -safemode value 来操作安全模式,参数value的说明如下:
enter - 进入安全模式
leave - 强制NameNode离开安全模式
get - 返回安全模式是否开启的信息
wait - 等待,一直到安全模式结束。
hadoop之 安全模式及SafeModeException的更多相关文章
- 启动HDFS之后一直处于安全模式org.apache.hadoop.hdfs.server.namenode.SafeModeException: Log not rolled. Name node is in safe mode.
一.现象 三台机器 crxy99,crxy98,crxy97(crxy99是NameNode+DataNode,crxy98和crxy97是DataNode) 按正常命令启动HDFS之后,HDFS一直 ...
- org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create directory /user/hive/warehouse/page_view. Name node is in safe mode
FAILED: Error in metadata: MetaException(message:Got exception: org.apache.hadoop.ipc.RemoteExceptio ...
- hadoop的安全模式
在安全模式下:不能增.删.改操作:但可以查看. 查看hadoop是否i处于安全模式下: 执行命令:hadoop dfsadmin -safemode get 进入hadoop的安全模式下: 执行命令: ...
- hadoop退出安全模式Name node is in safe mode
在使用 hdfs 的时候出现如下错误: 18/01/12 09:04:34 INFO fs.TrashPolicyDefault: Namenode trash configuration: Dele ...
- hive的hiveserver2模式启动不起来,发现Hadoop一直处于安全模式
hive的hiveserver2模式启动不起来,发现Hadoop一直处于安全模式 命令介绍 命令hadoop fs –safemode get 查看安全模式状态 命令hadoop fs –safemo ...
- 自问自答-hadoop在安全模式下究竟干了什么见不得人的事
本来想自己从网上搜集整理的,但是发现吴超写的刚刚好,不多不少,所以直接转载(图片失效了,用自己的图片) http://www.superwu.cn/2013/08/23/548/ 在hadoop集群的 ...
- hbase 无法操作与hadoop的安全模式的原因
最近使用hbase时,运行zookeeper的机子没有正常关闭zookeeper就关机了,导致开机后整个hbase集群无法使用,表现为master的localhost:60010 无法登录,使用hba ...
- Hbase出现ServerNotRunningYetException的解决方案(退出hadoop的安全模式)
退出安全模式 ./hadoop dfsadmin -safemode leave 然后出现 safemode off就成功了
- hadoop关闭安全模式
执行以下语句即可 hadoop dfsadmin -safemode leave
随机推荐
- 20145311实验四 "Android开发基础"
20145311实验四 "Android开发基础" 程序设计过程 实验内容 ·安装Android Studio·运行安卓AVD模拟器·使用安卓运行出虚拟手机并显示HelloWorl ...
- 20145311 《Java程序设计》第八周学习总结
20145311 <Java程序设计>第八周学习总结 教材学习内容总结 第十四章 NIO与NIO2 高级的输入输出处理,可以使用NIO(New IO),NIO2是文件系统的API 第十五章 ...
- 20145315 《Java程序设计》第九周学习总结
20145315 <Java程序设计>第九周学习总结 教材学习内容总结 第16章--整合数据库 16.1.1JDBC简介 应用程序通过通信协议对数据库进行指令交换,以进行对数据的的增删查找 ...
- 20145315 《Java程序设计》第二周学习总结
20145315 <Java程序设计>第二周学习总结 教材学习内容总结 类型 类型:整数分为short,int,long形. 字节:长度为一字节. 浮点数:储存小数,float和doubl ...
- ifconfig源码分析之与内核交互数据
<ifconfig源码分析之与内核交互数据>本文档的Copyleft归rosetta所有,使用GPL发布,可以自由拷贝.转载,转载时请保持文档的完整性.参考资料:<Linux设备驱动 ...
- shell脚本中多个条件判断的语法
if [ "$content" = "hello" ]\ || [ "$content" = "kitty" ] the ...
- cf 429 B Working out
B. Working out time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...
- codeforces 256 div2 C. Painting Fence 分治
C. Painting Fence time limit per test 1 second memory limit per test 512 megabytes input standard in ...
- Java网络编程学习A轮_07_基于Buffer的Socket编程
示例代码: https://github.com/gordonklg/study,socket module A. LineSeparate 基于 Buffer 实现逐行读取的 EchoServer ...
- Rspec: everyday-rspec实操: 第10章测试其他功能,第11章TDD 第12章总结。
10.测试文件上传 作者推荐的Paperclip,官方维护组已经不推荐使用deprecated. 推荐使用rails自带的 ActiveStorage. Active Storage: 推进文件上传到 ...