hdfs文件上传机制与namenode元数据管理机制
1.hdfs文件上传机制
文件上传过程:
1.客户端想NameNode申请上传文件,
2.NameNode返回此次上传的分配DataNode情况给客户端
3.客户端开始依向dataName上传对应的block数据块。
4.上传完成之后通知namenode,namenode利用pipe管道机制进行文件的备份,也就是一个集群中文件有好几个副本。
5.如果备份失败会将失败信息返回给namenode然后重新分配备节点,并利用pipe管道备份文件
2.NameNode管理元数据的机制

过程:
1.客户端上传文件时,首先向NameNode申请上传文件
2.NameNode首先往edit logs记录元数据操作日志(也就是记录block分配情况等数据)
3.NameNode将文件上传分配blk情况返回给客户端
4.客户端向dateNode上传文件
5.上传成功之后,客户端通知namenode文件上传完成
6.namenode将本次分配的日志信息读取到内存中(内存中记录最新的文件上传的元数据),
7.为了防止内存数据丢失,需要将元数据进行持久化操作。每当editlogs快要写满时将这一段时间的log写入到fsimage中
3.NameNode将元数据持久化到磁盘的过程

过程:(为了防止进行editlog和fsimage合并浪费内存,因此将合并文件的操作在secondnode中进行)
1.当editlogs快要满的时候namenode通知secondnode进程checkpoint操作(合并操作)
2.secondnode收到通知后通知namenode停止向editlogs写日志,
3.此时为了不影响客户端继续上传文件,namenode新创一个文件叫做edits.new记录代替editlogs记录日志操作
4.secondnode将fsimage和editlogs下载进行合并,由于hadoop集成了jetty插件,因此通过http协议下载文件
5.下载完成之后secondnode利用自己的CPU,将editlogs按照fsimage的格式进行计算之后合并到fsimage完成合并,并将文件重命名为fsimage.chkpoint
6.合并完成之后上传给namenode。namenode删除原来的fsimage和edits,并将edits.new重命名为editlogs,将fsimage.chkpoint重新命名为fsimage。就可以进行正常的hdfs机制
1. 什么时候checkpiont
fs.checkpoint.period 指定两次checkpoint的最大时间间隔,默认3600秒。
fs.checkpoint.size 规定edits文件的最大值,一旦超过这个值则强制checkpoint,不管是否到达最大时间间隔。默认大小是64M
总结:
(1)上面的机制就保证断点之后fsimage有大部分的元数据信息,editlogs有最新的元数据信息,内存中也有最新的元数据信息,这样断电之后也不会丢失数据。同时客户端查询数据的时候也会从内存中读取而不会影响速度。
(2)NameNode的作用:
- 维护元数据信息
- 维护hdfs的目录树
- 响应客户端请求
(3)namenode工作特点
Namenode始终在内存中保存metedata,用于处理“读请求”
到有“写请求”到来时,namenode会首先写editlog到磁盘,即向edits文件中写日志,成功返回后,才会修改内存,并且向客户端返回
Hadoop会维护一个fsimage文件,也就是namenode中metedata的镜像,但是fsimage不会随时与namenode内存中的metedata保持一致,而是每隔一段时间通过合并edits文件来更新内容。Secondary namenode就是用来合并fsimage和edits文件来更新NameNode的metedata的。
hdfs文件上传机制与namenode元数据管理机制的更多相关文章
- Hadoop- NameNode和Secondary NameNode元数据管理机制
元数据的存储机制 A.内存中有一份完整的元数据(内存meta data) B.磁盘有一个“准完整”的元数据镜像(fsimage)文件(在namenode的工作目录中) C.用于衔接内存metadata ...
- HDFS文件上传
下图描述了Client向HDFS上传一个200M大小的日志文件的大致过程: 1)首先,Client发起文件上传请求,即通过RPC与NameNode建立通讯. 2)NameNode与各DataNode使 ...
- hadoop学习记录--hdfs文件上传过程源码解析
本节并不大算为大家讲接什么是hadoop,或者hadoop的基础知识因为这些知识在网上有很多详细的介绍,在这里想说的是关于hdfs的相关内容.或许大家都知道hdfs是hadoop底层存储模块,专门用于 ...
- Crontab中shell每分钟执行一次HDFS文件上传不执行的解决方案
一.Crontab -e 加入输出Log */1 * * * * /qiwen_list/upload_to_hdfs.sh > /qiwen_list/mapred.log 2>& ...
- HDFS文件上传下载过程(详图)
- 【Hadoop】hdfs文件上传流程图
- Hadoop之HDFS原理及文件上传下载源码分析(上)
HDFS原理 首先说明下,hadoop的各种搭建方式不再介绍,相信各位玩hadoop的同学随便都能搭出来. 楼主的环境: 操作系统:Ubuntu 15.10 hadoop版本:2.7.3 HA:否(随 ...
- Hadoop之HDFS原理及文件上传下载源码分析(下)
上篇Hadoop之HDFS原理及文件上传下载源码分析(上)楼主主要介绍了hdfs原理及FileSystem的初始化源码解析, Client如何与NameNode建立RPC通信.本篇将继续介绍hdfs文 ...
- HDFS的上传流程以及windows-idea操作文件上传的注意
HDFS的上传流程 命令:hdfs dfs -put xxx.wmv /hdfs的文件夹 cd进入到要上传文件的当前目录,再输入hdfs命令上传,注意-put后tab可以自动补全, 最后加上你要上传到 ...
随机推荐
- Gitkraken系列-Gitkraken修改用户名
修改用户名 为了方便项目中代码的管理,需要重新编辑用户名. 点击右上角的图像即可看到如下图 3‑1所示的下拉菜单,鼠标悬于Profile上,会出现一个Edit按钮. 图 3‑1 编辑个人信息 点击Ed ...
- intelliJ IDEA最常用的快捷键
一.使用相关快捷键 1.重写接口实现类:Ctrl+I 2.搜索:Shift+Shift 3.生成get或set方法快捷键:Alt+insert: 4.导入未实现的方法,强制类型转换:Alt+Ent ...
- 【bzoj1708】[USACO2007 Oct]Money奶牛的硬币 背包dp
题目描述 在创立了她们自己的政权之后,奶牛们决定推广新的货币系统.在强烈的叛逆心理的驱使下,她们准备使用奇怪的面值.在传统的货币系统中,硬币的面值通常是1,5,10,20或25,50,以及100单位的 ...
- 【以前的空间】bzoj1009 [HNOI2008]GT考试
动态规划+kmp+矩阵快速幂 关于这题可以写出一个dp方程(f[i,j]表示准考证前i位中后j位为不吉利的数字的前j位的情况的个数) f[i,j]=Σf[i-1,k],其中j表示不吉利数字前k个数字加 ...
- bzoj1588 [HNOI2002]营业额统计 (treap)
平衡树裸题 只需要求前驱后驱 treap写法 const mm=<<; maxnumber=; maxn=; var left,right,fix,key:..maxn]of longin ...
- 38 一次 redis 连接泄露的原因 以及 ShardedJedisPool
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u011039332/article/details/85381051前言 这个是接着 上次的 这篇文 ...
- BZOJ3456:城市规划——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=3456 求出n个点的简单(无重边无自环)无向连通图数目 模数很熟悉,先敲一个NTT. 然后通过推导式 ...
- 洛谷 P2906 [USACO08OPEN]牛的街区Cow Neighborhoods | Set+并查集
题目: https://www.luogu.org/problemnew/show/P2906 题解: 垃圾水题 #include<cstdio> #include<algorith ...
- ywy_c_asm题
未知出处 题意: 定义一个无穷长的数列,满足以下性质:$1.X_{2n}=-{X_{n}}$ $2.X_{2n}=(-1)^{(n+1)}*X_{n}$ $3.X_{2n-1}=(-1)^{(n+1) ...
- 如何使用Navicat连接Oracle
1.Navicat连接Oracle,需要使用OCI库.因此先要安装Oracle提供的客户端instantclient-basic, 请注意,32位的Navicat需要下载配置32位的instantcl ...
