HDFS Namenode启动过程
文章作者:luxianghao
文章来源:http://www.cnblogs.com/luxianghao/p/6564032.html 转载请注明,谢谢合作。
免责声明:文章内容仅代表个人观点,如有不当,欢迎指正。
---
在启动过程中,Namenode在能处理client的请求之前必须完成以下几步:
1 从fsimage文件中读取系统metadata
2 读取edit logs并把记录在其中的操作合并到系统metadata中去
3 生成一个新的checkpoint(新的fsimage必须和旧fsimage加上edit log上操作保持一致)
4 保持safe mode直到Datanodes上报足够数量的block信息
在一些情况下 上面的这些动作会消耗很长时间, eg:
1 edit logs很大,这样读取记录到这里面的操作,合并到system metadata会花费很长时间,当secondary nn长时间不工作的时候,这种情况就会发生,
2 老化的磁盘会拖慢任何受限于io的操作: 读取fsimage,读取 edit logs,生成一个新的checkpoint(包含上面两个动作)
3 当生成一个新的checkpoint的时候,NN会写所有的被配置存储fsimage的位置,这个动作是并行的,但是NN会阻塞直到所有的写操作完成
这就意味着一块慢盘会拖慢整个启动过程
通常管理员在遇到问题的时候会第一时间去看web UI,但是NN在生成一个新的checkpoint之后才会启动 HTTP server,当重启一个NN而且启动过程慢的时候,
在web UI可用之前通常要花费好几分钟,甚至一个小时的时间,也有可能在启动过程中,NN hung住了,但是有经验的工程师,会通过检查thread dumps
来判断NN是否在正常启动
针对上面的这个说的这种不能及时看web UI的情况HDP 2.0加了一个新的feature来解决这个问题,具体可参考 https://issues.apache.org/jira/browse/HDFS-4249
参考文档:
https://zh.hortonworks.com/blog/understanding-namenode-startup-operations-in-hdfs/
HDFS Namenode启动过程的更多相关文章
- hadoop namenode启动过程详细剖析及瓶颈分析
NameNode中几个关键的数据结构 FSImage Namenode 会将HDFS的文件和目录元数据存储在一个叫fsimage的二进制文件中,每次保存fsimage之后到下次保存之间的所有hdfs操 ...
- HDFS中NameNode启动过程
移动到hadoop文件目录下 NameNode启动命令:sbin/hadoop-daemon.sh start namenode DataNode启动命令:sbin/hadoop-daemon.sh ...
- 【5】namenode启动过程
1.格式化空间(第一次启动的操作): 命令:bin/hadoop -format //用于格式化HDFS,如果不是首次格式化,需要删除下面配置的tmp目录后再进行core-site.xml的配置: / ...
- 4、NameNode启动过程详解
NameNode 内存 本地磁盘 fsimage edits 第一次启动HDFS 格式化HDFS,目的就是生成fsimage start NameNode,读取fsimage文件 start Data ...
- Hadoop namenode启动瓶颈分析
NameNode启动过程详细剖析 NameNode中几个关键的数据结构 FSImage Namenode会将HDFS的文件和目录元数据存储在一个叫fsimage的二进制文件中,每次保存fsimage之 ...
- HDFS启动过程概述及集群安全模式操作
1.启动过程概述 Namenode启动时,首先将映像文件(fsimage)载入内存,并执行编辑日志(edits)中的各项操作.一旦在内存中成功建立文件系统元数据的映像,则创建一个新的fsimage文件 ...
- Hadoop源码:namenode格式化和启动过程实现
body { margin: 0 auto; font: 13px / 1 Helvetica, Arial, sans-serif; color: rgba(68, 68, 68, 1); padd ...
- HDFS 2中Namenode启动时WebUI的变化
在HDFS1中NameNode启动顺序是这样的: 1. 读取Fsimage文件 2. 读取edit logs文件,逐行执行里面的操作 3. 写checkpoint,生成新的Fsimage(老的Fs ...
- HDFS中namenode启动失败
1.环境配置: -1.core-site.xml文件 <configuration> <property> <name>fs.defaultFS</name& ...
随机推荐
- ASP.NET Forms身份认证
asp.net程序开发,用户根据角色访问对应页面以及功能. 项目结构如下图: 根目录 Web.config 代码: <?xml version="1.0" encoding= ...
- [html5] 学习笔记-响应式布局
1.响应式布局介绍 响应式布局是2010年5月份提出的一个概念,简而言之,就是一个网站能够兼容多个终端——而不是每一个终端做一个特定的版本.这个概念是为了兼容移动互联网浏览而诞生的,其目的是为用户提供 ...
- Unix/Linux 网络 IO 模型简介
概述 Linux内核将所有外部设备都看做一个文件来操作.对该文件的读写操作会调用内核提供的系统命令, 返回一个fd(file descriptor)文件描述符.而对一个socket的读写也有相应的描述 ...
- asp.net权限认证:OWIN实现OAuth 2.0 之授权码模式(Authorization Code)
asp.net权限认证系列 asp.net权限认证:Forms认证 asp.net权限认证:HTTP基本认证(http basic) asp.net权限认证:Windows认证 asp.net权限认证 ...
- InfluxDB读写性能测试
今天进行了InfluxDB和MySQL的对比测试,这里记录下结果,也方便我以后查阅. 操作系统: CentOS6.5_x64InfluxDB版本 : v1.1.0MySQL版本:v5.1.73CPU ...
- OC 常用方法记录
1.排序 给数组排序 按照字母的升序 //对key按字母升序排序 NSArray *sortedArray = [keys sortedArrayUsingComparator:^NSComparis ...
- Docker实战--部署简单nodejs应用
如何在Docker的container里运行Node.js程序 主体思路:一个简单的Node.js web app,来构建一个镜像,然后基于这个镜像,运行一个容器,从而实现快速部署. 操作环境: 虚拟 ...
- CocoaPods 2016最新安装和使用说明
cocoapods 简介: CocoaPods是OS X和iOS下的一个第三类库管理工具,通过CocoaPods工具我们可以为项目添加被称为“Pods”的依赖库(这些类库必须是CocoaPods本身所 ...
- Python学习--21 电子邮件
发送邮件 SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件.HTML邮件以及带附件的邮件. Python对SMTP支持有smtplib和email两个模块,email负责 ...
- Spark RDD编程核心
一句话说,在Spark中对数据的操作其实就是对RDD的操作,而对RDD的操作不外乎创建.转换.调用求值. 什么是RDD RDD(Resilient Distributed Dataset),弹性分布式 ...