HDFS中的checkpoint( 检查点 )的问题
1、问题的描述
由于某种原因,需要在原来已经部署了Cloudera CDH集群上重新部署,重新部署之后,启动集群,由于Cloudera Manager 会默认设置dfs.namenode.checkpoint.period和dfs.namenode.checkpoint.txns分别是1个小时和1000000。只要达到这两个条件之一,secondarynamenode会执行checkpoint操作,此时会出现如下的问题:
ERROR:The health test result for NAME_NODE_HA_CHECKPOINT_AGE has become bad: The filesystem checkpoint is 4 hour(s) old. This is 401.25% of the configured checkpoint period of 1 hour(s). Critical threshold: 400.00%. 2,793 transactions have occurred since the last filesystem checkpoint. This is 0.28% of the configured checkpoint transaction target of 1,000,000.
经过初步分析,是由于secondarynamenode没有执行checkpoint的原因所导致,于是就查看了一下secondarynamenode的日志,发现真正的错误是:
ERROR: Exception in doCheckpoint java.io.IOException: Inconsistent checkpoint field
此时,说明查看个角色运行的日志很重要的,能够很精确的定位错误所在。
那么这两个问题的联系是什么呢?主要是secondarynamenode没有执行检查点的操作,导致会产生上面的错误,上面的错误说明的是你一直没有执行检查点的操作。下面的错误说明的是执行检查点操作失败,不执行。
2、问题的解决前的知识储备
在解决问题之前首先需要介绍一下检查点的作用及重要性。
(1)检查点
何为检查点:检查点是给secondarynamenode设置的,通过设置hdfs-site.xml中参数dfs.namenode.checkpoint.period和dfs.namenode.checkpoint.txns 来触发,只要达到这两个条件之一就可以出发secondarynamenode执行检查点的操作。
(2)检查点的的内容:
secondarynamenode执行检查点的内容是首先从namenode中读取Fsimage,并执行namenode中editslog文件中的操作,并最终生成一个新的FSimage文件,并将这个文件上传给Namenode。注意 :在这个过程中,如果editlog没有任何的记录的话,达到了检查点的条件后,也由于没有发生任何改变,因此不执行检查点操作。
(3)检查点的作用:
secondarynamenode执行这个检查点的操作,可以减少namenode的启动时间。
3、问题的解决方法
通过真正的错误的描述,发现主要是版本不匹配,说明在重新安装CDH的时候,保留了以前版本的CDH的数据,导致不一致的版本问题,所以导致secondarynamenode不执行检查点的操作。那么解决办法就是删除之前的数据,所以通过删除secondarynamenode执行检查点是的目录,即hdfs-site.xml中参数fs.checkpoint.dir, dfs.namenode.checkpoint.dir的值的路径。
删除之后,重新启动集群即可。
HDFS中的checkpoint( 检查点 )的问题的更多相关文章
- SparkStreaming之checkpoint检查点
一.简介 流应用程序必须保证7*24全天候运行,因此必须能够适应与程序逻辑无关的故障[例如:系统故障.JVM崩溃等].为了实现这一点,SparkStreaming需要将足够的信息保存到容错存储系统中, ...
- 关于oracle的缓冲区机制与HDFS中的edit logs的某些关联性的思考
可能大家会问,oracle和HDFS属于不同场景的存储系统,它们之间为什么会有联系呢?确实,从技术本身来看,他们确实无关联,但利用“整体学习”的思想,跳出技术本身,可以发现Oracle的缓冲区和HDF ...
- spark读取 kafka nginx网站日志消息 并写入HDFS中(转)
原文链接:spark读取 kafka nginx网站日志消息 并写入HDFS中 spark 版本为1.0 kafka 版本为0.8 首先来看看kafka的架构图 详细了解请参考官方 我这边有三台机器用 ...
- HDFS中NameNode管理元数据机制
NameNode职责 响应客户端请求 维护目录树 管理元数据(查询,修改) HDFS元数据存储 内存中有一份完整的元数据(特定数据结构) 磁盘有一个“准完整”的元数据的镜像文件 当客户端对HDFS中的 ...
- flink---实时项目----day03---1.练习讲解(全局参数,数据以parquet格式写入hdfs中) 2 异步查询 3 BroadcastState
1 练习讲解(此处自己没跑通,以后debug) 题目见flink---实时项目---day02 kafka中的数据,见day02的文档 GeoUtils package cn._51doit.flin ...
- [转]HDFS中JAVA API的使用
HDFS是一个分布式文件系统,既然是文件系统,就可以对其文件进行操作,比如说新建文件.删除文件.读取文件内容等操作.下面记录一下使用JAVA API对HDFS中的文件进行操作的过程. 对分HDFS中的 ...
- HDFS中JAVA API的使用
HDFS中JAVA API的使用 HDFS是一个分布式文件系统,既然是文件系统,就可以对其文件进行操作,比如说新建文件.删除文件.读取文件内容等操作.下面记录一下使用JAVA API对HDFS中的 ...
- spark streaming中使用checkpoint
从官方的Programming Guides中看到的 我理解streaming中的checkpoint有两种,一种指的是metadata的checkpoint,用于恢复你的streaming:一种是r ...
- 【Hadoop学习】HDFS中的集中化缓存管理
Hadoop版本:2.6.0 本文系从官方文档翻译而来,转载请尊重译者的工作,注明以下链接: http://www.cnblogs.com/zhangningbo/p/4146398.html 概述 ...
随机推荐
- Application.DoEvents():概念
When you run a Windows Form, it creates the new form, which then waits for events to handle. Each ti ...
- Python基础第三篇
一.collections系列 Counter是对字典类型的补充,用于追踪值的出现次数,具备字典的所有功能 + 自己的功能 1.计数器Counter import collections a='aba ...
- windows+caffe(四)——创建模型并编写配置文件+训练和测试
1.模型就用程序自带的caffenet模型,位置在 models/bvlc_reference_caffenet/文件夹下, 将需要的两个配置文件,复制到myfile文件夹内 2. 修改solver. ...
- transient
“transient”——“瞬态”,先不说这个翻译是否恰当,这个变量关键字一直不曾使用,简单的说就是被瞬态定义的变量不可序列号.或者这么给他换个名字——“不可序列化状态”.打个比方,如果一个用户有一些 ...
- jquery 新闻滚动效果
$(function () { var scrollTimer = null; var delay = 2000; //1.鼠标对新闻触发mouseout事件后每2s调用scr ...
- logging模块转载博客
转载自:http://blog.csdn.net/zyz511919766/article/details/25136485 简单将日志打印到屏幕: [python] view plain copy ...
- JavaScript高级应用(一)
1.尺寸 //各种尺寸 s += "\r\n网页可见区域宽(document.body.clientWidth):"+ document.body.clientWidth; s + ...
- Hibernate的关联映射——双向1-N关联
Hibernate的关联映射--双向1-N关联 对于1-N的关联,Hibernate推荐使用双向关联,而且不要让1的一端控制关联关系,而是用N的一端控制关联关系.双线的1-N关联和N-1关联是两种相同 ...
- Mysql新知识点150928
1.select distinct(DATE_FORMAT(updatetime,'%Y-%m')) as updatetime from barcode where pid!=0 order by ...
- Working with Binary Data in Python
http://www.devdungeon.com/content/working-binary-data-python