HDFS的优缺点
HDFS是一个分布式文件存储系统,前身来自于Google发布的大数据三驾马车之一GFS (Google File System)。
HDFS的优点:
1、高容错
hdfs具有很高的容错性,数据自动保存为多个副本,默认为三副本机制,还能够通过自己自定义副本数来提高容错性。
当某个节点的副本丢失后,可以通过其他的备份副本进行恢复。
2、块存储
hdfs中的文件是以块的形式进行存储的,hadoop2.x后的版本默认为128m为一块。
128m为一块是由最佳传输损耗原理来得到的数字,当一个文件大小为128m时此时传输读取的效率是最高的。
最佳传输损耗原理:
当读取一个文件的时候,所需要的时间分为两部分:寻址时间、传输时间。根据目前的技术水平,机械磁盘的寻址时间普遍在10ms左右,而传输时间取决于要读取文件的大小,读取的文件越大,所需要的传输时间越长,那么,一次读取多少文件效率最高呢?根据经验寻址时间占传输时间1% 的时候,是传输一个文件效率最高的。
3、适合处理大规模数据集
数据规模:能够处理数据规模达到 GB、TB 甚至 PB级别数据。
文件规模:能够处理百万规模以上的文件数量。
4、高可靠性
由于具有高容错性,所以集群可以部署在廉价的机器上,并且保证数据不会丢失。
HDFS的缺点:
1、不适合低延迟的数据访问
访问hdfs的数据是相对较慢的,无法做到像 mysql 那样的毫秒级别的读写数据。
2、不适合存储大量的小文件
所有存储在 hdfs上的文件都需要由 NameNode来管理元数据信息,每个 block块的元数据信息都会占用 150字节的内存空间,会增大 NameNode的负担。
例如同样存储10M的内容,采取副本数为3的备份机制,这10M放在一个文件中,所用到的元数据占用的内存为150*3=450字节,如果把这10M放到10个文件中,则占用150*10*3=4500字节,很明显,存储相同的内容,第二种方式占用的内存更多。
3、不支持并发写入以及随即修改
一个文件只能有一个用户写,不允许多个线程同时写入
仅支持数据的追加,不支持文件的随即修改
HDFS的优缺点的更多相关文章
- 大数据:Hadoop(HDFS 读写数据流程及优缺点)
一.HDFS 写数据流程 写的过程: CLIENT(客户端):用来发起读写请求,并拆分文件成多个 Block: NAMENODE:全局的协调和把控所有的请求,提供 Block 存放在 DataNode ...
- Hadoop 3、Hadoop 分布式存储系统 HDFS
HDFS是Hadoop Distribute File System 的简称,也就是Hadoop的一个分布式文件系统. 一.HDFS的优缺点 1.HDFS优点: a.高容错性 .数据保存多个副本 .数 ...
- 非常不错 Hadoop 的HDFS (Hadoop集群(第8期)_HDFS初探之旅)
1.HDFS简介 HDFS(Hadoop Distributed File System)是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开 ...
- 【转载 Hadoop&Spark 动手实践 2】Hadoop2.7.3 HDFS理论与动手实践
简介 HDFS(Hadoop Distributed File System )Hadoop分布式文件系统.是根据google发表的论文翻版的.论文为GFS(Google File System)Go ...
- [HDFS_1] HDFS 的概念和特性
0. 参考 HDFS你一定要知道,要考的 大数据开发实战:HDFS和MapReduce优缺点分析 SecondaryNamenode的作用详解 1. HDFS 是什么 HDFS :一种分布式文件系统, ...
- Hadoop1.x HDFS系统架构
1. HDFS中的一些概念1.1 数据块1.2 NameNode和DataNode1.2.1 管理者:Namenode1.2.1 工作者:Datanode1.3 Secondary Namenode1 ...
- 初识HDFS原理及框架
目录 HDFS是什么 HDFS的优缺点 HDFS的框架 HDFS的读写流程 HDFS命令 HDFS参数 1. HDFS是什么 HDFS(Hadoop Distributed File System)是 ...
- hdfs基本思想
1.hdfs的优缺点 (1)不适合大量小文件存储: (2)不适合并发写入,不支持文件随机修改:(只能append追加) (3)不支持随机读等低延时的访问方式 2.基本思想 主从结构 主节点, name ...
- 深入理解HDFS的架构和原理
(一) HDFS主要是用于做什么的? HDFS(Hadoop Distributed File System)是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处 ...
随机推荐
- 桥接模式(Bridge模式)
桥接模式的定义与特点 桥接(Bridge)模式的定义如下:将抽象与实现分离,使它们可以独立变化.它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度.通过上面的讲解,我们能很好 ...
- gin中获取查询字符串参数
package main import ( "github.com/gin-gonic/gin" "net/http" ) func main() { r := ...
- SpringBoot集成MongoDB之导入导出和模板下载
前言 自己很对自己在项目中集成MongoDb做的导入导出以及模板下载的方法总结如下,有不到之处敬请批评指正! 1.pom.xml依赖引入 <!-- excel导入导出 --> <de ...
- 笔记:Bridging the Gap Between Relevance Matching and Semantic Matching for Short Text Similarity Modeling
笔记:Bridging the Gap Between Relevance Matching and Semantic Matching for Short Text Similarity Model ...
- 使用Canny+hough实现钱币检测
目录 Canny边缘提取算法实现 霍夫变换实现 参考 这个是北京邮电大学<计算机视觉>的一门作业: Canny边缘提取算法实现 首先定义一个Canny类 其init函数是: class C ...
- 模拟dom结构
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 远程连接MySQL报错1045解决方案
MySQL远端操作步骤: 方法一: USE mysql: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH ...
- npm 查看一个包的版本信息
有了npm 我们能够简单的一段代码就下载我们需要的包,但是包是不断更新的, 所以我们要关注包的版本信息: 现在,假设我们需要 jquery ,但是jquery现在有很多版本,我们如何通过npm查看呢? ...
- TreeMap或者HashMap中的entrySet()方法
查看entrySet()源码 /** * Returns a {@link Set} view of the mappings contained in this map. * * <p> ...
- LAMP以及各组件的编译安装
LAMP以及各组件的编译安装 目录 LAMP以及各组件的编译安装 一.LAMP 1. LAMP概述 2. 各组件的主要作用 3. 平台环境的安装顺序 二.编译安装apache httpd 1. 关闭防 ...