广告
返回顶部
首页 > 资讯 > 精选 >Hadoop体系结构之HDFS的示例分析
  • 923
分享到

Hadoop体系结构之HDFS的示例分析

2023-06-03 03:06:43 923人浏览 独家记忆
摘要

这篇文章将为大家详细讲解有关hadoop体系结构之hdfs的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。    HDFS采用主从(Master/Slave)结构模型,一个HD

这篇文章将为大家详细讲解有关hadoop体系结构之hdfs的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

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

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

如图:HDFS体系结构图

说明:

图中涉及三个角色:NameNode、DataNode、Client。NameNode是管理者,DataNode是文件存储者、Client是需要获取分布式文件系统的应用程序。

namenode负责: 接收用户操作请求 维护文件系统的目录结构 管理文件与block之间关系,block与datanode之间关系

datanode负责: 存储文件 文件被分成block存储在磁盘上 为保证数据安全,文件会有多个副本

数据写入:

   1)  Client向NameNode发起文件写入的请求。

   2)  NameNode根据文件大小和文件块配置情况,返回给Client它管理的DataNode的信息。

   3)  Client将文件划分为多个block,根据DataNode的地址,按顺序将block写入DataNode块中。

数据读取:

   1)  Client向NameNode发起读取文件的请求。

   2)  NameNode返回文件存储的DataNode信息。

   3)  Client读取文件信息。

    数据读取策略,根据前面所说的数据存放策略,数据读取的时候,客户端也有 api 确定自己的机柜 id,读取的时候,如果
有块数据和客户端的机柜 id 一样,就优先选择该数据节点,客户端直接和数据节点建立连接,读取数据。如果没有,就随机选
取一个数据节点。

数据复制:

       主要是在数据写入和数据恢复的时候发生,数据复制是使用流水线复制的策略。当客户端要在 hadoop 上面写一个文件,
首先它先把这个文件写在本地,然后对文件进行分块,默认 64m 一块,每块数据都对 hadoop 目录服务器请求,目录服务器选
择一个数据机列表,返回给客户端,然后客户端就把数据写入第一台数据机,并且把列表传给数据机,当数据机接收到 4k 数据
的时候,写入本地并且发起连接到下一台数据机,把这个 4k 传过去,形成一条流水线。当最后文件写完的时候,数据复制也同
时完成,这个就是流水线处理的优势。

      HDFS作为分布式文件系统在数据管理方面可借鉴点:

文件块的放置:一个Block会有三份备份,一份在NameNode指定的DateNode上,一份放在与指定的DataNode不在同一台机器的DataNode上,一根在于指定的DataNode在同一Rack上的DataNode上。简单来说就是 1/3 的冗余数据在一个机柜里面,2/3 的冗余数据在另外一个机柜里面。备份的目的是为了数据安全,采用这种方式是为了考虑到同一Rack失败的情况,以及不同数据拷贝带来的性能的问题。

HDFS的设计特点:

大数据文件,非常适合上T级别的大文件或者一堆大数据文件的存储,如果文件只有几个G甚至更小就没啥意思了。

文件分块存储,HDFS会将一个完整的大文件平均分块存储到不同计算器上,它的意义在于读取文件时可以同时从多个主机取不同区块的文件,多主机读取比单主机读取效率要高得多得都。

流式数据访问,一次写入多次读写,这种模式跟传统文件不同,它不支持动态改变文件内容,而是要求让文件一次写入就不做变化,要变化也只能在文件末添加内容。

廉价硬件,HDFS可以应用在普通PC机上,这种机制能够让给一些公司用几十台廉价的计算机就可以撑起一个大数据集群。

硬件故障,HDFS认为所有计算机都可能会出问题,为了防止某个主机失效读取不到该主机的块文件,它将同一个文件块副本分配到其它某几个主机上,如果其中一台主机失效,可以迅速找另一块副本取文件。

HDFS的关键元素:

Block:将一个文件进行分块,通常是64M。

NameNode:保存整个文件系统的目录信息、文件信息及分块信息,这是由唯一一台主机专门保存,当然这台主机如果出错,NameNode就失效了。在Hadoop2.*开始支持activity-standy模式----如果主NameNode失效,启动备用主机运行NameNode。

DataNode:分布在廉价的计算机上,用于存储Block块文件。

补充:HDFS和MR共同组成Hadoop分布式系统体系结构的核心。HDFS在集群上实现了分布式文件系统,MR在集群上实现了分布式计算和任务处理。HDFS在MR任务处理过程中提供了文件操作和存储等支持,MR在HDFS的基础上实现了任务的分发、跟踪、执行等工作,并收集结果,二者相互作用,完成分布式集群的主要任务。

关于“Hadoop体系结构之HDFS的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: Hadoop体系结构之HDFS的示例分析

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Hadoop体系结构之HDFS的示例分析
    这篇文章将为大家详细讲解有关Hadoop体系结构之HDFS的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。    HDFS采用主从(Master/Slave)结构模型,一个HD...
    99+
    2023-06-03
  • JVM中体系结构的示例分析
    小编给大家分享一下JVM中体系结构的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!什么是JVM?JVM(Java Virtual Machine)是一个抽...
    99+
    2023-06-20
  • JAVA异常体系结构的示例分析
    这篇文章主要介绍JAVA异常体系结构的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、什么是异常异常:程序在运行过程中发生由于硬件设备问题、软件设计错误等导致的程序异常事件。(在Java等面向对象的编程语言...
    99+
    2023-05-30
    java
  • MongoDB特点与体系结构的示例分析
    小编给大家分享一下MongoDB特点与体系结构的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.1什么是MongoDB...
    99+
    2022-10-18
  • MySql整体结构的示例分析
    这篇文章主要介绍MySql整体结构的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! MySql 整体结构MySQL 由连接池、SQL 接口、解析器...
    99+
    2022-10-18
  • MySql优化之体系结构及存储引擎的示例分析
    这篇文章给大家分享的是有关MySql优化之体系结构及存储引擎的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、MySQL结构体系总体上, 我们可以把 MySQL 分成三...
    99+
    2022-10-19
  • JavaScript之树结构的示例分析
    这篇文章主要介绍了JavaScript之树结构的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。二叉树--概念--二叉树是一种树形结构...
    99+
    2022-10-19
  • MySQL体系结构的实例分析
    这期内容当中小编将会给大家带来有关MySQL体系结构的实例分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 MySQL是由SQL接口,解析...
    99+
    2022-10-18
  • MySQL体系架构的示例分析
    这篇文章给大家分享的是有关MySQL体系架构的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。MySQL 体系架构MySQL 体系架构主要分为两部分:客户端和服务端客户端客...
    99+
    2022-10-18
  • hadoop大数据平台架构之DKhadoop的示例分析
    这篇文章给大家分享的是有关hadoop大数据平台架构之DKhadoop的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。目前国内的商业发行版hadoop除了大快DKhadoop以外还有像华为云等。虽然发行方...
    99+
    2023-06-02
  • Linux系统结构的示例分析
    这篇文章主要介绍Linux系统结构的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Linux系统一般有4个主要部分:内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构...
    99+
    2023-06-15
  • PHP数据结构之图存储结构的示例分析
    这篇文章主要介绍PHP数据结构之图存储结构的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!图的存储结构图的概念介绍得差不多了,大家可以消化消化再继续学习后面的内容。如果没有什么问题的话,我们就继续学习接下来的...
    99+
    2023-06-20
  • Angular2之结构型指令的示例分析
    这篇文章主要介绍了Angular2之结构型指令的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Angular 有一个强力的模板引擎,...
    99+
    2022-10-19
  • java数据结构之树的示例分析
    这篇文章主要介绍java数据结构之树的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!树定义和基本术语定义树(Tree)是n(n≥0)个结点的有限集T,并且当n>0时满足下列条件:(1)有且仅有一个特定的称为根...
    99+
    2023-05-30
    java
  • C语言结构体指针的示例分析
    这篇文章给大家分享的是有关C语言结构体指针的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。写结构体指针前,先说一下 . 号和 -> 的区别记得当初刚学C语言的...
    99+
    2023-06-20
  • 分布式文件系统HDFS的示例分析
    小编给大家分享一下分布式文件系统HDFS的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 从RAID说起大数据技术主要要解决的问题的是大规模数据的计算处理问题,那么首先要解决的就是大规模数据的存储问题。大规模数据存...
    99+
    2023-06-19
  • C语言中结构体和共用体的示例分析
    这篇文章给大家分享的是有关C语言中结构体和共用体的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、实验目的掌握结构体类型变量的定义和使用;掌握结构体类型数组的概念和应用;掌握链表的概念,初步学会对链表进...
    99+
    2023-06-20
  • MySQL逻辑体系架构的示例分析
    这篇文章主要为大家展示了“MySQL逻辑体系架构的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL逻辑体系架构的示例分析”这篇文章吧。Mysql...
    99+
    2022-10-19
  • JavaScript数据结构之链表的示例分析
    这篇文章主要为大家展示了“JavaScript数据结构之链表的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript数据结构之链表的示例分析...
    99+
    2022-10-19
  • JS中数据结构之栈的示例分析
    这篇文章给大家分享的是有关JS中数据结构之栈的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。栈是一种高效的数据结构,因为数据只能在栈顶添加或删除,所以这样的操作很快,而且...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作