HDFS体系结构详解

HDFS的体系框架是Master/Slave结构,一个典型的HDFS通常由单个NameNode和多个DataNode组成。NameNode是一个中心服务器,负责文件系统的名字空间的操作,比如打开、关闭、重命名文件或目录,它负责维护文件路径到数据块的映射,数据块到DataNode的映射,以及监控DataNode的心跳和维护数据块副本的个数。集群中的DataNode一般是一个节点一个,负责管理它所在节点上的存储。HDFS暴露了文件系统的名字空间,用户能够以文件的形式在上面存储数据。从内部看,一个文件其实被分成一个或多个数据块,这些块存储在一组DataNode上。DataNode负责处理文件系统客户端的读写请求。在NameNode的统一调度下进行数据块的创建、删除和复制。  
所有对目录树的更新和文件名和数据块关系的修改,都必须能够持久化,文件在HDFS中存储图如图2: 
<ignore_js_op>

图2  文件在HDFS中的存储图 
HDFS涉及到NameNode、DataNode和客户端们之间的交互。本质上,客户端与NameNode通讯是通过获取或者修改文件的元数据,与 DataNode进行实际的I/O操作。如图3所示,在HDFS中有三个重要的角色:NameNode、DataNode和Client,其中Client就是需要获取分布式文件系统文件的应用程序。 
这里通过三个操作来说明他们之间的交互关系 
(l)文件写入。首先Client向NameNode发起文件写入的请求,NameNode根据文件大小和文件块配置情况,返回给Client它所管理部分DataNode的信息。Client将文件划分为多个Block,根据DataNode的地址信息,按顺序写入到每一个DataNode块中。 
(2)文件读取。Client向NameNode发起文件读取的请求,NameNode返回文件存储的DataNode的信息。Client根据返回的信息读取DataNode上的文件信息。 
(3)文件Block复制。NameNode发现部分文件的Block不符合最小复制数或者部分DataNode失效,通知DataNode相互复制Block。DataNode收到通知后开始直接相互复制。 
<ignore_js_op>

图3  HDFS结构图

时间: 2024-11-08 23:34:55

HDFS体系结构详解的相关文章

HDFS 体系结构详解

Hdfs体系结构:三个进程(namenode,datanode, secondary namenode) Hdfs(hadoopdistributed filesystem)是hadoop的核心子项目,是分布式存储,它是基于流数据模式的访问和处理超大文件.(分布式最大的好处就是其通透性,虽然分布存在不同的datanode上面,但是感觉在一台电脑的本地进行操作). Tips: Hdfs的高可用性主要取决于namenode,间接取决于元数据的可靠性和namenode的服务回复时间. 磁盘元数据文件,

oracle体系结构详解

Oracle体系结构就是围绕这张图展开的,要想深入了解oracle,就必须把这张图搞明白. 如图: 一.基本组成: Oracle server: 一般情况下是一个instance和一个database组成 1个instance只能对应一个数据库.    特殊:1个数据库可以有多个instance(rac) 一台服务器上同时可装多套版本的数据库软件,每个数据库软件可建多个数据库,但是每个数据库只对应一个instance,也可以理解成每个数据库只有一个SID . 利用DBCA建出的每个库都是相对独立

oracle 体系结构详解

Oracle体系结构就是围绕这张图展开的,要想深入了解oracle,就必须把这张图搞明白. 如图: 一.基本组成: Oracle server: 一般情况下是一个instance和一个database组成 1个instance只能对应一个数据库.    特殊:1个数据库可以有多个instance(rac) 一台服务器上同时可装多套版本的数据库软件,每个数据库软件可建多个数据库,但是每个数据库只对应一个instance,也可以理解成每个数据库只有一个SID . 利用DBCA建出的每个库都是相对独立

HDFS节点详解

设计思想 分而治之:将大文件.大批量文件,分布式放在大量服务器上,以便于采取分而治之的方式对海量数据进行预算分析: 在大数据系统中的作用:为各类分布式运算框架(如:MapReduce,Spark等)提供数据存储服务 重要概念:文件切块,副本存放,元数据 HDFS架构 HDFS各节点 NameNode是HDFS的主节点,负责元数据的管理以及客户端对文件的访问.管理数据块的复制,它周期性地从集群中的每个DataNode接收心跳信号和块状态报告(Blockreport) DataNode是HDFS的从

kettle连接hadoop&amp;hdfs图文详解

1 引言: 项目最近要引入大数据技术,使用其处理加工日上网话单数据,需要kettle把源系统的文本数据load到hadoop环境中 2 准备工作: 1 首先 要了解支持hadoop的Kettle版本情况,由于kettle资料网上较少,所以最好去官网找,官网的url: http://wiki.pentaho.com/display/BAD/Configuring+Pentaho+for+your+Hadoop+Distro+and+Version 打开这个url 到页面最下面的底端,如下图: ar

kettle入门(三) 之kettle连接hadoop&amp;hdfs图文详解(转)

1 引言: 项目最近要引入大数据技术,使用其处理加工日上网话单数据,需要kettle把源系统的文本数据load到hadoop环境中 2 准备工作: 1 首先 要了解支持hadoop的Kettle版本情况,由于kettle资料网上较少,所以最好去官网找,官网的url: http://wiki.pentaho.com/display/BAD/Configuring+Pentaho+for+your+Hadoop+Distro+and+Version 打开这个url 到页面最下面的底端,如下图: ar

kettle入门(三) 之kettle连接hadoop&amp;hdfs图文详解

1 引言: 项目最近要引入大数据技术,使用其处理加工日上网话单数据,需要kettle把原始文本数据load到hadoop环境中 2 准备工作: 1 首先 要了解支持hadoop的Kettle版本情况,由于kettle资料网上较少,所以最好去官网找,官网的url: http://wiki.pentaho.com/display/BAD/Configuring+Pentaho+for+your+Hadoop+Distro+and+Version 打开这个url 到打开页面最下面的底端如下图: arc

hadoop1中hdfs原理详解

HDFS是Hadoop Distribute File System的简称,也是Hadoop的一个分布四文件系统 一.HDFS的主要设计理念 1.存储超大文件 这里的 “超大文件” 是指几百MB .GB甚至 TB级别的文件. 2.最高效的访问模式是一次写入.多次读取(流式数据访问)  HDFS存储的数据集作为hadoop的分析对象,在数据集生成后,长时间在此数据集上进行各种分析.每次分析都将设计该数据的大部分数据甚至全部数据,因此读取整个数据集的时间延迟比读取第一条记录的时间延迟更重要. 3.运

NUMA体系结构详解

1. NUMA的几个概念(Node,socket,core,thread) 对于socket,core和thread会有不少文章介绍,这里简单说一下,具体参见下图: 一句话总结:socket就是主板上的CPU插槽; Core就是socket里独立的一组程序执行的硬件单元,比如寄存器,计算单元等; Thread:就是超线程hyperthread的概念,逻辑的执行单元,独立的执行上下文,但是共享core内的寄存器和计算单元. NUMA体系结构中多了Node的概念,这个概念其实是用来解决core的分组