返回顶部
首页 > 资讯 > 精选 >HDFS基本概念有哪些
  • 927
分享到

HDFS基本概念有哪些

2023-06-02 14:06:10 927人浏览 泡泡鱼
摘要

小编给大家分享一下hdfs基本概念有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!  1.1 HDFS的介绍  源自于Google的GFS论文 发表于2003

小编给大家分享一下hdfs基本概念有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

  1.1 HDFS的介绍

  源自于Google的GFS论文 发表于2003年10月 HDFS是GFS克隆版 ,HDFS的全称是hadoop Distributed File System易于扩展的分布式文件系统,运行在大量普通廉价机器上,提供容错机制,为大量用户提供性能不错的文件存取服务

  整个Hadoop的体系结构主要是通过HDFS来实现对分布式存储的底层支持,并通过MR来实现对分布式并行任务处理的程序支持。

  HDFS采用主从(Master/Slave)结构模型,一个HDFS集群是由一个Namenode和若干个DataNode组成的(在最新的Hadoop2.2版本已经实现多个NameNode的配置-这也是一些大公司通过修改hadoop源代码实现的功能,在最新的版本中就已经实现了)。NameNode作为主服务器,管理文件系统命名空间和客户端对文件的访问操作。DataNode管理存储的数据。HDFS支持文件形式的数据。

  从内部来看,文件被分成若干个数据块,这若干个数据块存放在一组DataNode上。NameNode执行文件系统的命名空间,如打开、关闭、重命名文件或目录等,也负责数据块到具体DataNode的映射。DataNode负责处理文件系统客户端的文件读写,并在NameNode的统一调度下进行数据库的创建、删除和复制工作。NameNode是所有HDFS元数据的管理者,用户数据永远不会经过NameNode。

  2 HDFS设计目标

  自动快速检测应对硬件错误

  流式访问数据

  移动计算比移动数据本身更划算

  简单一致性模型

  异构平台可移植

  移动计算和移动数据
学习大数据的时候接触了移动数据和移动计算这两种联系紧密而又有很大不同的概念,
其中移动计算也叫做本地计算。在以前的数据处理中时使用的
移动数据,其实就是将需要处理的数据传输到存放不同处理数据方式逻辑的各个节点上。这样做的效率很低,特别
是大数据中的数据量是很大的,至少都是GB以上,更大的是TB、PB甚至更大,而且磁盘I/O、网络I/O的效率是很
低的,这样处理起来就需要很长的时间,远远不能满足我们的要求。而移动计算就出现了。
移动计算,也叫做本地计算,是数据就存放在节点上不再变动,而是将处理逻辑程序传输到各个数据节点上。由于
处理程序的大小肯定不会特别的大,这样就可以实现很快将程序传输到存放数据的各个节点上去,然后本地执行处
理数据,效率高。现在的大数据处理技术都是采用这种方式。
HDFS模型例子:
班级中有这么多笔记本其实就可以组成一个集群是吧,然后隔壁班需要将文件存储到笔记本中,一个一个进来随便找
一个笔记本存储,走了之后,过了一段时间,需要将文件取走,但是每一个人都不知道自己上传到那个服务器上了,那么每
台都需要找,,这样一来操作的复杂度就高了,那么需要怎么改善这个问题?
牺牲一下,我的笔记本不存数据了,专门记录存储的的过程(NameNode),第一个人进来先找我,说我要存储文件,然后我
说去第一台电脑存吧,然后就去第一台电脑存储了,它在存储文件的时候,上传文件需要等几分钟,然后第二个人进来了,
也要存文件,然后我说你去第二台电脑上存储,那么我与存储人之间的交互信息量大吗?不大,是吧我的主要作用就是告
诉对方去哪存储, 第一台电脑在传第二台电脑也再传,是不是同时在传,那么这就相当于负载了,那么他们在上传的时候
是独立的资源,而不会去抢占资源.
问题:什么时候记录这个存储记录?
是在一开始对话的时候我就记录,还是在当他传完数据后记录?
一定是传完数据后记录,这是为了数据的一致性
上传成功后,是上传人员告诉我上传成功还是电脑给发送信息上传成功
一定是电脑发送信息上传成功,因为只有电脑去认了上传成功了有文件有记录就OK
是不是很简单,很轻松啊,要是早几年听是不是HDFS就是你开发的了 

  HDFS的特点

  优点:

  高可靠性:Hadoop按位存储和处理数据的能力值得人们信赖;

  高扩展性:Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。

  高效性:Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。

  高容错性:Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。

  缺点:

  不适合低延迟数据访问。

  无法高效存储大量小文件。

  不支持多用户写入及任意修改文件。

  1.4 hdfs核心设计思想及作用
  • 分而治之:将大文件、大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析;

  • 为各类分布式运算框架(如:mapReducespark,tez,……)提供数据存储服务

  • hdfs更具体描述

   首先,它是一个文件系统,用于存储文件,通过统一的命名空间——目录树来定位文件

   其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色;

  1.5 重要特性如下:

  HDFS中的文件在物理上是分块存储(block),块的大小可以通过配置参数( dfs.blocksize)来规定,默认大小在hadoop2.x版本中是128M,老版本中是64M。

  HDFS文件系统会给客户端提供一个统一的抽象目录树,客户端通过路径来访问文件,形如:hdfs://namenode:port/dir-a/dir-b/dir-c/file.data。

  目录结构及文件分块信息(元数据)的管理由namenode节点承担——namenode是HDFS集群主节点,负责维护整个hdfs文件系统的目录树,以及每一个路径(文件)所对应的block块信息(block的id,及所在的datanode服务器)。

  文件的各个block的存储管理由datanode节点承担--- datanode是HDFS集群从节点,每一个block都可以在多个datanode上存储多个副本(副本数量也可以通过参数设置dfs.replication)。

  HDFS架构组成

HDFS基本概念有哪些

  NameNode(NN)

  基于内存存储 :不会和磁盘发生交换只存在内存中

  这样做的主要目的是为了快,但是内存存储的一个通病就是掉电易失

  一旦断电内存中存储的数据就什么都没有了,所以就需要持久化了(有点打脸了因为是需要到磁盘中的存储)

  NameNode持久化

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

  存储到磁盘中有两种方法:

  第一种:在某个时间点以类似于”拍快照”的形式将数据信息存储到磁盘中

  metadata存储到磁盘文件名为”fsimage”,Block的位置信息不会保存到fsimage

  若是回复,需要等待DataNode重新汇报信息Block每副本位置(由DataNode上报)

  第二种:以日志的方式生成文件edit log记录对metadata的操作日志

  NameNode主要功能:

  接受客户端的读写服务,收集DataNode汇报的Block列表信息

  NameNode保存metadata信息包括

  文件所属权和权限,文件大小,时间(Block列表:Block偏移量),位置信息

  DataNode(DN)

  DataNode是Block真正存储的地方。DataNode的本地磁盘以文件形式存储着Block信息。同时还存储着Block的元数据信息文件。 

  元数据主要存储MD5值 用来进行验证
HDFS在启动时,DataNode会向NameNode汇报block的信息。 
DataNode通过向NameNode发送心跳保持与其联系(3秒一次),如果NameNode 10分钟没有收到DataNode的心跳,则认为其已经lost,并复制其上的block到其它DataNode。

  SecondaryNameNode(SNN)

  初看名字,你可能会以为SecondaryNameNode是NameNode的备份,实际上,SecondaryNameNode的主要作用并不是这个,当然它也可以用来做备份。 
要了解SecondaryNameNode的作用,就不得不说一下HDFS的启动过程。 
上面我们已经提到了两个文件fsimage和edits。fsimage是当前HDFS系统的快照。edits记录了对HDFS的各种操作日志。 

  假设:有一个集群跑了10年一点问题都没有,fsimage是十年前的一个点,为了不影响性能,只记录了一次,而edits一直在记录日子,吧唧,服务器宕机了,重启恢复,

  HDFS在启动的时候,根据fsimage和edit log日志可以得到系统当前最新的状态,并产生一个新的fsimage文件。这样的启动时很耗时间的。尤其是当edit log文件非常大的时候,合并会占用很多额外的时间。

以上是“HDFS基本概念有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: HDFS基本概念有哪些

本文链接: https://lsjlt.com/news/230222.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • HDFS基本概念有哪些
    小编给大家分享一下HDFS基本概念有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!  1.1 HDFS的介绍  源自于Google的GFS论文 发表于2003...
    99+
    2023-06-02
  • Java基本概念有哪些
    这篇文章给大家分享的是有关Java基本概念有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Java基本概念JDK包含了不少Java开发相关命令。如,javac、java、javap、javaw、javadoc...
    99+
    2023-06-20
  • HTML基本的概念有哪些
    这篇文章主要介绍“HTML基本的概念有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“HTML基本的概念有哪些”文章能帮助大家解决问题。   1、什么是HTML...
    99+
    2024-04-02
  • Jspxcms的基本概念有哪些
    这篇文章主要介绍“Jspxcms的基本概念有哪些”,在日常操作中,相信很多人在Jspxcms的基本概念有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Jspxcms的基本概念有哪些”的疑惑有所帮助!接下来...
    99+
    2023-06-26
  • J2SE的基本概念有哪些
    这篇文章主要讲解了“J2SE的基本概念有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“J2SE的基本概念有哪些”吧!Java概述:  目前Java主要应用于中间件的开发(middlewa...
    99+
    2023-06-03
  • MongoDB数据库基本概念有哪些
    这篇“MongoDB数据库基本概念有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MongoDB数据库基本概念有哪些”文...
    99+
    2023-06-29
  • 数据库基本概念面试题有哪些
    这篇文章主要讲解了“数据库基本概念面试题有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“数据库基本概念面试题有哪些”吧!1、超键、候选键、主键、外键超键...
    99+
    2024-04-02
  • C++智能指针的基本概念有哪些
    今天小编给大家分享一下C++智能指针的基本概念有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。引言C++是一种广泛使用的...
    99+
    2023-07-05
  • Web开发的基本概念和技术有哪些
    本篇内容介绍了“Web开发的基本概念和技术有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!A — AJ...
    99+
    2024-04-02
  • Aerospike基本概念
    简介 Aerospike 是一个分布式、可扩展的数据库,其架构有三个关键目标: 为 web 规模的应用程序创建一个灵活的、可扩展的平台 提供传统数据库所期望的健壮性和可靠性(如 ACID) 以最少的人工参与提供操作效率 T级别大数...
    99+
    2022-04-04
    Aerospike基本概念
  • 1、基本概念
    ...
    99+
    2018-01-29
    1 基本概念
  • Python基本概念
    一 基本概念1 字面意义上的常量,如2、‘This is ok'这样的字符串>>> print('a,2,3')a,2,32 字符串单引号(‘)使用单引号指示字符串,类似shell中的强引用,所有的空格、制表符照原样保留。...
    99+
    2023-01-31
    基本概念 Python
  • 学习canvas,需要了解哪些基本概念?
    学习canvas需要掌握哪些基础知识? 随着现代Web技术的发展,使用HTML5中的<canvas>标签进行绘图成为一种常见的方式。Canvas是一种用于绘制图形、动画和其他图像的HTML元素,它可以利用JavaSc...
    99+
    2024-01-17
    Canvas 基础知识 绘图功能
  • Hive的基本概念
    这篇文章主要介绍“Hive的基本概念”,在日常操作中,相信很多人在Hive的基本概念问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Hive的基本概念”的疑惑有所帮助!接下来,...
    99+
    2024-04-02
  • Spring AOP基本概念
    目录举个栗子给大家讲一下代理:什么是AOP?基本术语(1)切面(Aspect)(2) 目标对象(Target)(3) 连接点(JoinPoint)(4) 切入点(PointCut)(...
    99+
    2024-04-02
  • Mysql的基本概念
    一 . Mysql 的基本概念 1、数据(data) 描述事物的符号记录包括数字文字图形图像声音档案记录等以记录形式按同意的格式进行存储 2、表 将不同的记录组织在一起用来存储具体数据 3、数据库 ...
    99+
    2023-09-20
    mysql 数据库
  • MQ的基本概念
    本篇内容介绍了“MQ的基本概念”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!对象(objects)   &nb...
    99+
    2023-06-04
  • DOS的基本概念
    本篇内容介绍了“DOS的基本概念”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!    DOS是最基本的操作系统...
    99+
    2023-06-09
  • 云服务器ecs基础概念有哪些
    云服务器(Cloud Storage,也称为云存储)是一种基于互联网的服务器软件,为用户提供存储、备份和共享等服务。在云服务器上,客户可以轻松地实现对各种数据的存储、备份和同步,以及对数据进行管理和分享。 以下是云服务器的基础概念: 虚...
    99+
    2023-10-26
    概念 服务器 基础
  • NIO的概念有哪些
    这篇文章主要介绍了NIO的概念有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇NIO的概念有哪些文章都会有所收获,下面我们一起来看看吧。缓冲区(Buffers) 新的 Buffer 类是常规 Java 类和...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作