HDFS的架构
主从结构
- 主节点,只有一个: namenode
- 从节点,有很多个: datanodes
在版本1中,主节点只有一个,在 版本2中主节点有两个。
namenode 负责(管理):
- 接收用户操作请求
- 维护文件系统的目录结构
- 管理文件与 block 之间的关系, block 与 datanode 之间关系
block 是 文件分成的 块, hdfs 中默认的 block 块的大小是64M ,实际的文件肯定会分很多块存储。
datanode 负责(存储):
- 存储文件
- 文件被分成 block 存储在磁盘上
- 为了保证数据安全,文件会有多个副本
在MapReduce 执行计算任务的时候,计算任务的节点。
Hadoop 在存储文件的时候,文件会有多个副本。
因为 Hadoop 是分布式的存储与计算平台,他使用的是廉价的服务器,廉价的服务器可能会发生故障,如果发生故障了,那么数据就不能用了,
hadoop 为了提高系统的安全性,对数据进行了冗余存储, 默认情况下数据的副本 是 3. 比如 10G的电影,实际在HDFS中存放的大小不是10G ,而是 30G 。
而在具体数据访问的时候,namenode 会根据不同的 datanode 具体的状况,这种状况包括 他的存储空间、繁忙情况、内存等等从三个副本中选出一个副本去使用 , 另外两个副本就是空闲状态。当这个副本出现问题的时候就会切换到另外一个副本。当然切换回去之后,这个出问题的副本可以得到恢复(与其他副本同步)。
从客户端(java、命令端、其他语言开发的终端….)提交的数据到 namenode , namenode 这时就会看整个集群中的 datanode 中谁属于空闲,谁可用,都会有自己的算法 (关于算法可以从源码的方向上进行理解), 然后确定把数据存储在哪几台机器上,然后 这些客户端就会直接和这些 datanodes打交道,把数据直接交给具体的数据节点。当然数据节点在存储数据的过程中,肯定会有一些日志信息(管理与block之间的关系、block与datanode之间的关系),每一次集群启动的时候,datanode都会把元数据信息(关于 datanode内部怎么组织的)报告给 namenode, 这样namenode 才能知道 datanode 具体是怎么组织的 然后才能够管理。
HDFS的架构的更多相关文章
- 初步掌握HDFS的架构及原理
目录 HDFS 是做什么的 HDFS 从何而来 为什么选择 HDFS 存储数据 HDFS 如何存储数据 HDFS 如何读取文件 HDFS 如何写入文件 HDFS 副本存放策略 Hadoop2.x新特性 ...
- hdfs文件系统架构详解
hdfs文件系统架构详解 官方hdfs分布式介绍 NameNode *Namenode负责文件系统的namespace以及客户端文件访问 *NameNode负责文件元数据操作,DataNode负责文件 ...
- Hadoop1.x HDFS系统架构
1. HDFS中的一些概念1.1 数据块1.2 NameNode和DataNode1.2.1 管理者:Namenode1.2.1 工作者:Datanode1.3 Secondary Namenode1 ...
- hdfs深入:03、hdfs的架构以及副本机制和block块存储
HDFS分布式文件系统设计目标 1. 硬件错误 由于集群很多时候由数量众多的廉价机组成,使得硬件错误成为常态 2. 数据流访问 所有应用以流的方式访问数 ...
- HDFS的架构和设计要点
HDFS的架构和设计要点 转 大数据之路 发布于 2012/10/11 23:00 字数 4487 阅读 495 收藏 1 点赞 0 评论 0 撸了今年阿里.头条和美团的面试,我有一个重要发现.... ...
- 理解HDFS高可用性架构
在Hadoop1.x版本的时候,Namenode存在着单点失效的问题.如果namenode失效了,那么所有的基于HDFS的客户端——包括MapReduce作业均无法读,写或列文件,因为namenode ...
- 使用QJM构建HDFS HA架构(2.2+)
转载自:http://blog.csdn.net/a822631129/article/details/51313145 本文主要介绍HDFS HA特性,以及如何使用QJM(Quorum Journa ...
- 深入理解HDFS的架构和原理
(一) HDFS主要是用于做什么的? HDFS(Hadoop Distributed File System)是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处 ...
- HDFS HA架构以及源代码引导
HA体系架构 相关知识介绍 HDFS master/slave架构,HDFS节点分为NameNode节点和DataNode节点. NameNode存有HDFS的元数据:主要由FSImage和EditL ...
随机推荐
- Linux 系统中发博客必备的五大图片处理神器
发博客时,总免不了要用图片说话.经过长时间的磨合,在 Linux 桌面系统下有几款图片处理软件我已经用得比较顺手了.这几款软件在 Linux 世界使用广泛,各个 Linux 发行版的软件仓库中都有自带 ...
- Spring Bean详细讲解
什么是Bean? Spring Bean是被实例的,组装的及被Spring 容器管理的Java对象. Spring 容器会自动完成@bean对象的实例化. 创建应用对象之间的协作关系的行为称为:装配( ...
- Vue 给子组件传递参数
Vue 给子组件传递参数 首先看个例子吧 原文 html <div class="container" id="app"> <div clas ...
- OPEN CASCADE编译视频
为了帮助OPEN CASCADE新手顺利编译OPEN CASCADE源码,特录制了一个视频, 有了这个视频,OPEN CASCADE的编译再也不麻烦啦!
- Logstash时区、时间转换,message重组
适用场景 获取日志本身时间 日志时间转Unix时间 重组message 示例日志: hellow@,@world@,@2011-11-01 18:46:43 logstash 配置文件: input{ ...
- Swift 必备开发库 (高级篇) (转)
1.CryptoSwift swift加密库, 支持md5,sha1,sha224,sha256... github地址: https://github.com/krzyzanowskim/Crypt ...
- Android面试一天一题(1Day)
写在前面 该博客思路源于在简书看到goeasyway博主写的Android面试一天一题系列,无copy之意,仅为让自己总结知识点,成长一点点.先感谢各位大神的无私分享~! 关于题目,大部分则出自And ...
- CSS3属性 box-shadow 向框添加一个或多个阴影
CSS3属性 利用box-shadow制作网页页眉背景 box-shadow 浏览器支持 IE9+.Firefox 4.Chrome.Opera 以及 Safari 5.1.1 支持 box-shad ...
- 使用swagger作为restful api的doc文档生成
初衷 记得以前写接口,写完后会整理一份API接口文档,而文档的格式如果没有具体要求的话,最终展示的文档则完全决定于开发者的心情.也许多点,也许少点.甚至,接口总是需要适应新需求的,修改了,增加了,这份 ...
- .NET Core Windows环境安装与体验
1.安装.NET Core SDK 在windows下开发.NET Core最好使用Visual Studio工具.下载地址与安装: VS2015最新版本:Visual Studio 2015 Upd ...