HDFS分布式文件系统简介
2018-03-27 14:18
621 查看
HDFS(Hadoop Distributed File System)Hadoop 分布式文件系统
10T的一个文件数据存储到多台服务器上,每个服务器担任一部分存储任务,这些多台服务器通过一个文件系统组织起来对外界提供统一的服务,那么客户端访问这个10T的文件的时候,就感觉后台是一个服务器在提供服务,那么我们把这个机制就叫做分布式,把运行在多台服务器上的这个文件系统就叫做分布式文件系统。
1 HDFS名词简介
block:
NameNode:
SecondaryNameNode:
DataNode:
NodeManager :
ResouceManager:
2 HDFS优点
3 HDFS缺点
4 HDFS特性
5 HDFS设计目标
6 HDFS数据存储
HDFS采用Master/Slave主从架构来存储数据,这种架构主要由四个部分组成。分别为HDFS Client、NameNode、DataNode和Secondary NameNode
Client:客户端
NameNode:master
4000
管理者
DataNode:Slave节点,NameNode 下达命令,DataNode 执行实际的操作
SecondaryNameNode:辅助元数据
7 HDFS功能概述
HDFS具有两个功能:命名空间管理(Namespace management)和块/存储管理服务(block/storage management)。
1.命名空间管理
HDFS的命名空间包含目录、文件和块的信息。
指命名空间支持对HDFS中的目录、文件和块做创建、修改、删除、列表文件和目录等基本操作。
2.块/存储管理
在块存储服务中包含两部分工作:块管理和物理存储。这是一个更通用的存储服务。其他的应用可以直接建立在Block Storage上,如HBase,Foreign Namespaces等。
基于流数据模式访问 就是可以字节序列化的数据,java.io.Serializable接口 分布式文件系统处理的数据必须是流数据,可以写IO操作的数据 以128MB的数据块存储文件 其中每一个存储节点上都有一个DataNode进程,由NameNode来进行协调。
10T的一个文件数据存储到多台服务器上,每个服务器担任一部分存储任务,这些多台服务器通过一个文件系统组织起来对外界提供统一的服务,那么客户端访问这个10T的文件的时候,就感觉后台是一个服务器在提供服务,那么我们把这个机制就叫做分布式,把运行在多台服务器上的这个文件系统就叫做分布式文件系统。
1 HDFS名词简介
block:
基本存储单位,128M,默认备份3份 块的大小(hadoop2.0 128M):决定了资源,文件系统读写数据的吞吐量,应用程序寻址的速度 大数据的块之所以设置的如此之大,是为了提高数据的吞吐量和降低数据寻址的时间 每一个block块对应一个Map的任务(线程)
NameNode:
维护HDFS文件系统,存储文件数据的元信息。处理来自客户端的对HDFS的各种操作的交互反馈 镜像文件(Namespace image)和操作日志文件(edit log) 这些信息在系统启动时从数据节点重建.被Cache在RAM中 这两个文件也会被持久化存储在本地硬盘。
SecondaryNameNode:
周期性将元数据节点的命名空间镜像文件和修改日志进行合并,并实现fsimage的备份 日志与镜像的定期合并的作用: 如果Namenode节点故障,namenode下次启动的时候,会把fsimage加载到内存中 如果没有合并机制:edits log是每一次操作的记录,namenode要对每一次操作进行重写 导致操作很耗时(namenode容错机制)
DataNode:
文件系统的工作节点,根据客户端或是namenode的调度存储和检索数据 并且定期向namenode发送他们所存储的块(block)的列表。 DataNode启动时会向NameNode报告当前存储的数据块信息,后续也会定时报告修改信息 DataNode之间会进行通信,复制数据块,保证数据的冗余性
NodeManager :
对它所在的节点上的资源的管理(cpu、内存、磁盘的利用情况) 定期向resourcemanager进行汇报该节点上的资源利用信息 监督Container(容器)的生命周期 监控每个Container的资源使用(内存、CPU等)情况 追踪节点健康状况,管理日志和不同应用程序用到的附属服务(auxiliary service)。
ResouceManager:
负责集群中所有资源的统一管理和分配 接收来自各个节点(NodeManager)的资源汇报信息 并把这些信息按照一定的策略分配给各个应用程序(实际上是ApplicationManager)。
2 HDFS优点
1)适合大数据处理 能够处理百万规模以上的文件数量( GB、TB、PB级数据),能够处理10K节点的规模 2)处理非结构化的数据 可处理结构化、半结构化、非结构化的数据(语音、视频、图片),80% 的数据都是非结构化的数据 3)流式访问数据 一次写入,多次读取。文件一旦写入不能修改,只能追加。它能保证数据的一致性。 4)运行于廉价的商用机器集群上 它通过多副本机制,提高可靠性。一旦出现故障也不会影响正常的业务处理,可以通过其它副本来恢复。
3 HDFS缺点
1)不适合处理低延迟的数据访问 HDFS是为了处理大型数据集分析任务的,主要是为了达到高的数据吞吐量而设计的 HBase适合做低延迟的数据访问BigTable 2)无法高效的存储大量小文件 当文件以block块的形式进行存储时,block块的位置会存储在namenode节点的内存中 不论存储大文件还是小文件,每个文件对应的单条block的块信息大小是一致的 而NameNode的内存总是有限的。小文件存储的寻道时间会超过读取时间,它违反了HDFS的设计目标。 (这里的小文件是指小于HDFS系统的Block大小的文件,默认是64M) 3)不支持并发写入和任意的修改 一个文件同时只能有一个写,不允许多个线程同时写。 仅支持数据 append(追加),不支持文件的随机修改。以追加的形式达到修改的目的
4 HDFS特性
1)高容错,可扩展性及可配置性强 数据自动保存多个副本。它通过增加数据冗余来提高容错性。某一个副本丢失以后,它可以自动恢复 可扩展:可以不断的添加新的datanode 2)跨平台 Java语言开发的,HDFS支持多个平台Windows 3)shell命令接口 hadoop fs -put 上传,把本地Linux文件系统的文件,上传到HDFS文件系统中 hadoop fs -ls hdfs://master:9000/ 查看HDFS文件系统根目录(/)下的文件 ...... 4)机架感知功能 副本的存放,第一个存到rack1,第二个就会选择不同于rack1的其他的rack上面存储 /etc/hosts 5)负载均衡 理想状态下,集群中每个服务器上面存储数据都是均匀的。但在实际当中,经常会出现数据偏移 start-balancer.sh -t 10% 6)Web界面 http://master:18088 yarn http://master:50070 hdfs 能够查看hdfs文件系统中的文件信息
5 HDFS设计目标
1)监测和快速恢复硬件故障 监测:立刻会监测到坏的块--->上报到主节点RM 单独启动一个进程:hadoop-daemon.sh start namenode/datanode/resourcemanager/nodemanager 2)流式数据访问 重视的是吞吐量,而不是数据处理的速度。实现批处理 3)大规模数据集 支持大文件存储,一个单一的HDFS实例能支撑数以千万计的文件 4)简化一致性访问模式 一次写入,多次读取 5)移植性强 移动计算的代价,要比移动数据的代价低
6 HDFS数据存储
HDFS采用Master/Slave主从架构来存储数据,这种架构主要由四个部分组成。分别为HDFS Client、NameNode、DataNode和Secondary NameNode
Client:客户端
1、文件切分。文件上传 HDFS 的时候,Client 将文件切分成 一个一个的Block,然后进行存储。 2、与 NameNode 交互,获取文件的位置信息。 3、与 DataNode 交互,读取或者写入数据。 4、Client 提供一些命令来访问和管理HDFS等操作。
NameNode:master
4000
管理者
1、管理 HDFS 的名称空间。数据块(Block)映射信息。配置副本策略 2、处理客户端读写请求。 fsimage与edits是NameNode的两个重要文件。 1)fsimage:元数据镜像文件(存储文件系统的目录树,比如说有哪些目录,每个目录有哪些文件...) 2)edits:元数据操作日志(存储针对目录树的修改操作,比如你删除了某个文件或者增加了某个文件)
DataNode:Slave节点,NameNode 下达命令,DataNode 执行实际的操作
1、存储文件。 2、执行数据块的读/写操作。
SecondaryNameNode:辅助元数据
并非NameNode 的热备(热备从广义上讲,就是服务器高可用应用的另一种说法)。 当NameNode 挂掉的时候,它并不能替换 NameNode 并提供服务。 1、辅助 NameNode,执行fsimage和edits的定期合并 2、在紧急情况下,可辅助恢复 NameNode。
7 HDFS功能概述
HDFS具有两个功能:命名空间管理(Namespace management)和块/存储管理服务(block/storage management)。
1.命名空间管理
HDFS的命名空间包含目录、文件和块的信息。
指命名空间支持对HDFS中的目录、文件和块做创建、修改、删除、列表文件和目录等基本操作。
2.块/存储管理
在块存储服务中包含两部分工作:块管理和物理存储。这是一个更通用的存储服务。其他的应用可以直接建立在Block Storage上,如HBase,Foreign Namespaces等。
块管理: A) 处理DataNode向NameNode注册的请求,处理datanode的成员关系。 B) 处理来自DataNode周期性的心跳报告,维护块的位置信息。 C) 处理与块相关的操作:块的创建、删除、修改及获取块信息。 D) 管理副本放置(replica placement)和块的复制及多余块的删除。 物理存储: Data Node把块存储到本地文件系统中,对本地文件系统的读写。
相关文章推荐
- 分布式文件系统HDFS简介
- HDFS简介,YARN、MapReduce原理介绍
- Hadoop分布式文件系统HDFS——Flume和Sqoop导入数据,distcp并行复制,Hadoop存档
- 分布式文件系统:HDFS基础与应用
- Hadoop系列之七:分布式文件系统HDFS(2)
- HDFS分布式文件系统资源管理器开发总结
- 各种分布式文件系统简介
- hadoop 学习笔记 三 ---HDFS hadoop分布式文件系统
- Hdfs简介
- Hadoop 学习总结之一:HDFS简介
- HDFS 简介 和常用命令的使用
- HDFS 和YARN HA 简介
- GlusterFS分布式文件系统使用简介
- HDFS简介
- 分布式文件系统与HDFS笔记
- 分布式文件系统MogileFS简介
- Hadoop分布式文件系统HDFS的工作原理详述
- Hadoop系列一HDFS简介
- Hadoop分布式文件系统(HDFS)和OpenStack对象存储(Swift)的技术差异
- HDFS简介