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 系统的方法论
Linus 说“Just for fun”,而我要说“Just for 折腾”.想知道我是怎样折腾 Linux 的,请看下面这个截图: 从这个截图可以看出,我为了“折腾” Linux 系统,在我的电脑 ...
- Java基础知识(壹)
写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...
- Rxjava Subjects
上次提到调用observable的publish和connect方法后可以将一个Observable发出的对象实时传递到订阅在上的subscriber. 这个和Rxjava中Subject的概念十分相 ...
- FASTDFS调研报告(V1.0)
之前的文章,现在放出来,以供参阅. 一.fastdfs简介 FastDFS是一个轻量级的开源分布式文件系统 FastDFS主要解决了大容量的文件存储和高并发访问的问题,文件存取时实现了负载均衡 Fas ...
- Linux Hadoop2.7.3 安装(单机模式) 一
Linux Hadoop2.7.3 安装(单机模式) 一 Linux Hadoop2.7.3 安装(单机模式) 二 java环境安装 http://www.cnblogs.com/zeze/p/590 ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(4)-创建项目解决方案
系列目录 前言 为了符合后面更新后的重构系统,文章于2016-11-1日重写 设计中术语,概念这种东西过于模糊,我们必须学习累积才能认识这些概念模型. 我无法用文章来下详细解析此系统的深层概念,需要大 ...
- [3D数学基础:图形与游戏开发]专栏前言
期待的书终于到了,接下来我会把自己的学习笔记以及心得整理出来,形成专栏,每一章都进行记录和学习总结,今天是2016年12月30日,再过一天就是元旦了,就要迎来美好的2017年了!!!加油~ 上面的书就 ...
- 浅析MySQL二进制日志
查看MySQL二进制文件中的内容有两种方式 1. mysqlbinlog 2. SHOW BINLOG EVENTS [IN 'log_name'] [FROM pos] [LIMIT [offs ...
- 作为一个程序猿,是不是经常会用到.chm文档,但是我们可能会遇到这样那样的问题,比如.chm文档打不开
.chm文档不能正常打开,一般有两种情形下会造成文档打不开, 1.系统语言栏的语言和文档的语言类别不一同,也就是说比如你的文档是中文版的,但是系统设置的语言是其他国家的.不过一般这种情况很少出现 ,谁 ...
- Visual studio 通用开发环境配置:SDL,FFMPEG为例
引言 每一个C++库的使用都是从开发环境的配置开始的,其实每个库的配置过程都是大同小异,总结下来有下面几个步骤: 下载库文件,这里假定是已经预先编译完成的. 配置库文件的包含目录(include)和库 ...