大数据技术原理与应用——分布式文件系统HDFS

分布式文件系统HDFS

  • 分布式文件系统

  分布式文件系统把文件分布存储到多个计算机节点上,成千上万的计算机节点构成计算机集群。

  分布式文件系统在物理结构上是由计算机集群中的多个节点构成的,一类叫主节点(Master Node)或被称为名称节点(NameNode)

  另一类叫从节点(Slave Node)或被称为数据节点(DataNode)

  

  • HDFS简介

      HDFS要实现以下目标:

    1. 兼容廉价的硬件设备
    2. 流数据读写
    3. 支持大数据集
    4. 简单的文件模式
    5. 强大的跨平台兼容性

      HDFS的局限性

    1. 不适合低延迟数据访问(无法实现实时处理需求)
    2. 无法高效存储大量小文件
    3. 不支持多用户写入及任意修改文件(只允许追加)
  • HDFS相关概念

    块:HDFS默认一个块64MB,一个文件被分成多个块,以块作为存储单位,块的大小远远大于普通文件系统,可以最小化寻址开销。

    采用抽象的块概念的明显好处:

    支持大规模文件存储:大规模文件可以被分拆成若干各文件块,不同的块可以被分发到不同的节点上,因此一个文件的大小不会受到单个节点的存储容量的限制

    简化系统设计:文件块大小时固定的,可以很容易计算出一个节点可以存储多少文件块;其次方便了元数据的管理

    适合数据备份:每个文件块都可以冗余存储到多个节点上,大大提高了系统的容错性和可用性

名称节点 数据节点
存储元数据 存储文件内容
元数据保存在内存中 文件内容保存在磁盘

保存文件,block, datanode之间的映射关系


维护了block id和datanode本地文件的映射关系

  • HDFS存储原理  

  名称节点:负责管理分布式文件系统的命名空间,保存了两个核心的数据结构,即FsImage和EditLog。名称节点记录了每个文件中各个块所在地 数据节点的位置信息

    FsImage用于维护文件系统树以及文件树中所有的文件和文件夹的元数据。

  FsImage文件包含文件系统中所有目录和文件inode的序列化形式。每个inode时一个文件或目录的元数据的内部表示,并包含此类信息:文件的复制等级、修改和访问时间、访问权限、块大小以及组成文件的块。对于目录,则存储修改时间、权限和配额元数据。

  FsImage文件没有记录块存储在哪个数据节点,而是由名称节点把这些映射保留在内存中,当数据节点加入HDFS集群时,数据节点会把自己所包含的块列表告知给名称节点,此后会定期执行这种告知操作,以确保名称节点的块映射时最新的。

    操作日志文件EditLog中记录了所有针对文件的创建、删除、重命名等操作。

  • HDFS数据读写过程

  在名称节点启动的时候,会将FsImage文件中的内容加载到内存中,之后再执行EditLog文件中的各项操作,使得内存中的元数据和实际的同步,存在内存中的元数据支持客户端的读操作。一旦再内存中成功建立文件系统元数据的映射,则创建一个新的FsImage文件和一个空的EditLog文件。名称节点启动以后,HDFS中的更新操作会重新写到EditLog文件中(因为FsImage文件一般很大,如果所有的更新操作都往FsImage文件中添加,这样会导致系统运行的十分缓慢,而EditLog文件则小得多)。每次执行写操作后,且在向客户端发送成功代码之前,edits文件都需要同步更新。

  数据节点:是HDFS的工作节点,负责数据的存储和读取,根据客户端或名称节点的调度来进行数据的存储和检索,并且向名称节点定期发送自己所在存储的块的列表。数据节点中的数据会被保存再各自节点的本地Linux文件系统中。     

    

原文地址:https://www.cnblogs.com/rix-yb/p/9643900.html

时间: 2024-08-24 03:38:10

大数据技术原理与应用——分布式文件系统HDFS的相关文章

大数据技术原理与应用笔记

1.支持大数据的技术: 存储设备容量不断增加(1PB=1024TB) 计算,CPU处理能力不断提升 网络带宽不断增加 2.大数据特性:4V (1)大量化(volume) 大数据摩尔定律:数据一直一每年50%的速度增长 1ZB=1024EB,1EB=1024PB,1PB=1024TB 结构化数据/非结构化数据 (2)快速化(velocity) (3)多样化(variety) (4)价值(value) 价值密度低 3.大数据影响: 全样而非抽样 效率而非精确 相关而非因果 4.大数据应用: 谷歌预测

大数据技术原理与应用——大数据处理架构Hadoop

Hadoop简介 Hadoop是Apache软件基金会旗下的一个开源分布式计算平台,为用户提供了系统底层细节透明的分布式基础架构. Hadoop是基于Java语言开发的,具有很好的跨平台特性,并且可以部署在廉价的计算机集群中. Hadoop的核心是分布式文件系统(Hadoop Distributed File System,HDFS)和MapReduce. Hadoop被公认为行业大数据标准开源软件,在分布式环境下提供了海量数据的处理能力. Hadoop的特性 Hadoop是一个能够对大量数据进

大数据技术原理与应用:【第二讲】大数据处理架构Hadoop

2.1 Hadoop概论 创始人:Doug Cutting 1.简介: 开源免费; 操作简单,极大降低使用的复杂性; Hadoop是Java开发的; 在Hadoop上开发应用支持多种编程语言.不限于Java: Hadoop两大核心:HDFS+MapReduce HDFS:海量数据存储 MapReduce:海量数据的处理 2.起源: 原本是文本搜索库,模仿谷歌的搜索引擎: 融入了谷歌相关技术:分布式文件系统GFS:分布式并行编程框架MapReduce: 3.成名史:数据排序 的傲人成绩 4.特性:

大数据技术学习:弹性分布式数据集RDD

今天给大家分享的技术学习是:浅谈弹性分布式数据集RDD. 一.RDD定义 RDD(Resilient Distributed Dataset)叫做分布式数据集,是Spark中基本的数据抽象,它代表一个不可变(数据和元数据).可分区.里面的元素可并行计算的集合.其特点在于自动容错,位置感知性调度和可伸缩性. 二.RDD的属性 1.一组分片.即数据集的基本组成单位.对于RDD来说,每个分片都会被一个计算任务处理,并决定并行计算的粒度.用户可以在创建RDD时指定RDD的分片个数,如果没有指定,那么就会

《大数据技术原理与应用》学习

http://study.163.com/course/courseMain.htm?courseId=1002887002 先看了11章Spark 逻辑回归,需要迭代多,所以尤其适用Spark,100多倍 企业的应用: 1. 批量数据处理(数分钟与数小时,ETL),比如MapReduce 2. 基于历史数据的交互查询,比如Impala,Hive还不是 3. 实时数据流处理,比如Storm.比如返利的实时数据,以前通过数据库备库方式来处理,扩展性差. 而Spark提供了一站式解决. 一句话概括R

大数据技术原理与应用【第五讲】NoSQL数据库:5.3 NoSQL的四大类型

5.3 NoSQL的四大类型   5.3.1 键值数据库和列族数据库 可以分为四大类产品:键值数据库,列族数据库,文档数据库,图数据库 (代表) 1.键值数据库: 用的多:redis云数据库:SimpleDB典型应用:要求的数据模型非常简单,不涉及到存储结构化信息:要求非常好的写性能:涉及非常频繁的读写操作.内容缓存,如:会话,配置文件,参数,购物车等存储配置,用户数据信息等移动应用. 优点: (扩展性好)数据规模扩大时,往里面增加结点,理论上有无上限的扩展空间: (灵活性好)任何类型的数据都可

大数据技术原理与应用【第五讲】NoSQL数据库:5.6 文档数据库MongoDB

文档数据库介于关系数据库和NoSql之间: 是最像关系数据库的一款产品,也是当前最热门的一款产品. 1.MongoDB简介: 1) 2)文档类型BSON(Binary JSON),结构类似JSON 3)特点:操作比较简单容易可以针对任何属性的索引实现更快的排序水平可扩展性丰富的查询表达式,替换已完成文档指定的字段批量处理,聚合 4)术语: 每一行记录对应一个文档文档集合对应就是表 (实例:两行记录对应两个文档) 5) 关系数据库需要多表连接查询:文档数据库散布在多个表的数据用一个文档即可锁定,并

大数据技术原理与应用:【第五讲】NoSQL数据库

5.1 NoSQL概论 5.2 NoSQL与关系数据库的比较 5.3 NoSQL的四大类型 5.4 NoSQL的三大基石 5.5 从NoSQL到NewSQL数据库‘ 5.6 文档数据库MongoDB 原文地址:https://www.cnblogs.com/musecho/p/10991272.html

大数据技术之_04_Hadoop学习_01_HDFS_HDFS概述+HDFS的Shell操作(开发重点)+HDFS客户端操作(开发重点)+HDFS的数据流(面试重点)+NameNode和SecondaryNameNode(面试开发重点)

第1章 HDFS概述1.1 HDFS产出背景及定义1.2 HDFS优缺点1.3 HDFS组成架构1.4 HDFS文件块大小(面试重点)第2章 HDFS的Shell操作(开发重点)第3章 HDFS客户端操作(开发重点)3.1 HDFS客户端环境准备3.2 HDFS的API操作3.2.1 HDFS文件上传(测试参数优先级)3.2.2 HDFS文件下载3.2.3 HDFS文件夹删除3.2.4 HDFS文件名更改3.2.5 HDFS文件详情查看3.2.6 HDFS文件和文件夹判断3.3 HDFS的I/O