文章作者: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启动过程的更多相关文章

  1. hadoop namenode启动过程详细剖析及瓶颈分析

    NameNode中几个关键的数据结构 FSImage Namenode 会将HDFS的文件和目录元数据存储在一个叫fsimage的二进制文件中,每次保存fsimage之后到下次保存之间的所有hdfs操 ...

  2. HDFS中NameNode启动过程

    移动到hadoop文件目录下 NameNode启动命令:sbin/hadoop-daemon.sh start namenode DataNode启动命令:sbin/hadoop-daemon.sh ...

  3. 【5】namenode启动过程

    1.格式化空间(第一次启动的操作): 命令:bin/hadoop -format //用于格式化HDFS,如果不是首次格式化,需要删除下面配置的tmp目录后再进行core-site.xml的配置: / ...

  4. 4、NameNode启动过程详解

    NameNode 内存 本地磁盘 fsimage edits 第一次启动HDFS 格式化HDFS,目的就是生成fsimage start NameNode,读取fsimage文件 start Data ...

  5. Hadoop namenode启动瓶颈分析

    NameNode启动过程详细剖析 NameNode中几个关键的数据结构 FSImage Namenode会将HDFS的文件和目录元数据存储在一个叫fsimage的二进制文件中,每次保存fsimage之 ...

  6. HDFS启动过程概述及集群安全模式操作

    1.启动过程概述 Namenode启动时,首先将映像文件(fsimage)载入内存,并执行编辑日志(edits)中的各项操作.一旦在内存中成功建立文件系统元数据的映像,则创建一个新的fsimage文件 ...

  7. Hadoop源码:namenode格式化和启动过程实现

    body { margin: 0 auto; font: 13px / 1 Helvetica, Arial, sans-serif; color: rgba(68, 68, 68, 1); padd ...

  8. HDFS 2中Namenode启动时WebUI的变化

      在HDFS1中NameNode启动顺序是这样的: 1. 读取Fsimage文件 2. 读取edit logs文件,逐行执行里面的操作 3. 写checkpoint,生成新的Fsimage(老的Fs ...

  9. HDFS中namenode启动失败

    1.环境配置: -1.core-site.xml文件 <configuration> <property> <name>fs.defaultFS</name& ...

随机推荐

  1. ASP.NET Forms身份认证

    asp.net程序开发,用户根据角色访问对应页面以及功能. 项目结构如下图: 根目录 Web.config 代码: <?xml version="1.0" encoding= ...

  2. [html5] 学习笔记-响应式布局

    1.响应式布局介绍 响应式布局是2010年5月份提出的一个概念,简而言之,就是一个网站能够兼容多个终端——而不是每一个终端做一个特定的版本.这个概念是为了兼容移动互联网浏览而诞生的,其目的是为用户提供 ...

  3. Unix/Linux 网络 IO 模型简介

    概述 Linux内核将所有外部设备都看做一个文件来操作.对该文件的读写操作会调用内核提供的系统命令, 返回一个fd(file descriptor)文件描述符.而对一个socket的读写也有相应的描述 ...

  4. asp.net权限认证:OWIN实现OAuth 2.0 之授权码模式(Authorization Code)

    asp.net权限认证系列 asp.net权限认证:Forms认证 asp.net权限认证:HTTP基本认证(http basic) asp.net权限认证:Windows认证 asp.net权限认证 ...

  5. InfluxDB读写性能测试

    今天进行了InfluxDB和MySQL的对比测试,这里记录下结果,也方便我以后查阅. 操作系统: CentOS6.5_x64InfluxDB版本 : v1.1.0MySQL版本:v5.1.73CPU ...

  6. OC 常用方法记录

    1.排序 给数组排序 按照字母的升序 //对key按字母升序排序 NSArray *sortedArray = [keys sortedArrayUsingComparator:^NSComparis ...

  7. Docker实战--部署简单nodejs应用

    如何在Docker的container里运行Node.js程序 主体思路:一个简单的Node.js web app,来构建一个镜像,然后基于这个镜像,运行一个容器,从而实现快速部署. 操作环境: 虚拟 ...

  8. CocoaPods 2016最新安装和使用说明

    cocoapods 简介: CocoaPods是OS X和iOS下的一个第三类库管理工具,通过CocoaPods工具我们可以为项目添加被称为“Pods”的依赖库(这些类库必须是CocoaPods本身所 ...

  9. Python学习--21 电子邮件

    发送邮件 SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件.HTML邮件以及带附件的邮件. Python对SMTP支持有smtplib和email两个模块,email负责 ...

  10. Spark RDD编程核心

    一句话说,在Spark中对数据的操作其实就是对RDD的操作,而对RDD的操作不外乎创建.转换.调用求值. 什么是RDD RDD(Resilient Distributed Dataset),弹性分布式 ...