关于HDFS的一些总结


前言

HDFS是Hadoop大数据生态圈里重要的一部分,它主要用来进行文件存储,在数仓中,进行用户行为数仓建设时,也主要用来存储日志数据,接下来我们对其进行总结介绍。


一、HDFS是什么?

HDFS (Hadoop Distributed File System)是 Hadoop 下的分布式文件系统,具有高容错、高吞吐量等特性,可以部署在低成本的硬件上。是 Hadoop 核心组件之一,作为最底层的分布式存储服务而存在。
分布式文件系统解决的问题就是大数据存储。它们是横跨在多台计算机上的存储系统。
HDFS使用Master和Slave结构对集群进行管理。一般一个 HDFS 集群只有一个 Namenode 和一定数目的Datanode 组成。Namenode 是 HDFS 集群主节点,Datanode 是 HDFS 集群从节点,两种角色各司其职,共同协调完成分布式的文件存储服务。

二、HDFS由什么组成

HDFS源于分而治之的设计思想,在大数据系统中,为分布式计算框MapReduce,Spark,Flink等提供数据存储服务;主要由主节点NameNode、从节点DataNode,SecondaryNameNode,Client组成。
NameNode主要负责元数据的管理以及客户端对文件的访问,周期性地从集群中每个DataNode接受心跳信号和数据块状态报告;
DataNode主要是负责数据的读写与存储;
SecondaryNameNode负责元数据的同步;
Client主要负责数据读写请求的发起。

三、HDFS用来做什么

hdfs在hadoop中的作用是为海量的数据提供了存储,能提供高吞吐量的数据访问,HDFS有高容错性的特点,并且设计用来部署在低廉的硬件上;而且它提供高吞吐量来访问应用程序的数据,适合那些有着超大数据集的应用程序。

四、HDFS的优势是什么

I.hdfs的优点
  a.支持海量数据的存储:一般来说,HDFS存储的文件可以支持TB和PB级别的数据。
  b.检测和快速应对硬件故障:在集群环境中,硬件故障是常见性问题。因为有上千台服务器连在一起,故障率很高,因此故障检测和自动恢复hdfs文件系统的一个设计目标。假设某一个datanode挂掉之后,因为数据是有备份的,还可以从其他节点里找到。namenode通过心跳机制来检测datanode是否还存活。
  c.流式数据访问:(HDFS不能做到低延迟的数据访问,但是HDFS的吞吐量大)=》Hadoop适用于处理离线数据,不适合处理实时数据。HDFS的数据处理规模比较大,应用一次需要大量的数据,同时这些应用一般都是批量处理,而不是用户交互式处理。应用程序能以流的形式访问数据库。主要的是数据的吞吐量,而不是访问速度。访问速度最终是要受制于网络和磁盘的速度,机器节点再多,也不能突破物理的局限。
  d.简化的一致性模型:对于外部使用用户,不需要了解hadoop底层细节,比如文件的切块,文件的存储,节点的管理。一个文件存储在HDFS上后,适合一次写入,多次读取的场景。因为存储在HDFS上的文件都是超大文件,当上传完这个文件到hadoop集群后,会进行文件切块,分发,复制等操作。如果文件被修改,会导致重新触发这个过程,而这个过程耗时是最长的。所以在hadoop里,2.0版本允许数据的追加,单不允许数据的修改。
  e.高容错性:数据自动保存多个副本,副本丢失后自动恢复。可构建在廉价的机器上,实现线性扩展。当集群增加新节点之后,namenode也可以感知,将数据分发和备份到相应的节点上。
  f.商用硬件:Hadoop并不需要运行在昂贵且高可靠的硬件上。它是设计运行在商用硬件(在各种零售店都能买到的普通硬件)的集群上的,因此至少对于庞大的集群来说,节点故障的几率还是非常高的。HDFS遇到上述故障时,被设计成能够继续运行且不让用户察觉到明显的中断。
II.HDFS缺点(局限性)
  a.不能做到低延迟数据访问:由于hadoop针对高数据吞吐量做了优化,牺牲了获取数据的延迟,所以对于低延迟数据访问,不适合hadoop。对于低延迟的访问需求,HBase是更好的选择。
  b.不适合大量的小文件存储 :由于namenode将文件系统的元数据存储在内存中,因此该文件系统所能存储的文件总数受限于namenode的内存容量。根据经验,每个文件、目录和数据块的存储信息大约占150字节。因此,如果有一百万个小文件,每个小文件都会占一个数据块,那至少需要300MB内存。如果是上亿级别的,就会超出当前硬件的能力。
  c.修改文件:对于上传到HDFS上的文件,不支持修改文件。Hadoop2.0虽然支持了文件的追加功能,但是还是不建议对HDFS上的文件进行修改。因为效率低下。HDFS适合一次写入,然后多次读取的场景。
  d.不支持用户的并行写:同一时间内,只能有一个用户执行写操作。

五、HDFS解决了什么问题

HDFS起源于Google FS,主要用于解决大数据的存储问题。

总结

HDFS是一个优异的文件管理系统,尤其是现在大数据形式下,海量数据以及海量数据的吞吐成为了很重要的瓶颈,这时HDFS的作用就显得比较突出了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值