Hadoop分布式文件系统HDFS

Hadoop分布式文件系统HDFS

2018421

一、HDFS的设计

主要概述:HDFS是以流式数据访问模式来存储超大文件。运行于商用硬件集群上的

详细解析:

(1)    超大文件:就是单个文件达到几百MB至几百TB甚至PB的文件。

(2)    流式数据访问 :一次写入、多次读取时最高效的访问模式。(就像看视频(flv格式)一样,一边看一边下载),只需考虑数据的上下文,不必考虑数据的存储位置。如果是全部收到数据以后再处理,那么延迟会很大,而且在很多场合会消耗大量内存。

(3)    商用硬件集群上:商用硬件就是不贵也不是高可靠的硬件设备。就是容错性好,个别节点挂了,对整个系统不产生任何影响,主要是靠数据在各个节点上数据块的备份啦。

(4)    HDFS对于要求低时间延迟的数据访问的应用不适合:HDSF是处理大量数据的,当然会为了更好的适用大数据的环境,而进行优化,这样可能会产生更大的时间延迟(数据在各个硬件设备之间传送(mapreduce)当然需要时间了)。

(5)    无法存储大量的小文件:受限于namenode的内存容量,namenode是存储文件系统的元数据的。过多的文件数量当然会让namenode的内存崩溃啦。

(6)    不支持多用户写入和任意位置修改文件:

应该是HDFS只支持单用户写,可能需要创建副本所以怕冲突吧。

HDFS本来就不是适合频繁写入的文件系统,他比较适合一次写入,多次使用。

如果任意位置修改要找到所有的副本中的那个修改位置,并且一起修改,效率太低且容易出错。

二、HDFS的概念

1、数据块:就是借鉴磁盘的设计理念。单个磁盘上磁盘进行数据读/写的最小单位。只是如果HDFS的一个小于块的文件不会占据整个块的空间。

2、数据块大:有利于最小化寻址的开销,但是也不能太大,一个map任务一次只处理一个块中的数据,数据块大的话,map任务就会少,单个map任务的负担就会太大,作业运行速度也会变慢。

3、数据块的抽象的好处:

1)将一个文件切分成数据块,这样做的好处就是一个文件可以比所有单个的磁盘容量都大。

2)还有就是我前面讲到的可以备份啦,提高系统容错。

3)块只有文件的部分数据且没有元数据,可以在文件系统中统一管理文件的元数据,如权限信息

三、namenode(管理者)和datanode(工作者)

1、一个namenode和多个datanode

Namenode:管理文件系统的命名空间以及维护着文件系统树和整棵树内的所有的文件和目录。这些信息以两个文件形式永久保存在本地磁盘上:命名空间镜像文件和编辑日志文件

2datanode就是存储数据和检索数据并定期向namenode报告所存储的块的列表。

另外还有一个辅助namenode,也叫secondaryname,可以定期通过编辑日志合并命名空间镜像,这样secondarynamenode保存了namenode的大部分数据,但是还是会让还未编辑日志文件的数据丢失。

3HDFS联邦

允许系统通过添加namenode实现扩展,每个namenode负责维护一个命名空间,既一个目录。例如:一个维护/etc,一个维护/dev.两个namenode互不影响。

数据块池不会再进行切分,,需要在datanode中注册所有namenode(应该就是在配置文件中注册),

4、高可用性:一个活动的namenode挂了,另一个备用的立马顶上去,备用的namenode将通读日志文件,以达到与活动的namenode一样的状态。检测宿主namenode以及datanode是否挂了,是通过一个简单的心跳机制实现。

5、伪分布式配置时,两个属性项的介绍:fs.defaultFS,设置为hdfs:\\localhost:9000

用于设置hadoop的主节点信息,以及定义使用哪个fileSystem作为默认的文件系统。dfs.replication:设置为1.这样系统就不会按照默认的将数据块复制三份备份了。在一个单独的datanode上运行时,HDFS无法将块复制到3datanode上,所以会报副本不足的警告。

四、Hadoop文件系统

org.apache.hadoop.fs中定义了文件系统接口,如图:

在处理大数据集的时候,最好采用有数据本地优化的文件系统,如HDFS
                                                                                                                                学习《hadoop权威指南》
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值