HDFS体系架构


Master-slaver结构,namenode是中心服务器维护着文件系统树和整个树内的文件目录,
负责整个数据集群的管理。datanode分布在不同的机架上,在客户端和namenode的调度下
存储并检索数据块,并且定期向namenode发送所存储的块的列表。客户端通过datanode和namenode
的交互访问文件系统。联系namenode获取文件的元数据,真正的IO操作直接和datanode交互。
数据块在不同的datanode上备份以应对节点故障。默认每个数据块都保存三个副本,其中两个副本存在不同
机架两个不同节点上,另一个副本存在不同机架的节点上。

默认数据块大小64M
元数据指文件和目录的属性信息。
镜像文件中记录修改时间,访问时间,数据块大小,组成一个文件的数据块存储位置
目录中镜像文件包含修改时间,访问控制权限。
日志文件记录HDFS 所有跟新操作
namenode启动时,合并镜像文件和日志文件。把内存中的元数据跟新到最新状态。
i
每3sdatanode向namenode发送心跳,显示自己存活,每10次心跳发送一次数据块报告,‘
包含自己存储的数据块信息通过这些信息,namenode能重建元数据,并确保每个数据块有足够的副本。

1客户端打开分布式文件系统
2分布式文件系统通过远程过程调用访问namenode,
读到数据块信息,datanode地址
3客户端通过文件系统输入输出流读数据
4向距离最近的datanode读取数据
5出错则向副本发起连接,并记录,以后不再连接

1客户端打开分布式文件系统
2分布式文件系统通过远程过程调用访问namenode
3namenode首先确认文件不存在,然后创建一个新的文件
4客户端通过文件系统输入输出流写入数据
5FSDataOutputStream将数据分成块写入队列
6DataStreamer处理数据队列,根据数据队列,要求namenode分配适合的datanode来存储数据副本,每个数据块默认赋值三块
7然后将数据发送给第一个datanode,第一个datanode将数据发送给第二个datanode,第二个datanode将数据块发送个第三个datanode
8数据写好后,向FSDataOutputStream发送ACK,FSDataOutputStream调用close向namenode通知写入完成,
HDFS体系架构的更多相关文章
- HDFS的体系架构
通过对Hadoop分布式计算平台最核心的分布式文件系统HDFS.MapReduce处理过程,以及数据仓库工具Hive和分布式数据库Hbase的介绍.基本涵盖了Hadoop分布式平台的全部技术核心. H ...
- Map/Reduce的类体系架构
Map/Reduce的类体系架构 Map/Reduce案例解析: 先以简单的WordCount例程, 来讲解如何去描述Map/Reduce任务. public static void main(Str ...
- Hadoop体系架构简介
今天跟一个朋友在讨论hadoop体系架构,从当下流行的Hadoop+HDFS+MapReduce+Hbase+Pig+Hive+Spark+Storm开始一直讲到HDFS的底层实现,MapReduce ...
- HBase体系架构和集群安装
大家好,今天分享的是HBase体系架构和HBase集群安装.承接上两篇文章<HBase简介>和<HBase数据模型>,点击回顾这2篇文章,有助于更好地理解本文. 一.HBase ...
- Hadoop1.x HDFS系统架构
1. HDFS中的一些概念1.1 数据块1.2 NameNode和DataNode1.2.1 管理者:Namenode1.2.1 工作者:Datanode1.3 Secondary Namenode1 ...
- HDFS HA架构以及源代码引导
HA体系架构 相关知识介绍 HDFS master/slave架构,HDFS节点分为NameNode节点和DataNode节点. NameNode存有HDFS的元数据:主要由FSImage和EditL ...
- 说说面向服务的体系架构SOA
序言 在.Net的世界中,一提及SOA,大家想到的应该是Web Service,WCF,还有人或许也会在.NET MVC中的Web API上做上标记,然后泛泛其谈! 的确,微软的这些技术也确实推动着面 ...
- 【转】XenServer体系架构解析
XenServer是一套已在云计算环境中经过验证的企业级开放式服务器虚拟化解决方案,可以将静态.复杂的IT环境转变为更加动态.易于管理的虚拟数据中心,从而大大降低数据中心成本.同时,它可以提供先进的管 ...
- WebLogic集群体系架构
WebLogic Server集群概述 WebLogic Server 群集由多个 WebLogic Server 服务器实例组成,这些服务器实例同时运行并一起工作以提高可缩放性和可靠性.对于客户端 ...
随机推荐
- C# MVC 页面静态化导致的问题
在设置页面静态化的路由,代码如 //静态路由 routes.MapRoute( name: "html", url: "{controller}/{action}.htm ...
- Runtime实战之定制TabBarItem大小
方案一:UIEdgeInsets 适用场景: 适合APP的TabBarItemImage的图片资源放在本地 图片超出tabbar的高度,需移动其位置,来进行适应 弊端: 若在本地配置好后,tabbar ...
- Python开发【前端】:HTML
HTML HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记).相当于定义统一的一套规则,大家都来遵守他,这样就可以让浏 ...
- windows下面配置apache+http
一.apache安装 下载并安装apache_2.2.9-win32-x86-openssl-0.9.8h-r2.msi(见附件),找到apache安装目录(C:\Program Files (x86 ...
- Css定位之relative_慕课网课程笔记
前言 最近在慕课网上跟着张鑫旭大神重新学习一遍CSS相关的知识,以下是学习的笔记以及个人一些理解 relative对绝对定位的限制 1.限制绝对定位 绝对定位的top.left.right和botto ...
- LDAP 中 CN, OU, DC 的含义
1. LDAP的存储规则 区分名(DN,Distinguished Name) 和自然界中的树不同,文件系统/LDAP/电话号码簿目录的每一片枝叶都至少有一个独一无二的属性,这一属性可以帮助我们来区别 ...
- listener does not currently know of SID项目部署报数据库错
百度以后是数据库配置错误啊,但是我觉得就是对的呀,也去验证过了. 反正知道问题就是在databaseurl那里,但是原因是什么呢?其他地方部署都是好的呀! 集群问题啊,数据库人员采用集群方式配置数据库 ...
- Java操作excel
慕课网的好课程: http://www.imooc.com/learn/354
- 接口性能测试--JMeter
1.JMeter Java Sampler介绍 setupTest做些初始化的工作,每个线程只执行一次 teardownTest做些清理工作,每个线程只执行一次 1.JMeter Java Sampl ...
- No compiler is provided in this environment. Perhaps you are running on a JRE ra
No compiler is provided in this environment. Perhaps you are running on a JRE ra,有需要的朋友可以参考下. 控制台输出的 ...