hdfs
简单说是分布式的文件系统
一、hdfs的角色划分
client:分block
NameNode:是Master节点。管理数据块映射;处理客户端的读写请求;配置副本策略;管理HDFS的名称空间;
SecondaryNameNode:是一个小弟,分担大哥namenode的工作量;是NameNode的冷备份;合并fsimage和fsedits然后再发给namenode。
DataNode:Slave节点,干活的。负责存储client发来的数据块block;执行数据块的读写操作。
fsimage:元数据镜像文件(文件系统的目录树。)
edits:元数据的操作日志(针对文件系统做的修改操作记录)
fsimage+edits 类比数据库中的数据表和日志表
namenode内存中存储的是fsimage+edits。
SecondaryNameNode默认1小时,从namenode上,获取fsimage和edits来进行合并,然后再发送给namenode。减少namenode的工作量。
二、启动过程
http://blog.csdn.net/amber_amber/article/details/38268407
1、namenode
1》Server成员的构造(用于RCP)
2》FSNameSystem的构造
核心数据结构包括:
l blocksMap:map,保存数据块block相关的映射关系,包括文件与块,块与datanode的映射等。
l curruptReplicasMap:保存所有损坏的块,所有副本都损坏。
l datanodeMap:曾近连接过的所有的datanode,是全集。
l recentInvalidateSets:最近失效的block。
l excessReplicateMap:机器与机器上多余的block的映射,这些block等待被删除。
l Heartbeats:当前发送心跳包的datanode,也就是alive的datanode。
FSDirectory对象:这里存放着文件系统的层次结构。
过程:初始化blocksMap等数据结构,加载fsimage文件到类FSImage中,读取edits文件,利用fsimage和edits构造文件系统层次结构。
3》启动后台守护进程
l PendingReplicaitonBlocks$PendingReplicationMonitor: 监控block的copy过程
l FSNamesystem$HeartbeatMonitor,心跳包的检测
l FSNamesystem$ReplicationMonitor: 监控复本数量,如果不足,就copy。
l LeaseManager$Monitor:控制写请求,文件不能同时多人写。
l DecommissionManager$Monitor:处理数据节点的退役
2、启动datanode
1》获取并设置各种配置信息,整理自己的block信息并进行封装
2》从namenode获取namespaceID, version以及StorageID等信息
3》datanode向namenode注册。
向namenode发送服务地址,信息查询端口,客户端访问端口以及datanodeID等,还包括block_report块数据;FSNameSystem先验证该datanode是否被允许挂载(通过dfs.hosts列表验证),然后把datanode数据映射到元数据中,这里主要是获取block_report块与datanode的映射关系,添加到BlocksMap中[hx1] ,然后再把这个datanode添加到heartsbeats中进行监控。
4》启动datanode线程。周期性向namenode发送block_Report和heartbeats,同时接受namenode的指令。
3、Secondary namenode的启动
注册到namenode,并且从namenode同步当前的fsimage,edits等文件信息;启动secondary namenode上用于轮训的进程,定期执行检查点的创建操作。
三、写操作的流程
http://www.cnblogs.com/laov/p/3434917.html
1、client通知namenode,获得datanodes
2、具体写每个block和package(内部复制)
3、写别的block
4、通知nn结束
相关推荐
HDFS 概述及架构 HDFS(Hadoop Distributed File System)是一种分布式文件管理系统,用于存储和管理大规模数据。HDFS 的产生背景是随着数据量的增加,单个操作系统无法存储和管理所有数据,需要分布式文件管理系统...
随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是...HDFS只是分布式文件管理系统中的一种。
【1】HDFS概述 HDFS,全称Hadoop Distributed File System,是为解决大数据存储问题而诞生的分布式文件系统。随着互联网的发展,数据量呈现爆炸性增长,单个操作系统无法容纳并有效管理如此庞大的数据。因此,人们...
1.1 HDFS概述 1 1.1.1 HDFS体系结构 1 1.1.2 HDFS基本概念 2 1.2 HDFS通信协议 4 1.2.1 Hadoop RPC接口 4 1.2.2 流式接口 20 1.3 HDFS主要流程 22 1.3.1 HDFS客户端读流程 22 1.3.2 HDFS客户端写流程...
HDFS概述与架构 HDFS(Hadoop Distributed File System)是Apache Hadoop的核心子项目,基于Google File System论文,旨在解决大规模数据存储问题。它是一个分布式文件系统,能够处理大量数据的存储和处理需求。 ...
#### 一、HDFS概述 Hadoop Distributed File System(HDFS)是Apache Hadoop项目的核心组件之一,它为海量数据提供了高吞吐量的数据访问,非常适合大规模数据集的应用场景。HDFS被设计成适合运行在商用硬件上,因此...
HDFS概述 HDFS是Hadoop生态系统中的分布式文件系统,旨在提供高可扩展性、可靠性和高性能的数据存储解决方案。HDFS具有以下特点: * 分布式存储:HDFS将数据存储在多个节点上,从而提供了高可扩展性和可靠性。 * ...
一、HDFS 概述 HDFS(Hadoop Distributed File System)是 Hadoop 平台的核心组成之一。它是一个分布式文件系统,能够存储大量的数据,并提供高可靠性和高性能的数据访问。 二、HDFS 的访问方式 HDFS 的访问方式...
#### 一、HDFS概述 **1.1 HDFS产出背景及定义** HDFS(Hadoop Distributed File System),即Hadoop分布式文件系统,是为了解决大规模数据处理的问题而设计的一种分布式文件系统。HDFS能够支持超大数据集的存储,...
1.HDFS 概述 HDFS 是 Hadoop 应用程序中使用的主要分布式存储系统。它由一个 Namenode 和多个 Datanode 组成,负责管理文件系统的元数据和存储实际的数据。Namenode 负责管理文件系统的元数据,而 Datanode 负责...
#### 一、HDFS概述 HDFS(Hadoop Distributed File System)是Hadoop项目的核心组成部分之一,旨在提供一种高吞吐量的访问方式来存储大量的数据集,特别适合运行在由廉价商用硬件组成的大型集群上。HDFS的设计目标...
#### 一、HDFS概述与特性 **Hadoop Distributed File System (HDFS)** 是Hadoop项目的核心之一,专为大规模数据集设计。它具有以下几个显著特点: 1. **副本机制与容错性:** - HDFS能够自动保存数据的多个副本,...
#### HDFS 概述 HDFS(Hadoop Distributed File System)是一种专为大规模数据处理设计的分布式文件系统。它具有高度容错性、可扩展性和高吞吐率等特点,非常适合存储和处理大规模数据集。 #### HDFS 的优势 1. **...
本模块共分为三个教学单元,分别是HDFS概述、HDFS Shell基本操作和HDFS Java API应用,总计10学时。 **教学单元1:HDFS概述(2课时)** 在这一单元,首先介绍了HDFS的基本概念,包括其设计目的和主要特性。HDFS是一...
**HDFS概述** HDFS(Hadoop Distributed File System)是Apache Hadoop项目的核心组件,它是一种分布式文件系统,设计用于处理大规模数据集。HDFS基于谷歌的GFS(Google File System)理念,旨在提供高容错性和高...
#### 一、HDFS概述与分布式文件系统概念 Hadoop分布式文件系统(HDFS)作为Hadoop项目的核心组成部分之一,它为海量数据提供了高吞吐量的数据访问,非常适合大规模数据集的处理。HDFS的设计目标是在商用硬件上实现...
#### 一、Hadoop HDFS概述 Hadoop是一种分布式计算框架,主要用于处理大规模数据集。它由多个组件组成,其中最核心的是Hadoop Distributed File System (HDFS) 和 MapReduce。HDFS是一个高度可扩展的文件系统,用于...
#### 一、HDFS概述 **HDFS**,即 **Hadoop Distributed File System**,是一种面向大规模数据处理的分布式文件系统,它源自于Google的GFS论文。该论文发表于2003年10月,HDFS作为GFS的一个开源克隆版,继承了GFS的...