HDFS概述
Posted 1605-3qyl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDFS概述相关的知识,希望对你有一定的参考价值。
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概述的主要内容,如果未能解决你的问题,请参考以下文章