文档章节

HDFS原理分析:基本概念

IT追寻者
 IT追寻者
发布于 2014/06/05 10:38
字数 656
阅读 71
收藏 0

HDFS是Hadoop Distribute File System 的简称,也就是Hadoop的一个分布式文件系统。

  一、HDFS的主要设计理念

  1、存储超大文件

  这里的“超大文件”是指几百MB、GB甚至TB级别的文件。

  2、最高效的访问模式是 一次写入、多次读取(流式数据访问)

  HDFS存储的数据集作为hadoop的分析对象。在数据集生成后,长时间在此数据集上进行各种分析。每次分析都将设计该数据集的大部分数据甚至全部数据,因此读取整个数据集的时间延迟比读取第一条记录的时间延迟更重要。

  3、运行在普通廉价的服务器上

  HDFS设计理念之一就是让它能运行在普通的硬件之上,即便硬件出现故障,也可以通过容错策略来保证数据的高可用。

  二、HDFS的忌讳

  1、将HDFS用于对数据访问要求低延迟的场景

  由于HDFS是为高数据吞吐量应用而设计的,必然以高延迟为代价。

  2、存储大量小文件

  HDFS中元数据(文件的基本信息)存储在namenode的内存中,而namenode为单点,小文件数量大到一定程度,namenode内存就吃不消了。

  三、HDFS基本概念

  数据块(block):大文件会被分割成多个block进行存储,block大小默认为64MB。每一个block会在多个datanode上存储多份副本,默认是3份。

  namenode:namenode负责管理文件目录、文件和block的对应关系以及block和datanode的对应关系。

  datanode:datanode就负责存储了,当然大部分容错机制都是在datanode上实现的。

  四、HDFS基本架构图 

  

  图中有几个概念需要介绍一下

  Rack 是指机柜的意思,一个block的三个副本通常会保存到两个或者两个以上的机柜中(当然是机柜中的服务器),这样做的目的是做防灾容错,因为发生一个机柜掉电或者一个机柜的交换机挂了的概率还是蛮高的。

  五、HDFS写文件流程 

  

  思考:

  在datanode执行create file后,namenode采用什么策略给client分配datanode?

  顺序写入三个datanode,写入过程中有一个datanode挂掉了,如何容错?

  client往datanode写入数据时挂掉了,怎么容错?

  六、HDFS读文件流程 

  

  思考:namenode挂掉了怎么办,这个时候HDFS是否有相应的容错方案。


本文转载自:http://os.51cto.com/art/201212/369564.htm

IT追寻者

IT追寻者

粉丝 31
博文 440
码字总数 63839
作品 0
海淀
高级程序员
私信 提问
HDFS原理分析(一)—— 基本概念

HDFS是Hadoop Distribute File System 的简称,也就是Hadoop的一个分布式文件系统。 一、HDFS的主要设计理念 1、存储超大文件 这里的“超大文件”是指几百MB、GB甚至TB级别的文件。 2、最高效...

shiw019
2012/11/28
28.6K
0
面试问题

358、你们的集群规模? 开发集群:10台(8台可用)8核cpu 359、你们的数据是用什么导入到数据库的?导入到什么数据库? 处理之前的导入:通过hadoop命令导入到hdfs文件系统 处理完成之后的导...

HIVE
2016/07/05
1K
2
大数据经典学习路线(及供参考)之 一

1.Linux基础和分布式集群技术 学完此阶段可掌握的核心能力: 熟练使用Linux,熟练安装Linux上的软件,了解熟悉负载均衡、高可靠等集群相关概念,搭建互联网高并发、高可靠的服务架构; 学完此...

柯西带你学编程
2018/05/22
0
0
深入浅出、点金赋能!Hadoop体系大数据开发案例实战

感谢关注天善智能,走好数据之路↑↑↑ 欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答、求职一站式搞定! 课程名称:深入浅出、点金赋...

天善智能
2018/01/03
0
0
从小白到月薪上万,一份完整的大数据路线分析出自我成长书单

大数据原理与实践 大数据分三大部分,包括:大数据基础、技术原理和创新实践。 大数据基础部分主要介绍大数据的基本概念、技术架构和大数据的应用场景; 第二部分大数据技术原理主要介绍大数...

董黎明
02/20
22
0

没有更多内容

加载失败,请刷新页面

加载更多

Netty整合Protobuffer

现在我们都知道,rpc的三要素:IO模型,线程模型,然后就是数据交互模型,即我们说的序列化和反序列化,现在我们来看一下压缩比率最大的二进制序列化方式——Protobuffer,而且该方式是可以跨...

算法之名
13分钟前
9
0
如何用C++实现栈

栈的定义 栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压...

BWH_Steven
32分钟前
3
0
编程作业20190210900169

1编写一个程序,提示用户输入名和姓,然后以“名,姓”的格式打印出来。 #include <stdio.h>#include <stdlib.h> int main(){ char firstName[20]; char lastName[20]; print......

1李嘉焘1
44分钟前
6
0
补码的优点及原理分析

只讨论整数 1.计算机内部为什么没有减法器? 减法运算本身其实就是加法,如x - y即x +(-y),所以只需要将负数成功表示出来并可以参加加法运算,那加法器就可同时实现“+”和“-”的运算。这...

清自以敬
59分钟前
75
0
Docker 可视化管理 portainer

官网安装指南: https://portainer.readthedocs.io/en/latest/deployment.html docker-compose.yml 位置,下载地址:https://downloads.portainer.io/docker-compose.yml...

Moks角木
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部