Hadoop学习之路(六):理解Hadoop三大核心组件之HDFS

您所在的位置:网站首页 hdfs是hadoop的三大核心组件之一 Hadoop学习之路(六):理解Hadoop三大核心组件之HDFS

Hadoop学习之路(六):理解Hadoop三大核心组件之HDFS

2024-06-30 23:46| 来源: 网络整理| 查看: 265

内容简介 一、分布式文件系统简介 二、HDFS的设计 三、HDFS的概念 1.数据块 2.namenode、datanode和secondarynamenode 3.HDFS的高可用 四、HDFS的常用命令 1. hdfs namenode -format 2. hdfs dfs 3. hdfs dfsadmin 五、HDFS的读写流程 1. HDFS的读取 1. HDFS的写入 六、总结

一、分布式文件系统简介

一般而言,常见的文件系统都是单机的,即数据只存储在一台机器上,读写都必须交互这台机器。当数据大小超过一台独立主机的物理存储能力时就必须将数据分区,然后存储到若干台单独计算机上。管理网络中跨多台计算机存储文件的系统称之为分布式文件系统。该系统构建于网络之上,势必会引入网络编程的复杂性,因此分布式文件系统要比普通文件系统复杂得多。

Hadoop有一个称之为HDFS的文件系统,即 Hadoop Distributed Filesystem,是一个分布式文件系统的实现,下面将介绍HDFS。

二、HDFS的设计

HDFS以流式数据访问模式来存储超大文件,运行于商用硬件集群上。 适合使用HDFS的场景:

存储超大文件。超大文件是指具有几百MB、几百GB,甚至几百TB大小的文件。 流式数据访问。HDFS认为一次写入多次读写是最为高效的访问模式。数据集通常由数据源不断产生,或者从数据源复制而来,接着长时间都在数据集上进行各种分析,每次都读取数据集的大部分内容甚至是全部内容,因此读取整个数据集的时延必读取第一条数据的时延更为重要。 运行在廉价设备上。Hadoop并不需要运行在昂贵且高可靠的设备之上,只需运行在廉价的商用硬件上即可。

不适合使用HDFS的场景:

低时间延迟的数据访问。HDFS是为高吞吐量应用优化的,这是以牺牲低时间延时访问为代价的。为此有了一个解决方案,那就是使用HBase。 大量的小文件。namenode节点管理HDFS的目录树,文件系统的元信息存储在该节点上。一般而言,一个文件、目录和数据块的元信息大小为150字节,存储一百万个文件只需要花30MB空间存储元信息,但是如果有数十亿文件则就会超出namenode节点的存储能力,这时候namenode节点便成为了集群的存储瓶颈。 多用户写入,任意修改文件。HDFS可能只有一个writer,而且写操作总是将数据追加到位末尾,它不支持具有多个写入者的操作。 三、HDFS的概念 1.数据块

在计算机中,数据存储在磁盘上,磁盘有默认的块大小,这是磁盘存储数据的最小单位。构建于单个磁盘之上的文件系统通过磁盘的块来管理该文件系统中的块。磁盘块大小一般是512字节,文件系统的块大小一般是磁盘块的整数倍,为几千字节。

HDFS也有块的概念,且比较大,它是HDFS存储的最小逻辑单元。在Hadoop 1.x的时候默认一个块的大小是64MB,在2.x后默认一个块的大小是128MB。在HDFS上的文件也会被分割为若干块,作为单独的存储单元,但是与其他文件系统不同的是,在HDFS中小于默认块大小的文件不会占据整个块空间。块的设计有许多好处:

轻松存储超大文件。一个文件可以大于集群中任意一个存储节点的磁盘大小,因为文件会被分成若干个块分布在整个集群上被存储。 简化了存储子系统的设计。其实就是简化了对于数据 的管理,在HDFS中真正存储的只是数据块,而这个数据块属于哪个文件


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3