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& ...
随机推荐
- Canvas贝塞尔三级曲线
两个控制点 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- 通过浏览器navigator判断浏览器版本或者手机类型&&判断微信访问
javascript 的navigator属性,不常用,但是用处也不少,主要用处是在做浏览器兼容的问题的时候,现在有的网站已经不兼容IE6,用户假如用IE6浏览网页的话,会提示浏览器升级等信息.或者判 ...
- request.setAttribute和request.getAttribute还有session.setAttribute和session.getAttribute还有request.getParameter和request.getAttribute区别和联系
1.session.setAttribute()和session.getAttribute()配对使用,作用域是整个会话期间,在所有的页面都使用这些数据的时候使用. 2.request.setAttr ...
- 【js 编程艺术】小制作二
首先是一个html文档 /* explanation.html */<!DOCTYPE html> <html> <head> <meta charset=& ...
- TypeScript教程2
在TS中,我们允许开发人员使用面向对象技术. 1.类让我们看看一个简单的基于类的例子: class Greeter { greeting: string; constructor(message: s ...
- 蓝桥网试题 java 基础练习 十六进制转十进制
---------------------------------------------------------------------------------------- 貌似用int类型不会超 ...
- io的四个分类
1.首先是字节操作:InputStream和OutputStream 2.字符操作:Reader和Writer 3.磁盘操作:File 4.网络操作:scoket(不在java.io包)
- 重写titleView
在一些特定的情况下不能使用原有的titleView需要重写titleView代码如下 #import "TitleView.h" @implementation TitleView ...
- unity 双面shader
Shader "Custom/DoubleFace" { Properties { _Color ("Main Color", Color) = ...
- C语言字节数组转换为基本数据类型
首先,必须明确基本类型在不同环境下字节的大小 这里用到了unsigned char:1 int:4 double:8 自己主要想用的是将字节数组转换为int型,double型 具体来说,将接收到的 ...