大数据炙手可热,那么关于hdfs你了解够充分吗?

       信息时代,数据重要性不言而喻,承接人工智能与云计算,大数据如今开始扮演更加重要的角色。作为当下薪资较高的新兴行业,入行大数据的人越来越多,那么关于大数据中的hdfs你了解多少呢?


       关于hdfs,其官方解释为Hadoop存储的解决方案,全称是分布式存储系统HDFS (Hadoop Distributed File System ),它提供了高可靠性、高扩展性和高吞吐率的数据存储服务。这种文件存储形式应用在大数据的各行各业,是性能最好的解决方案。最典型的应用案例就是云盘。那么除了这些特性之外,hdfs还有那些优点呢?

       第一、高容错性

       数据自动保存多个副本,发生数据丢失、机器故障等副本丢失的情况后,可以自动恢复。

       第二、适合批处理

       移动计算而非数据、数据位置暴露给计算框架、支持任何技术框架

       第三、适合大数据处理,理论上来说,没有数量上限;GB 、TB 、甚至PB 级数据;百万规模以上的文件数量;10K+ 节点

       第四、可构建在廉价机器上,成本很低、通过多副本提高可靠性、提供了容错和恢复机制

       当然任何产品都会有两面性,在拥有优点的同事,HDFS也具备以下缺点:

       小文件存取占用NameNode大量内存,寻道时间超过读取时间;不支持并发写入、文件随机修改,一个文件只能有一个写者。修改文件内容 的成本太高,仅支持append-追加,但是成本消耗和新增基本持平。

       对于hdfs的了解,相信每一个求学者都不会忽视hdfs节点,而hdfs分为三种节点类型:

       首先、主节点-NameNode;(NN)

       NameNode主要功能:接受客户端的读写服务,保存数据的metadate信息,文件上传会出现数据的新增。包括以下三种内容:

       1.文件owership和permissions;Permissions 包含了拥有者、文件名,属组的区分和LINUX几乎相通。

       2.文件包含哪些块,存储了blockID,是块的位置信息。

       3.Block保存在哪个DataNode,由DataNode启动时上报。

       4.NameNode的metadate信息在启动后会加载到内存

       metadata存储到磁盘文件名为”fsimage”,Block的位置信息不会保存到fsimage,edits记录对metadata的操作日志。

       其次、第二节点-Secondary NameNode(SNN)

       1.该节点主要是为了分担主节点的功能和资源消耗。用户的读写是不间断的,上述的NameNode对metadata 的数据的内存、磁盘的存储,需要同时操作内存和磁盘,容易引起文件的频繁修改、IO阻塞、线程阻塞等问题。特别是在元数据太大的时候触发的更新会引起瞬间爆发的IO,造成机器访问故障。该节点作为新的机器,可以协助 NameNode 更新fsimage文件。它不是NN的备份(但可以做备份),它的主要工作是帮助NN合并edits log,减少NN启动时间。

       2.metadata是键值对的数据结构,SNN可以根据edits 日志修改fsimage。

        SNN执行合并时根据配置文件设置的时间间隔fs.checkpoint.period  默认3600秒-1h;根据配置文件设置edits log大小        fs.checkpoint.size 规定edits文件的最大值默认是64MB

       第三、从节点-DataNode(DN)

       是真正存储数据(Block)的位置。DataNode 随 NameNode 启,并且上报Block的位置信息。通过向NN发送心跳保持与其联系(3秒一次),如果NN 10分钟没有收到DN的心跳,则认为其已经lost,并copy其上的block到其它DN。DN拥有自我自检机制,通过Block副本数量以及是否损坏的检查完成自动节点间的相互新增或复制。

       当然,这里只是简单的介绍了一些hdfs的概念和特性,其他概念并没详解,像HDFS 数据存储单元(block)、HDFS 写流程、HDFS 读流程、HDFS文件权限、HDFS安全模式等等,大数据的概念相对比较驳杂,所以,无论你是研究者还是未来的求学者,学习大数据都应该精益求精,详尽掌握大数据的相关知识。

本文转自: 海牛学院

猜你喜欢

转载自blog.csdn.net/hainiubuluo/article/details/80843760