启动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一直处于安全模式(造成启动Hive的时候失败,不能向HDFS上写数据),正常情况下是在启动的前30秒处于安全模式,之后就退出了.
可以采取强制退出安全模式的方式;
安全模式的相关命令:
获取安全模式的状态: hdfs dfsadmin -safemode get 安全模式打开 hdfs dfsadmin -safemode enter 安全模式关闭 hdfs dfsadmin -safemode leave
二.调查
查看HDFS启动的日志,到HDFS配置的日志对应的目录去查看日志信息:
查看crxy99 NameNode对应的日志信息 关于安全模式的报错信息如下:
2017-08-29 00:30:52,201 DEBUG org.apache.hadoop.ipc.Server: Served: rollEditLog queueTime= 6 procesingTime= 0 exception= SafeModeException
2017-08-29 00:30:52,202 DEBUG org.apache.hadoop.security.UserGroupInformation: PrivilegedActionException as:root (auth:SIMPLE) cause:org.apache.hadoop.hdfs.server.namenode.SafeModeException: Log not rolled. Name node is in safe mode.
The reported blocks 7259 needs additional 83 blocks to reach the threshold 0.9990 of total blocks 7349.
The number of live datanodes 2 has reached the minimum number 0. Safe mode will be turned off automatically once the thresholds have been reached.
2017-08-29 00:30:52,202 INFO org.apache.hadoop.ipc.Server: IPC Server handler 3 on 9000, call org.apache.hadoop.hdfs.server.protocol.NamenodeProtocol.rollEditLog from 192.168.43.97:54228 Call#1 Retry#0: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Log not rolled. Name node is in safe mode.
The reported blocks 7259 needs additional 83 blocks to reach the threshold 0.9990 of total blocks 7349.
The number of live datanodes 2 has reached the minimum number 0. Safe mode will be turned off automatically once the thresholds have been reached.
关于 The reported blocks 7259 needs additional 83 blocks to reach the threshold 0.9990 of total blocks 7349. 大体意思是DataNode给NameNode汇报了7259个block块,但是还需要83个block块 才能达到总共所需要的7349个block块的0.99990.
一句话:就是缺少block块..... 关于这个错误和安全模式的介绍推荐看一个帖子:http://www.superwu.cn/2013/08/23/548/部分内容如下:
在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集群的一种保护机制,在启动时,最好是等待集群自动退出,然后再进行文件操作。
为什么会少block块呢?
猜测某个DataNode节点没有正常启动,于是jps查看各个节点启动的进程.发现crxy97没有启动,没有DataNode进程. 为什么crxy97没有启动DataNode进程呢?
①先单独尝试启动这个DataNode节点:
hadoop-daemon.sh start datanode crxy97
再在crxy97上查看仍然没有启动DataNode进程.
②去crxy97上的日志中去查看
2017-08-31 08:13:37,890 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Exception in secureMain
java.net.BindException: Problem binding to [0.0.0.0:50010] java.net.BindException: Address already in use; For more details see: http://wiki.apache.org/hadoop/B indException
原因是50010端口被占用了.
③为什么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,杀掉这个进程,重启节点服务即可。
经调查发现我crxy97可能是是因为之前安装过CM,创建了一个hdfs用户,只要crxy97机器一启动,就会使用hdfs用户启动一个程序占用50010端口.我采取的方法是去/etc/passwd中删除hdfs用户对应的信息.
然后使用 " userdel hdfs " 这样重新启动crxy97之后 也没有程序占用50010端口, HDFS正常启动之后不再处于一直处于安全模式,问题解决.
启动HDFS之后一直处于安全模式org.apache.hadoop.hdfs.server.namenode.SafeModeException: Log not rolled. Name node is in safe mode.的更多相关文章
- Datanode启动问题 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool <registering>
-- ::, INFO org.apache.hadoop.hdfs.server.datanode.DataNode: supergroup = supergroup -- ::, INFO org ...
- Hive:org.apache.hadoop.hdfs.protocol.NSQuotaExceededException: The NameSpace quota (directories and files) of directory /mydir is exceeded: quota=100000 file count=100001
集群中遇到了文件个数超出限制的错误: 0)昨天晚上spark 任务突然抛出了异常:org.apache.hadoop.hdfs.protocol.NSQuotaExceededException: T ...
- HADOOP HA 踩坑 - org.apache.hadoop.hdfs.qjournal.protocol.JournalNotFormattedException: Journal Storage Directory /mnt/data1/hadoop/dfs/journal/hdfscluster not formatted
报错:在journalnode的log中: org.apache.hadoop.hdfs.qjournal.protocol.JournalNotFormattedException: Journal ...
- HDFS超租约异常总结(org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException)
HDFS超租约异常总结(org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException) 转载 2014年02月22日 14:40:58 96 ...
- ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: Incompatible namespaceIDs
用三台centos操作系统的机器搭建了一个hadoop的分布式集群.启动服务后失败,查看datanode的日志,提示错误:ERROR org.apache.hadoop.hdfs.server.dat ...
- Hadoop程序运行中的Error(1)-Error: org.apache.hadoop.hdfs.BlockMissingException
15/03/18 09:59:21 INFO mapreduce.Job: Task Id : attempt_1426641074924_0002_m_000000_2, Status : FAIL ...
- 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错误FATAL org.apache.hadoop.hdfs.server.namenode.NameNode Exception in namenode join java.io.IOException There appears to be a gap in the edit log
错误: FATAL org.apache.hadoop.hdfs.server.namenode.NameNode Exception in namenode join java.io.IOExcep ...
- org.apache.hadoop.hdfs.server.datanode.DataNode: Exception in receiveBlock for block
Hbase依赖的datanode日志中如果出现如下报错信息:DataXceiverjava.io.EOFException: INFO org.apache.hadoop.hdfs.server.da ...
随机推荐
- 安装docker跨主机网络flannel
一.实验环境 机器 操作系统 安装服务 172.16.4.36 centos7 docker etcd flannel 172.16.4.37 centos7 docker etcd flanne ( ...
- Everything的简单使用
1.Everythings下载地址: http://www.voidtools.com/ 下载完后直接解压,运行everything.exe即可打开使用: 2.基本设置 (1)去除不需要搜索的文件夹: ...
- 相似性度量 Aprioir算法
第三章 标称:转换成0,1来算,或者用非对称二元属性 二元:x1,x2的分布取00,01,10,11的二元属性个数,列表,算比例.不对称的二元属性就忽略00的属性个数 序数:转换成排位rif,度量:r ...
- 添加网络ADB的方法(含以太网和无线)
将下面代码添加至packages/apps/Settings/src/com/android/settings/DevelopmentSettings.java 结合之前的添加wifi adb的博客 ...
- C++ dynamic_cast 的使用
C++中的dynamic_cast 执行运行时刻类型转换,起作用有点类似于Java当中的instance of reference:http://www.cnblogs.com/chio/archiv ...
- LINQ 语法
语言集成查询 (LINQ) 是 Visual Studio 2008 和 .NET Framework 3.5 版中一项突破性的创新,它在对象领域和数据领域之间架起了一座桥梁. 传统上,针对数据的查询 ...
- 【ORA错误大全】 ORA-19527
在做主备切换的时候,需要将备库的联机日志文件清除(clear online redo logfile),为了加快switchover的速度,Oracle10g在将备库置于manged standby状 ...
- MIT Molecular Biology 笔记4 DNA相关实验
视频 https://www.bilibili.com/video/av7973580?from=search&seid=16993146754254492690 教材 Molecular ...
- 再论hibernatetemplate
自动生成hibernate配置文件的时候,会在dao层用到getSession()方法来操作数据库记录,但是他还有个方法getHibernateTemplate(),这两个方法究竟有什么区别呢? 1. ...
- hdu 5013 优化疑问+dp
http://acm.hdu.edu.cn/showproblem.php?pid=5013 m个游客,n座城市(m, n <= 16), 每个人从1走到n, 每次有一定概率停在原地,然后以后就 ...
