1、选择 HDFS 存储数据,是因为 HDFS 具有以下优点:

(1) 高容错性

  1. 数据自动保存多个副本。它通过增加副本的形式,提高容错性。

  2. 某一个副本丢失以后,它可以自动恢复,这是由 HDFS 内部机制实现的,我们不必关心。

(2) 适合批处理

  1. 它是通过移动计算而不是移动数据。

  2. 它会把数据位置暴露给计算框架。

(3) 适合大数据处理

  1. 数据规模:能够处理数据规模达到 GB、TB、甚至PB级别的数据。

  2. 文件规模:能够处理百万规模以上的文件数量,数量相当之大。

  3. 节点规模:能够处理10K节点的规模。

(4) 流式数据访问

  1. 一次写入,多次读取,不能修改,只能追加。

  2. 它能保证数据的一致性。

(5) 可构建在廉价机器上

  1. 它通过多副本机制,提高可靠性。

  2. 它提供了容错和恢复机制。比如某一个副本丢失,可以通过其它副本来恢复。

2、HDFS 缺点:

(1) 不适合低延时数据访问;

  1. 比如毫秒级的来存储数据,这是不行的,它做不到。

  2. 它适合高吞吐率的场景,就是在某一时间内写入大量的数据。但是它在低延时的情况 下是不行的,比如毫秒级以内读取数据,这样它是很难做到的。

3、改进策略

(2) 无法高效的对大量小文件进行存储

  1. 存储大量小文件的话,它会占用 NameNode大量的内存来存储文件、目录和块信息。这样是不可取的,因为NameNode的内存总是有限的。

  2. 小文件存储的寻道时间会超过读取时间,它违反了HDFS的设计目标。 改进策略

(3) 并发写入、文件随机修改

  1. 一个文件只能有一个写,不允许多个线程同时写。

  2. 仅支持数据 append(追加),不支持文件的随机修改。

HDFS缺陷

Apache Hadoop HDFS从出现到现在经过10多年的发展,已经到了非常成熟的状态,广泛应用于业界,解决海量文件的存储需求。但随着数据量的增长,以及对于数据使用方式的多样化 ,HDFS的架构局限性就逐渐被放大,NameNode在大规模场景很容易成为瓶颈:

•元数据的扩展性:NameNode是一个中央元数据服务节点,也是集群管理节点,文件系统的元数据以及块位置关系全部在内存中。NameNode对内存的要求非常高,需要定制大内存的机器,内存大小也限制了集群扩展性。京东的NameNode采用内存512GB的机器,字节跳动的NameNode采用内存1TB的机器。此外,NameNode的堆分配巨大,京东的NameNode需要360GB的堆大小,对GC的要求比较高,京东定制化的JDK11+G1GC在GC时性能良好,但是一般规模的公司不具备维护JDK能力,该方案不具备普遍性。字节跳动把NameNode修改成C++版本,这样分配、释放内存都由程序控制,也达到了不错的性能,该方案仍然不具普遍性,因为开发和维护C++版本的NameNode也需要不小规模的团队。

•块汇报风暴:HDFS块大小默认128M,启动几百PB数据量的集群时,NameNode需要接受所有块汇报才可以退出安全模式,因此启动时间会达数小时。当集群全量块汇报、下线节点、balance集群存储,也会对集群元数据服务的性能造成影响,这些根本原因都是DataNode需要把所有块汇报给NameNode。

•全局锁:NameNode 有一把FSNamesystem全局锁,每个元数据请求时都会加这把锁。虽然是读写分开的,且有部分流程对该锁的持有范围进行了优化,但依然大问题。同时FSNamesystem内部的FSDirectory(Inode树)还存在一把单独的锁,用来保护整棵树以及BlockMap的访问和修改。

HDFS的优缺点和缺陷相关推荐

  1. hdfs通过接口退出安全模式_Hadoop之HDFS简介

    奇技指南HDFS作为运行在通用硬件上的分布式文件系统,和现有的分布式文件系统既有很多的共同点,也存在很多的差异.本文从HDFS是什么开始介绍,包括了HDFS架构.HDFS的读写.各个组件的作用.具体操 ...

  2. hdfs数据节点分发什么协议_分布式文件系统HDFS解析

    Hadoop 主要由HDFS和MapReduce 引擎两部分组成.最底部是HDFS,它存储Hadoop 集群中所有存储节点上的文件.HDFS 的上一层是MapReduce 引擎,该引擎由JobTrac ...

  3. 非常不错 Hadoop 的HDFS (Hadoop集群(第8期)_HDFS初探之旅)

    1.HDFS简介 HDFS(Hadoop Distributed File System)是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开 ...

  4. HDFS Federation(HDFS 联盟)介绍

    1. 当前HDFS架构和功能概述 我们先回顾一下HDFS功能.HDFS实际上具有两个功能:命名空间管理(Namespace management)和块/存储管理服务(block/storage man ...

  5. HDFS 基础部分详解

    精选30+云产品,助力企业轻松上云!>>> 上一篇文章 Hadoop 系列之 1.0和2.0架构 中,提到了 Google 的三驾马车,关于分布式存储,计算以及列式存储的论文,分别对 ...

  6. Hadoop 生态系列之 HDFS

    目前 Hadoop 系列文章的规划就是这样,持续补充完善中... 同时可以访问 :https://data.cuteximi.com Hadoop 生态系列之1.0和2.0架构 Hadoop 生态系列 ...

  7. Hadoop 系列之 HDFS

    Hadoop 系列之 HDFS 花絮 上一篇文章 Hadoop 系列之 1.0和2.0架构 中,提到了 Google 的三驾马车,关于分布式存储,计算以及列式存储的论文,分别对应开源的 HDFS,Ma ...

  8. Hadoop之HDFS简介

    女主宣言 HDFS作为运行在通用硬件上的分布式文件系统,和现有的分布式文件系统既有很多的共同点,也存在很多的差异.本文从HDFS是什么开始介绍,包括了HDFS架构.HDFS的读写.各个组件的作用.具体 ...

  9. 大数据之-Hadoop之HDFS_HDFS的优缺点---大数据之hadoop工作笔记0049

    然后我们来看这个HDFS的优缺点, 先看他的优点: 高容错性,前面我们说, 他默认给我们保存3份副本,每个文件都给我们保存3个副本. 如果3个副本中的某个副本挂掉了,他会再找一个节点,把内容copy过 ...

最新文章

  1. showdialog 尝试读取或写入受保护的内存_共享内存在不同系统的应用与优劣详解...
  2. Jenkins构建完成后通过SVN Publisher Plugin上传文件到指定的SVN(教程收集)
  3. 国内首个手机AR实景驾驶导航上线,还能识别车辆行人,搜狗地图出品
  4. 没学过python、但是还是有公司要-扎心!“我学了半年 Python,还是找不到工作”...
  5. 快速排序的实现及优化
  6. 2019ICPC(沈阳) (回文自动机+Palindrome Series优化dp)
  7. 佳博热敏条码打印机修改ip_高赋码热转印打印和热敏打印区别
  8. 深度学习pytorch--softmax回归(一)
  9. python 选择多个文件夹_如何同时选择多个文件?
  10. 入门级----测试的执行、环境的搭建、每日构建、测试记录和跟踪、回归测试、测试总结和报告...
  11. SQL中,like的SQL注入防止,使用预编译SQL(?)的写法
  12. AS技巧合集「调试技巧篇」
  13. Python:学习笔记之函数的递归
  14. C#:使用dsoframer.ocx控件实现内嵌office效果(详解)
  15. sql更新语句中update set from用法
  16. 经典书籍《征服市场的人》阅读心得
  17. python adb 实现对支付宝登录及后台监控
  18. 计算机休眠不播放音乐,电脑休眠后不能播放音乐怎么办
  19. Boosting(一)
  20. 完美解决: Wampserver64找不到msvcr120.dll,需要重新安装服务 亲测可用【简单高效】

热门文章

  1. 研究亥姆霍兹线圈轴线磁场分布
  2. HikariCP探活机制如何保证链接有效
  3. Ipad电容笔买原装还是平替?高性价比的ipad平替电容笔推荐
  4. matlab中如何读写txt,Matlab中读取txt文件的几种方法
  5. STM32F103+FFT+OLED25664的音乐频谱制作分享(继续干货)
  6. .md是什么文件_生信中常见的数据文件格式
  7. pytho自动发送微信消息
  8. oracle 12c 字符集修改 AL32UTF8 改为 ZHS16GBK
  9. web服务器角色源文件,IIS 7.5中提供的Web服务器(IIS)角色服务详请
  10. 体验 Chrome 开发者工具的 12个骚操作!