`
flyingdutchman
  • 浏览: 353988 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Hadoop深入学习:HDFS分布式文件系统的体系结构

阅读更多
        Hadoop之所以成为能够让用户可以轻松架构和使用的分布式计算平台,用户可以在其上管理、开发和并行处理大数据的应用,其根本就是由于HDFS起的基础作用。
        HDFS主要由以下优点:
        1)、支持操大文件,一般来说,一个Hadoop文件系统可以轻松的存储TB、PB级别的数据。
        2)、检测和快速应对硬件故障,在大量通用的廉价硬件构建的集群上,特别是硬件故障很常见,一班的HDFS系统由成百上千台存储着数据文件的服务器组成,越多的服务器也就意味着高故障率,因此故障检测和制动恢复就是HDFS的一个设计目标。
        3)、流式数据访问方式,HDFS要处理的数据规模都比较大,应用程序一次需要访问大量数据,适用于批量处理而非用户交互式处理数据,HDFS以流式方式访问数据,注重的是数据的高吞吐量而非访问速度。
        4)、简化的一致性模型,大部分的HDFS的数据操纵文件都是一次写入,多次读取,一个文件一旦经过创建、写入和关闭后,一半就不需要修改了,这样简单的一致性模型,有利于提供高吞吐量的数据访问模型。
        对于上述设计目标,我们会发现,这些在一些场景中是优势,但是在默写情况下,会成为其局限性,主要有以下几点:
        1)、不适合低延迟的数据访问,HDFS是为处理大规模的数据而生的,主要是为达到高的数据吞吐量而设计的,这就会以高延迟作为代价,故不适合低延迟的数据访问。
        如果想在Hadoop上对数据做低延迟或实时的数据访问,在其上HBase是一个很好的解决方案。
        2)、不能搞笑的存储大量小文件,在HDFS中,有NameNode(Master)节点来管理文件系统的元数据,已相应客户端请求返回文件位置等,因此文件数量大小的限制就由NameNode(具体的来说是由其内存大小)来决定;另外,在一次数据访问中,更多的小文件也意味着更多的磁盘寻址操作,以及更多的文件的打开与关闭的开销,这会大大降低数据的吞吐量,这都有违HDFS的设计目标,也会给NameNode带来更大的工作压力。   
        3)、不支持多用户的数据写入和随机访问与修改文件,在一个HDFS写操作中只能有一个用户对一个文件写操作,并且自能通过追加的方式将数据写到文件末尾,在读一个文件的时候也只能从文件头部顺序读取文件数据。
        目前HDFS还不支持多个用户对同一个文件的并发写操作、随机访问和修改数据。
       
        下面我们来看看HDFS的体系结构:

        HDFS采用了主从(Master/Slaves)体系结构,互相配合,形成整个分布式文件系统。将服务器集群中的服务器节点分成两类节点:NameNode节点和DataNode节点,其中NameNode是Master节点而DataNode是Slaves节点。

        我们再看一下HDFS中的相关的概念:
        Block:
        我们知道,操作系统中都有文件块(Block)的概念,稳健以块的形式存储在磁盘中,文件块是系统读写操作的最小的单位。
        HDFS中的Block是一种抽象的概念,它比操作系统中的文件块儿要打的多,和Linux单机系统上的文件相同,HDFS中的文件也是被分成块而来存储的,其默认大小为64M,一般情况下可以将之调大。
        HDFS是针对大文件设计的分布式系统,使用HDFS Block有以下好处:
        1)、可以保存比存储节点的单一磁盘更大的文件,在HDFS上,将大数据文件分成块Blocks,可以保存在不同节点的磁盘上。
        2)、简化存储子系统,简单化是所有系统的追求,特别是在各章种类繁多的分布式系统,将管理“块(Block)”和“文件”区分开,简化了存储管理,也消除了分布式文件系统管理的复杂性。
        3)、提供更好的容错,有利于数据复制。

        NameNode:
        NameNode节点上HDFS主从结构中主节点,维护者整个HDFS文件系统的文件目录树,元数据信息和文件的数据块索引,即每个文件对应的数据块列表。这些信息以文件命名空间镜像FSImage和编辑日志Edit Log。
        FSImage中保存着某一时刻的HDFS文件目录树、元数据和数据块索引等信息,而后续的对这信息系的修改则保存在编辑日志中;然后在另外一个时间节点上有Secondary NameNode节点将之合并并替换掉老的FSImage。
        NameNode节点还提供对客户端的请求响应。
        该节点有单点故障问题,该节点如出故障,则整个集群都会出问题。
       
        Secondary NameNode:
        第二名字节点主要用于定期合并NameNode节点上的命名空间镜像文件和编辑日志,和名字节点一样,每个集群都有一个Secondary NameNode的独立节点。
        Secondary NameNode和NameNode的区别在于他不接受或记录HDFS的任何实时变化,只是根据集群配置的时间间隔不停的获取HDFS的某一个时间节点的FSImage和编辑日志,合并得到一个新的命名空间镜像FSImage,然后该镜像会上传到NameNode,替换原有的镜像文件,并清空编辑日志。
        NameNode节点是HDFS集群中的单一故障点,通过Secondary NameNode的检查点,可以减少停机时间并减低NameNode节点中元数据丢失的风险。但是Secondary NameNode不支持NameNode节点的故障自动回复,须手人工干预。

        DataNode:
        DataNode是HDFS集群中的数据节点,所用数据块儿都存储在DataNode节点上,客户端从DataNode节点存储或读取数据。
        在HDFS中在DataNode上是以Linux系统上普通文件进行保存。在客户端操作文件块Block时,先由NameNode节点告知客户端诗句块所在的节点地文职,然后客户端直接与DataNode节点通信,处理与数据块对应的Linux上的本地文件。DataNode节点还会和其他DataNode进行通信,复制数据块,保证数据的冗余。
        DataNode作为从节点,会不断地通过“心跳”向NameNode节点报告其上的数据信息。
  • 大小: 87.1 KB
分享到:
评论

相关推荐

    Hadoop HDFS分布式文件系统简介

    HDFS 是 Hadoop 的一个分布式文件系统,是 Hadoop 应用程序使用的主要分布式存储。HDFS 被设计成适合运行在通用硬件上的分布式文件系统。 在 HDFS 体系结构中有两类结点:一类是 NameNode,又叫“名称结点”;另一类...

    厦门大学-林子雨-大数据技术原理与应用(第2版教材)-第3章-分布式文件系统HDFS

    内容提要:首先介绍分布式文件系统的基本概念、结构和设计需求,然后介绍Hadoop分布式文件系统HDFS,详细阐述它的重要概念、体系结构、存储原理和读写过程,最后,介绍了一些HDFS编程实践方面的知识。

    Chapter3-厦门大学-林子雨-大数据技术原理与应用-第三章-分布式文件系统HDFS(2016年1月26日版本)

    首先介绍分布式文件系统的基本概念、结构和设计需求,然后介绍Hadoop分布式文件系统HDFS,详细阐述它的重要概念、体系结构、存储原理和读写过程,最后,介绍了一些HDFS编程实践方面的知识

    实验二:熟悉常用的HDFS操作

    (1)理解 HDFS在Hadoop体系结构中的角色。(2)熟练使用HDFS操作常用的 Shell命令。(3)熟悉HDFS操作常用的Java API。 A.2.2 实验平台 (1)操作系统:Linux(建议Ubuntu 16.04)。(2) Hadoop版本:2.7.1。 (3)JDK版本:1.7...

    Hadoop 培训课程(2)HDFS

    分布式文件系统与HDFS HDFS体系结构与基本概念*** HDFS的shell操作*** java接口及常用api*** ---------------------------加深拓展---------------------- RPC调用** HDFS的分布式存储架构的源码分析**

    分布式存储系统-HDFS.docx

     分布式文件系统与 HDFS  HDFS 体系结构与基本概念★★★  HDFS 的 shell 操作★★★  搭建 eclipse 开发环境★★  java 接口及常用 api★★★  hadoop 的 RPC 机制★  hadoop 读写数据的过程分析★★

    厦门大学-林子雨-大数据技术基础-第3章 分布式文件系统HDFS-上机练习-熟悉常用的HDFS操作

    熟悉常用的HDFS操作 (1) 理解HDFS在Hadoop体系结构中的角色; (2) 熟练使用HDFS操作常用的Shell命令; (3) 熟悉HDFS操作常用的Java API。

    Chapter3-厦门大学-林子雨-大数据技术原理与应用-第三章-分布式文件系统HDFS(新)

    首先介绍分布式文件系统的基本概念、结构和设计需求,然后介绍Hadoop分布式文件系统HDFS,详细阐述它的重要概念、体系结构、存储原理和读写过程,最后,介绍了一些HDFS编程实践方面的知识

    详解Hadoop核心架构HDFS+MapReduce+Hbase+Hive

    通过对Hadoop分布式计算平台最核心的分布式文件系统HDFS、MapReduce处理过程,以及数据仓库工具Hive和分布式数据库Hbase的介绍,基本涵盖了Hadoop分布式平台的所有技术核心。通过这一阶段的调研总结,从内部机理的...

    HDFS体系架构汉化文档.pdf

    Hadoop分布式文件系统( HDFS )是一种旨在在商品硬件上运行的分布式文系统。它与现有的分布式文件系统许多相似之处。 但是,与其他分布式文件系统的区别很明显。 HDFS 具有高度的容错能力,旨在部署低成本硬件上。 ...

    Hadoop技术讲解

    Hadoop项目简介 HDFS体系结构 HDFS关键运行机制 Hadoop VS.Google(分布式文件系统) Hadoop API Hadoop环境搭建

    Hadoop的数据管理

    前面重点介绍了Hadoop及其体系结构和计算模型MapReduce,现在开始介绍Hadoop的数据管理,主要包括Hadoop的分布式文件系统HDFS、分布式数据库HBase和数据仓库工具Hive的数据管理。HDFS是分布式计算的存储基石,Hadoop...

    Hadoop详细的理论基础

    一、Hadoop分布式文件系统HDFS 1.认识HDFS 2.HDFS优势 3.HDFS局限性 4.HDFS特性 二、HDFS核心设计 1.数据块 2.数据块复制 3.数据块副本的存放策略 4.机架感知 5.数据块的备份数 6.安全模式 7.负载均衡 8.心跳机制 三...

    HDFS入门笔记------架构以及应用介绍

    本篇博客将从以下几个方面讲述HDFS:1、分布式文件系统与HDFS2、HDFS的体系结构3、HDFS—-NameNode相关概念4、HDFS—-DataNode相关概念5、HDFS—-block块相关概念6、HDFS—-副本数相关概念7、HDFS的具体操作方式①...

    大数据体系结构图

    大数据体系结构图,Hadoop是一个开源框架,可编写和运行分布式应用处理大规模数据。 Hadoop框架的核心是HDFS和MapReduce。其中 HDFS 是分布式文件系统,MapReduce 是分布式数据处理模型和执行环境。

    徐老师大数据 Hadoop架构完全分析课程 Hadoop入门学习视频教程

    -016.Hadoop配置完全分布模式之克隆客户机与交互模式切换与hosts文件修改与ssh远程无密登录.mp4 -017.Hadoop配置完全分布模式之IP设置与远程拷贝与格式化启动.mp4 -018.Hadoop在Win7下免Cygwin环境安装伪分布式与第...

    【前端素材】大数据-董事会指标体系层级结构.zip

    Hadoop:Apache Hadoop是一个用于分布式存储和处理大规模数据的开源框架。它包括Hadoop Distributed File System(HDFS)用于数据存储和MapReduce用于数据处理。 Spark:Apache Spark是一个快速、通用的集群计算...

Global site tag (gtag.js) - Google Analytics