当前位置:文档之家› 第3章Hadoop分布式文件系统

第3章Hadoop分布式文件系统


3、HDFS的优缺点 优点: (1)支持超大文件的处理 (2)支持流式的访问数据 (3)可构建在廉价机器上
3、HDFS的优缺点 缺点: (1)不适合低延时数据访问 (2)无法高效存储大量小文件 (3)不支持多用户并发写入和任意修改文件
1、数据块(Block) 传统的文件系统中,为提高磁盘读写效率,通常不是以字节为
一、HDFS读写流程 1、HDFS读数据流程 客户端通过连续调用open()、read()、close()读取数据, 具体执行过程如下图3-2所示:
一、HDFS读写流程 (1)客户端发送请求,调用DistributedFileSystem的create方 法创建文件。调用create方法后,DistributedFileSystem会创 建FSDataOutputStream输出流。 (2)DistributedFileSystem通过RPC远程调用Namenode, 在文件系统的命名空间中创建一个新文件。此时,Namenode 会做一系列的检查,比如文件是否已经存在、客户端是否拥有
HDFS采用了主从(Master/Slave)结构,如图3-1所示。一个 HDFS集群是由一个名称节点(NameNode)和多个数据节点 (DataNode)组成,通常配置在不同的机器上。名称节点作为 中心服务器,负责管理文件系统的命名空间及客户端对文件的 访问。而数据节点,通常是一个节点一台机器,是分布式文件 系统HDFS的工作节点,负责对应节点数据的存储和读取,会 根据客户端或者是名字节点的调度来进行数据的存储和检索。
一、HDFS读写流程 (4)每个DataNode写完一个块后,会返回确认信息。 FSDataOutputStream内部维护着一个确认队列。当接收到所 有DataNode确认写完的信息后,数据才会从确认队列中进行删 除。
(5)当客户端写完所有数据,调用close方法关闭输出流。
二、HDFS副本机制与机架感知策略 HDFS作为一个分布式文件系统,为了保证其系统的可靠性和 容错性,采用了多副本的方式存储数据。副本的数量可以在
二、HDFS副本机制与机架感知策略 HDF,则把第一个副本放置在发起 写操作请求的数据节点上,实现就近写入数据。若是来自集群外部的写 操作请求,则随机挑选一个磁盘不太满、CPU不太忙的数据节点进行第 一个副本的存储。 (2)第二个副本会被放置在和第一个副本不同机架数据节点上。 (3)第三个副本则会被放置在和第二个副本相同机架不同数据节点上 。 (4)如果还有更多的副本,则会随机从集群中选择数据节点进行存放
创建文件权限等。若通过检查,Namenode会构造一个新文件, 并添加相关文件信息。
一、HDFS读写流程 (3)客户端调用FSDataOutputStream的write方法将数据写 到一个内部队列中。如果数据副本数量是3,则将队列中的数据 写入3个副本对应的Datanode上。但并不是由客户端分别往3个 Datanode上写3份,而是由已经收到数据包的第一个Datanode, 将数据包发送给第二个Datanode,第二个datanode再将数据包 发送给第三个Datanode。
单位,而是以数据块为单位。HDFS同样采用了数据块的概念, 最基本的存储单位即是数据块,Hadoop3.0版本默认数据块的 大小是128M(有些旧版本为64M)。
2、名称节点(Namenode) 在HDFS中,名称节点主要负责管理分布式文件系统的命名空 间,它将所有的文件和文件夹的元数据保存在一个文件系统树 中。Namenode是整个文件系统的管理节点,维护着整个文件 系统的文件目录树,元数据信息和每个文件对应的数据块列表, 并接收用户的操作请求。
2、HDFS简介 HDFS是Hadoop分布式文件系统(Hadoop Distributed File System)的缩写,是Apache Hadoop的核心子项目。HDFS支 持海量数据的存储,是分布式计算中数据存储和管理的基础, 是基于流数据模式访问和处理超大文件的需求而开发的,可以 运行于廉价的商用服务器上。它所具有的高容错、高可靠性、 高可扩展性、高吞吐率等特征为海量数据提供了不怕故障的存 储,为超大数据集的应用处理带来了很多便利。
hdfs-site.xml配置文件中通过参数设定,如下所示。通常每个 数据块默认三个副本,每个副本会分配到不同的数据节点上。
<property>
<name>dfs.replication</name>
<value>3</value>
--此处的3代表三个副本
</property>
二、HDFS副本机制与机架感知策略 HDFS数据块默认副本为三,通常每个数据块都会被保存在不 同的三个地方。其中,有两个副本存储在同一个机架的不同机 器上面,第三个副本存储在不同机架的机器上面.
第3章Hadoop分布式文件系统
目录
1 认识HDFS 2 HDFS相关概念 3 HDFS体系结构 4 HDFS运行原理及保障
1、分布式文件系统 相对于传统的本地文件系统而言,分布式文件系统 (Distributed File System)是一种通过网络实现文件在多台 主机上进行分布式存储的文件系统。分布式文件系统允许将一 个文件通过网络在多台主机上以多副本的方式进行存储,实际 上就是通过网络来访问文件,但用户和程序看起来跟访问本地 的磁盘一样。 目前,应用广泛的分布式文件系统主要包括GFS和HDFS, HDFS是GFS的开源实现。
3、数据节点(Datanode) 在HDFS中,数据节点是工作节点,负责数据的真正存储和
读取,会根据Namenode的调度来进行数据的存储和检索,并 且定期向Namenode发送自己所存储的块的列表。所有数据节 点的数据保存在各自节点的本地Linux文件系统中。
4、第二名称节点(Secondary Namenode) Secondary Namenode并不是Namenode节点出现问题时的备 用节点,HDFS也并不支持把系统直接切换到Secondary Namenode。 NameNode元数据信息存储在FsImage中,NameNode每次重 启后会把FsImage读取到内存中,在运行过程中为了防止数据 丢失,NameNode的操作会被不断的写入本地EditLog文件中。
相关主题