Hadoop组件----HDFS架构及原理

学习博客:https://blog.csdn.net/kezhong_wxl/article/details/76573901

官方文档:http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html

一、介绍

DFS(Distributed File System)分布式文件系统:管理网络中跨多台计算机存储的文件系统。
Hadoop自带一个HDFS(Hadoop Distributed File System)分布式文件系统。HDFS是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开发的,可以运行于廉价的商用服务器上.

二、假设与设计

  •   硬件错误:硬件错误是常态而不是异常。HDFS可能由成百上千的服务器所构成,每个服务器上存储着文件系统的部分数据,需要HDFS有错误检测和快速、自动的恢复。-----最核心架构目标
  •   流式数据访问:能够实时的访问数据,运行在HDFS上的应用和普通的应用不同,需要流式访问它们的数据集。HDFS的设计中更多的考虑到了数据批处理,而不是用户交互处理。比之数据访问的低延迟问题,更关键的在于数据访问的高吞吐量

补充:关于数据访问方式,可以参考下面这个博客:

      https://blog.csdn.net/HeatDeath/article/details/78986025

  •   大规模数据集:运行在HDFS上的应用具有很大的数据集。HDFS上的一个典型文件大小一般都在G字节至T字节
  •   简单的一致模型:HDFS应用需要一个“一次写入多次读取”的文件访问模型,一个文件经过创建、写入和关闭之后就不需要改变。
  •   移动计算:一个应用请求的计算,离它操作的数据越近就越高效。HDFS为应用提供了将它们自己移动到数据附近的接口。

三、主从架构

有几个概念需要明确:

  Namenode

    管理节点;管理文件系统的命名空间,维护文件系统树及整棵树内的所有文件和目录;记录每个文件中各个块所在的数据节点信息;

    管理文件系统命名空间的主服务器和管理客户端对文件的访问组成;
    NameNode执行文件系统命名空间操作,如打开,关闭和重命名文件和目录。它还确定了块到DataNode的映射.何对文件系统名字空间或属性的修改都将被Namenode记录下来

  Datanode

    工作节点;根据需要存储和检索数据块(受client或namenode的调度),并定期向namenode发送他们所存储的块的列表。

    负责提供来自文件系统客户端的读写请求

  block

    数据库,默认128MB.HDFS上的文件被划分为块大小的多个分块(chunk),作为独立的存储单元。与面向单一磁盘的文件系统不同,HDFS中小于一个块大小的文件不会占据整个块的空间(如:一个1MB的文件存储在一个128MB的块中,文件只使用1MB的磁盘空间,而不是128MB.)

四、数据复制

  在HDFS中,它将每个文件存储成一系列的数据块,除了最后一个,所有的数据块都是同样大小的,为了容错,文件的所有数据块都会有副本。

HDFS中的文件都是一次性写入的,并且严格要求在任何时候只能有一个写入者。

  Namenode全权管理数据块的复制,它周期性地从集群中的每个Datanode接收心跳信号和块状态报告(Blockreport)。接收到心跳信号意味着该Datanode节点工作正常。块状态报告包含了一个该Datanode上所有数据块的列表。

原文地址:https://www.cnblogs.com/taoHongFei/p/9346250.html

时间: 2024-11-05 19:05:38

Hadoop组件----HDFS架构及原理的相关文章

hadoop中HDFS的NameNode原理

1. hadoop中HDFS的NameNode原理 1.1. 组成 包括HDFS(分布式文件系统),YARN(分布式资源调度系统),MapReduce(分布式计算系统),等等. 1.2. HDFS架构原理 比如现在要上传一个1T的大文件,提交给HDFS的Active NameNode(用以存放文件目录树,权限设置,副本数设置等),它会在指定目录下创建一个新的文件对象,比如access_20180101.log 至于具体数据,它会将它拆分后进行分布式存储,分散在各个DataNode节点,且默认都会

深入理解Hadoop之HDFS架构

Hadoop分布式文件系统(HDFS)是一种分布式文件系统.它与现有的分布式文件系统有许多相似之处.但是,与其他分布式文件系统的差异是值得我们注意的: HDFS具有高度容错能力,旨在部署在低成本硬件上.(高容错)HDFS提供对数据的高吞吐量访问,适用于具有海量数据集的应用程序.(高吞吐量)HDFS放宽了一些POSIX要求,以实现对文件系统数据的流式访问.(流式访问) HDFS最初是作为Apache Nutch网络搜索引擎项目的基础设施而构建的.HDFS是Apache Hadoop Core项目的

【Hadoop】HDFS的运行原理

简介 HDFS(Hadoop Distributed File System )Hadoop分布式文件系统.是根据google发表的论文翻版的.论文为GFS(Google File System)Google 文件系统(中文,英文). HDFS有很多特点: ① 保存多个副本,且提供容错机制,副本丢失或宕机自动恢复.默认存3份. ② 运行在廉价的机器上. ③ 适合大数据的处理.多大?多小?HDFS默认会将文件分割成block,64M为1个block.然后将block按键值对存储在HDFS上,并将键

hadoop之hdfs及其工作原理

(一)hdfs产生的背景 随着数据量的不断增大和增长速度的不断加快,一台机器上已经容纳不下,因此就需要放到更多的机器中,但这样做不方便维护和管理,因此需要一种文件系统进行统一管理:另一方面,数据量之大,势必会对处理器性能提出了更大的要求,单个处理器性能的提升成本极高且已到达技术瓶颈(目前来看),因此纵向扩展的这条道路已经闭塞,只能考虑横向扩展,添加更多的机器.就在这种背景下,HDFS应运而生,它是一种分布式文件系统,它由多台主机的进程系统完成某个应用,当然每台主机各司其职(这个会在下文中进行介绍

2本Hadoop技术内幕电子书百度网盘下载:深入理解MapReduce架构设计与实现原理、深入解析Hadoop Common和HDFS架构设计与实现原理

这是我收集的两本关于Hadoop的书,高清PDF版,在此和大家分享: 1.<Hadoop技术内幕:深入理解MapReduce架构设计与实现原理>董西成 著  机械工业出版社2013年5月出版 2.<Hadoop技术内幕:深入解析Hadoop Common和HDFS架构设计与实现原理>蔡斌.陈湘萍 著  机械工业出版社2013年4月出版 百度网盘下载地址: http://pan.baidu.com/s/1sjNmkFj

大数据技术hadoop入门理论系列之二&mdash;HDFS架构简介

HDFS简单介绍 HDFS全称是Hadoop Distribute File System,是一个能运行在普通商用硬件上的分布式文件系统. 与其他分布式文件系统显著不同的特点是: HDFS是一个高容错系统且能运行在各种低成本硬件上: 提供高吞吐量,适合于存储大数据集: HDFS提供流式数据访问机制. HDFS起源于Apache Nutch,现在是Apache Hadoop项目的核心子项目. HDFS设计假设和目标 硬件错误是常态 在数据中心,硬件异常应被视作常态而非异常态. 在一个大数据环境下,

【转载】Hadoop分布式文件系统HDFS的工作原理详述

转载请注明来自36大数据(36dsj.com):36大数据 » Hadoop分布式文件系统HDFS的工作原理详述 转注:读了这篇文章以后,觉得内容比较易懂,所以分享过来支持一下. Hadoop分布式文件系统(HDFS)是一种被设计成适合运行在通用硬件上的分布式文件系统.HDFS是一个高度容错性的系统,适合部署在廉价的 机器上.它能提供高吞吐量的数据访问,非常适合大规模数据集上的应用.要理解HDFS的内部工作原理,首先要理解什么是分布式文件系统. 1.分布式文件系统 多台计算机联网协同工作(有时也

Hadoop之HDFS原理及文件上传下载源码分析(下)

上篇Hadoop之HDFS原理及文件上传下载源码分析(上)楼主主要介绍了hdfs原理及FileSystem的初始化源码解析, Client如何与NameNode建立RPC通信.本篇将继续介绍hdfs文件上传.下载源解析. 文件上传 先上文件上传的方法调用过程时序图: 其主要执行过程: FileSystem初始化,Client拿到NameNodeRpcServer代理对象,建立与NameNode的RPC通信(楼主上篇已经介绍过了) 调用FileSystem的create()方法,由于实现类为Dis

Hadoop HDFS 架构设计

HDFS 简介 Hadoop Distributed File System,简称HDFS,是一个分布式文件系统. HDFS是高容错性的,可以部署在低成本的硬件之上,HDFS提供高吞吐量地对应用程序数据访问,它适合大数据集的应用程序.它具有以下几个特点: 1)适合存储非常大的文件 2)适合流式数据读取,即适合“只写一次,读多次”的数据处理模式 3)适合部署在廉价的机器上 但HDFS不适合以下场景(任何东西都要分两面看,只有适合自己业务的技术才是真正的好技术): 1)不适合存储大量的小文件,因为受