《Hadoop权威指南》——3、Hadoop 分布式文件系统

本文详细介绍了Hadoop分布式文件系统(HDFS)的设计理念,包括其一次写入、多次读取的优化策略,以及高容错性的副本机制。文章涵盖了HDFS的命令行接口、Java接口,特别是对数据读写的流程进行了深入剖析,包括客户端如何通过NameNode和DataNode进行数据流传输。此外,还讨论了HDFS的一致性模型及其对文件系统的一致性保证。
摘要由CSDN通过智能技术生成

转载自:http://blog.csdn.net/weixuehao/article/details/16967485

大部分内容转载自以上博客,对某些地方进行了适当的补充。


简介

HDFSHadoop Distributed File System )Hadoop分布式文件系统。是根据google发表的论文翻版的。论文为GFS(Google File System)Google 文件系统(中文英文)。

HDFS的设计

      以流式数据访问模式来存储超大文件。

      2.构建思路:一次写入多次读取是最高效的访问模式。

      3.HDFS是为高数据吞吐量优化的,代价是高时间延迟。对于低延迟访问需求HBase更合适。

      4.由于nameNode 将文件系统元数据存储在内存中,因此该文件系统所能存储的文件总数受限于nameNode的内存容量。

      5.不支持多写入者,也不支持任意位置的修改。

HDFS有很多特点

    ① 保存多个副本,且提供容错机制,副本丢失或宕机自动恢复。默认存3份。

    ② 运行在廉价的机器上。

    ③ 适合大数据的处理。多大?多小?HDFS默认会将文件分割成block,64M为1个block,但更多的是用的128M,块如此大是为了减少寻址开销。然后将block按键值对存储在HDFS上,并将键值对的映射存到内存中。如果小文件太多,那内存的负担会很重。

如上图所示,HDFS也是按照Master和Slave的结构。分NameNode、SecondaryNameNode、DataNode这几个角色。

NameNode:是Master节点,是大领导。管理数据块映射;处理客户端的读写请求;配置副本策略;管理HDFS的名称空间;

                     管理文件系统命名空间,维护着文件系统树及整棵树内所以文件和目录。

     这些信息以两个文件形式永久保存在本地磁盘:命名空间镜像文件编辑日志文件。mameNode 也记录着每个文件中各个块所在的节点信息。但并不永久保存块的位置信息。这些信息会在系统启动时由数据节点重建。

SecondaryNameNode:是一个小弟,分担大哥namenode的工作量;是NameNode的冷备份;合并fsimage和fsedits然后再发给namenode。

DataNode:Slave节点,奴隶,干活的。负责存储client发来的数据块block;执行数据块的读写操作。

存储并检索数据块,定期向nameNode发送他所存储块的列表。

热备份:b是a的热备份,如果a坏掉。那么b马上运行代替a的工作。

冷备份:b是a的冷备份,如果a坏掉。那么b不能马上代替a工作。但是b上存储a的一些信息,减少a坏掉之后的损失。

fsimage:元数据镜像文件(文件系统的目录树。)

edits:元数据的操作日志(针对文件系统做的修改操作记录)

namenode内存中存储的是=fsimage+edits。

SecondaryNameNode负责定时默认1小时,从namenode上,获取fsimage和edits来进行合并,然后再发送给namenode。减少namenode的工作量。

nameNode实现容错非常重要,Hadoop为此提供了两种机制:


 1、备份那些组成文件系统元数据持久状态的文件。(实时同步,是原子操作。

 2、运行一个辅助nameNode,但他不能被用作nameNode.

      作用:定期通过编辑日志合并命名空间镜像,以防止编辑日志过大。(一般在另一台计算机运行,因为占用cup)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值