HDFS基本概念和特性的详情了解及优缺点
HDFS
- 前言
HDFS是Hadoop Distributed File System的简称,是Hadoop抽象文件系统的一种实现。是一个用Java实现、分布式的、可扩展的文件系统。Hadoop抽象文件系统可以与本地系统、Amazon S3等集成,甚至可以通过Web协议(webhsfs)来操作。
- HDFS的文件分布在集群机器上,同时提供副本进行容错及可靠性保证。例如客户端写入读取文件的直接操作都是分布在集群各个机器上的,没有单点性能压力。
- Hadoop Distributed File System
1.易于扩展的分布式文件系统
- 运行在大量普通廉价机器上,提供容错机制
- 为大量用户提供性能不错的文件存取服务
- HDFS的主要功能是做存储用的,把每一份数据创建多个副本、做复制,默认的副本数是3份。
- HDFS设计目标
1.自动快速检测应对硬件错误
2.流式访问数据
3.移动计算比移动数据本身更划算 io
4.简单一致性模型
5.异构平台可移植 - 设计思想
分而治之:将大文件、大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析;对同一个文件进行联合管理。
每个小文件做冗(rǒng)余备份,并且分散到不同的服务器中,做到高可靠不丢失。 - 在大数据中的作用:
为各类分布式运算框架(如:mapreduce,spark,tez,……)提供数据存储服务 - 重点概念
文件切块,副本存放,元数据
在HDFS的架构中,主要有三个角色:NameNode(元数据节点,NN)、DataNode(从数据节点,DN)、SecondaryNameNode(从数据节点,snn)。
数据:数据内容
元数据:文件名称 大小 所属人 地址 128k
架构中三个角色的作用
NameNode:是Master节点,集群老大
(1)管理文件系统中文件的元数据信息;
(2)维护文件到块、块到节点的对应关系;
(3)维护用户对文件的操作信息(增删改查)。DataNode:Slave节点
(1)负责存储客户端(client)发来的数据块block;
(2)执行数据块的读写操作。SecondaryNameNode:严格来说并不是NameNode备份节点,主要给NameNode分担压力
(1)周期性的将元数据节点的fsimage(文件系统目录树)和fsedits(文件系统元数据操作日志)合并,以防止日志文件过大。
(2)合并后的fsimage在从元数据节点保存了一份,以防止元数据节点失败时恢复。
- 设计假设和目标
- 硬件错误:数量众多的廉价机器使得硬件错误成为常态。
- 数据流访问:应用以流的方式访问数据;设计用于 数据的批量处理,而不是低延时的实时交互处理。放弃全面支持POSIX。
- 大数据集:典型的HDFS上的一个文件大小是G或T数量级的,支持一个云中文件数量达到千万数量级。
- 简单的相关模型:假定文件一次写入多次读取。未来可能支持Appending-write的模型。
- 移动计算比移动数据便宜:一个应用请求的计算,离它操作的数据越近就越高效。
- 多种软硬件平台中的可移植性
概念和特性
HDFS 是一个 文件系统,用于存储文件,通过统一的命名空间—目录树来定位文件
其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色;
HDFS核心概念1.Blocks
物理磁盘中有块的概念,磁盘的物理Block是磁盘操作最小的单元,读写操作均以Block为最小单元,一般为512 Byte。文件系统在物理Block之上抽象了另一层概念,文件系统Block物理磁盘Block的整数倍。通常为几KB。Hadoop提供的df、fsck这类运维工具都是在文件系统的Block级别上进行操作。
HDFS的Block块比一般单机文件系统大得多,默认为128M。HDFS的文件被拆分成block-sized的chunk,chunk作为独立单元存储。比Block小的文件不会占用整个Block,只会占据实际大小。例如, 如果一个文件大小为1M,则在HDFS中只会占用1M的空间,而不是128M。
2.HDFS的Block为什么这么大?
是为了最小化查找(seek)时间,控制定位文件与传输文件所用的时间比例。假设定位到Block所需的时间为10ms,磁盘传输速度为100M/s。如果要将定位到Block所用时间占传输时间的比例控制1%,则Block大小需要约100M。
但是如果Block设置过大,在MapReduce任务中,Map或者Reduce任务的个数 如果小于集群机器数量,会使得作业运行效率很低。3.Block抽象的好处
block的拆分使得单个文件大小可以大于整个磁盘的容量,构成文件的Block可以分布在整个集群, 理论上,单个文件可以占据集群中所有机器的磁盘。
Block的抽象也简化了存储系统,对于Block,无需关注其权限,所有者等内容(这些内容都在文件级别上进行控制)。
Block作为容错和高可用机制中的副本单元,即以Block为单位进行复制。
- 重要特性如下:
(1)HDFS中文件在物理上是分块存储(block),块的大小可以通过配置参数(dfs.blocksize)来规定,默认大小在hadoop2.x 版本中128M,l老版本中是64M
(2)HDFS 文件系统会给客户端提供一个统一的抽象目录树,客户端通过路径来访问文件,形如:hdfs://hadoop01:9000/software/hadoop-2.6.5-centOS-6.7.tar.gz
(3)**目录结构及文件分块信息(元数据)**的管理由namenode 节点承担
namenode 是HDFS集群主节点,负责维护整个hdfs 文件系统的目录树,以及每一个路径(文件)所对应的block块信息(block的id,及所在的datanode服务器)
(4)文件的各个block的存储管理由datanode节点承担
datanode是HDFS集群从节点,每一个block都可以在多个datanode上存储多个副本(副本数量也可以通过参数设置dfs.replication)默认是3份
(5)HDFS是设计成适应一次写入,多次读出的场景,且不支持修改
HDFS的优点
(1)高可靠性:hadoop按位存储和处理数据的能力值得人们信赖
(2)高扩展性:hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
(3)高效性:hadoop 能够在节点之间动态地移动数据,并保证各个节点的动态平衡1,因此处理速度非常快。
(4)高容错性:hadoop 能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。(1)可构建在廉价机器上;
(2)高容错性;
(3)适合批处理;
(4)适合大数据处理;
(5)流式文件访问。HDFS的缺点
(1)不适合低延迟数据访问对延时要求在毫秒级别的应用,不适合采用HDFS。HDFS是为高吞吐数据传输设计的,因此可能牺牲延时HBase更适合低延时的数据访问。
(2)无法高效存储大量小文件
文件的元数据(如目录结构,文件block的节点列表,block-node mapping)保存在NameNode的内存中, 整个文件系统的文件数量会受限于NameNode的内存大小。
经验而言,一个文件/目录/文件块一般占有150字节的元数据内存空间。如果有100万个文件,每个文件占用1个文件块,则需要大约300M的内存。因此十亿级别的文件数量在现有商用机器上难以支持。(3)不支持多用户写入及任意修改文件
HDFS采用追加(append-only)的方式写入数据。不支持文件任意offset的修改。不支持多个写入器(writer)。
为什么HDFS不适合存储小文件:
(1)所有的元数据都是存储在NameNode内存中的,而一个NameNode节点的内存是有限的;
(2)小文件的存取占用了大量的NameNode内存,导致寻道时间超过了读取时间;
(3)NameNode存储block数目是有限的。
一个block元信息消耗大约150byte内存,加入存储一亿个block,则大约需要20GB内存。如果一个文件大小为10KB,则一亿个文件大小仅为1TB,但NameNode就要消耗20GB内存。
HDFS基本概念和特性的详情了解及优缺点相关推荐
- hadoop分布式文件系统hdfs的概念和特性
首先,它是一个文件系统. 有一个统一的命名空间--目录树, 客户端访问hdfs文件时就是通过指定这个目录树中的路径来进行 其次,它是分布式的,由很多服务器联合起来实现功能: hdfs文件系统会给客户端 ...
- 深圳大数据培训:HDFS基本概念
深圳大数据培训:HDFS基本概念 1.1 HDFS的介绍 源自于Google的GFS论文 发表于2003年10月 HDFS是GFS克隆版 ,HDFS的全称是Hadoop Distributed Fil ...
- 函数概念与特性——反函数、复合函数
目录 函数概念与特性 反函数 复合函数 函数概念与特性 设r与y是两个变量,D是一个给定的数集,若对于每个值r∈D,按照一定的法则,有一个确定的值y与之对应,则称y为r的函数,记作 y=f(.x).称 ...
- vue系列:Vue核心概念及特性 (一)
大家好,我是前端岚枫,一枚二线城市的程序媛,下半年对于我们来说是比较特殊的几个月,7月底,郑州出现好多年不遇的水灾,没法出行,在家休息,8月出现了疫情,在家办公一个月,9月疫情过去,终于能来公司上班了 ...
- 面向对象一类与对象的概念与特性
面向对象程序设计(Object-oriented programming,OOP) 一.类与对象 类(class): 对一类具有相同 属性的对象的 抽象.类的定义包含了数据的形式以及 对数据的操 ...
- Hadoop:HDFS的概念理解和体系架构-成都加米谷大数据分享
HDFS是什么? HDFS 全称 Hadoop Distributed File System ,简称HDFS,是一个分布式文件系统.它是谷歌的GFS提出之后出现的另外一种文件系统.它有一定高度的容错 ...
- Linux DRM(二)基本概念和特性
在<Linux DRM (一) Display Server>我们了解了 DRM 诞生的历史缘由. 本篇我们朝着 DRM 本尊再走几步,先介绍几个 DRM 的基本概念. 一.楔子 上篇文章 ...
- HBase的详细介绍(概念以及特性)
1 什么是hbase HBASE是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBASE技术可在廉价PC Server上搭建起大规模结构化存储集群. HBASE的目标是存储并处理大型的数 ...
- 彷徨 | HBase的详细介绍(概念以及特性)
1.什么是hbase HBASE是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBASE技术可在廉价PC Server上搭建起大规模结构化存储集群. HBASE的目标是存储并处理大型的数 ...
最新文章
- 自我认为挺全面的【Web Service渗透测试总结】
- Python:langdetect和langid检测语言类型
- vim支持nginx语法高亮
- python随机抽签列表中的同学值日_神奇的大抽签--Python中的列表_章节测验,期末考试,慕课答案查询公众号...
- android module 引用libs里面的so文件_Android中的JNI开发,你了解多少?
- 写帮助大家学习的小框架
- 正点原子操作过程中芯片总是出错
- 服务器中用于接收电子邮件,如何使用我的邮件服务器在 Odoo 中发送和接收电子邮件...
- EasyExcel导出excel(写)
- 纯CSS在线气泡提示生成工具 - CSS ARROW PLEASE!
- 全国大学FTP列表!绝对经典!!!
- Hookswork多帐户跨平台MT4跟单软件的十二大优势:
- 树莓派usb免驱摄像头报错
- 金蝶k3wise 核算项目、辅助资料
- 用Python蹭别人家图片接口,做一个【免费图床】吧
- FX5U 结构体编程
- word批注怎么删除计算机名字,word 2007 如何删除批注者姓名?
- 尚硅谷nginx学习
- MySQL深入浅出之索引
- PMP之项目成本管理
热门文章
- SAP HANA Cloud 简介
- SAP Fiori Elements 公开课第一单元概要介绍
- Angular 里 unknown 和 any 的区别
- SAP Spartacus的site context配置
- 如何根据SAP Spartacus的页面快速找到实现的Angular Component
- 桃李春蛋糕的配料之一 - 蛋糕预拌粉
- SAP Data Intelligence API执行出错的排错之道
- SAP CRM和Cloud for Customer的扩展字段元数据
- SAP Odata filter的语法
- sap-statistics in SAP UI5 http roundtrip