码迷,mamicode.com
首页 > 其他好文 > 详细

HDFS概述

时间:2018-08-12 21:42:34      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:模式   模型   保存   适合   级别   权限   主从   fsimage   合并   

HDFS的特点:

  1.为超大文件而设计的,提供超大的数据贷款并能够在集群中扩展到成百上千个节点,实例能够支持千万数量级别的文件。

  2.适用于流式的数据访问,HDFS适用于批处理,重点是保证高吞吐量而不是低延迟的用户响应。

  3.完善的冗余备份机制。

  4.支持简单的一致性模型:HDFS需要支持一次写入多次读取的模型。

  5.移动计算优于移动数据,HDFS 提供了使应用计算移动到离它最近数据位置的接口。

  6.兼容各种硬件和软件平台

HDFS不适合的场景:1.大量小文件,大量小文件会导致元数据的增加,占用大量内存2.低延迟的用户数据访问。3.多用户写入,导致一致性维护的困难。

HDFS的主要组件与架构:

  HDFS主要有三个组件:NameNode,SecondaryNameNode和DataNode

  HDFS以主从模式运行Master/Slave,其中NameNode、SecondaryNameNode运行在master节点上,DataNode运行在Slave节点上

HDFS架构分析:

  数据块:数据块使磁盘读写的基本单位,HDFS会把文件分块存储,HDFS默认的数据块大小为64MB,而磁盘块一般为512B,快增大可以减少寻址时间与文件传输时间的比例,数据块是存储在DataNode中的,以多个副本的形式分布在集群中,副本的数量默认为3。

  NameNode:客户端请求一个文件或者存储一个文件时,需要具体到哪个DataNode上存取,客户端再直接和DataNode进行交互,这些信息的维护者就是NameNode。

        NameNode保存元信息的种类:

        1.文件名目录和层级关系

        2.文件目录的所有者与权限

        3.文件块的名及文件有哪些块组成

  DataNo、worker节点,负责存储,也提供数据块的读写服务,会根据 NameNode的指示来进行创建、删除和复制的操作 

没有Namenode,HDFS就不能工作。事实上,如果运行namenode的机器坏掉的话,系统中的文件将会完全丢失,因为没有其他方法能够将位于不同datanode上的文件块(blocks)重建文件。因此,namenode的容错机制非常重要,Hadoop提供了两种机制。

第一种方式是将持久化存储在本地硬盘的文件系统元数据备份。Hadoop可以通过配置来让Namenode将他的持久化状态文件写到不同的文件系统中。这种写操作是同步并且是原子化的。比较常见的配置是在将持久化状态写到本地硬盘的同时,也写入到一个远程挂载的网络文件系统。

第二种方式是运行一个辅助的Namenode(Secondary Namenode)。 事实上Secondary Namenode并不能被用作Namenode它的主要作用是定期的将Namespace镜像与操作日志文件(edit log)合并,以防止操作日志文件(edit log)变得过大。通常,Secondary Namenode 运行在一个单独的物理机上,因为合并操作需要占用大量的CPU时间以及和Namenode相当的内存。辅助Namenode保存着合并后的Namespace镜像的一个备份,万一哪天Namenode宕机了,这个备份就可以用上了。

但是辅助Namenode总是落后于主Namenode,所以在Namenode宕机时,数据丢失是不可避免的。在这种情况下,一般的,要结合第一种方式中提到的远程挂载的网络文件系统(NFS)中的Namenode的元数据文件来使用,把NFS中的Namenode元数据文件,拷贝到辅助Namenode,并把辅助Namenode作为主Namenode来运行。

  SecondaryNode:定期合并edits和fsimage文件

HDFS概述

标签:模式   模型   保存   适合   级别   权限   主从   fsimage   合并   

原文地址:https://www.cnblogs.com/1605-3QYL/p/9463998.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!