1 HDFS的设计特点?

可以进行超大文件存储

对商用硬件要求不高

式数据访问:适合一次写入,多次读出的场景,适合用来做数据分析,并不适合用来做网盘应用等文件系统。

HDFS只支持单个写入者,而且文件的写入只能以“添加”方式在文件末尾写数据。

因为namenode的原因,不适合大量小文件的存储。

数据访问的延迟相对较高,不适合进行低延迟处理

对商业硬件要求低,可以再廉价的机器上运行。

2 HDFS 文件块大小问题?

块的大小设置原则:最小化寻址开销。

HDFS的块比磁盘的块大(磁盘的块一般为512字节),其目的是为了最小化寻址开销

然而真正实际开发中要把block设置的远大于128MB,比如存储文件是1TB时,一般把Block大小设置成512MB.但是也不能任意设置的太大,比如200GB一个,因为在MapReduce的map任务中通常一次只处理一个块中数据(切片大小默认等于block大小),如果设置太大,因为任务数太少(少于集群中的节点数量),那么作业的运行速度就会慢很多,此外比如故障等原因也会拖慢速度。

如何设置块的大小?

主要由以下考虑:

减少硬盘寻道时间(disk seek time):

减少Namenode内存消耗:

Map崩溃问题:

监管时间问题:

问题分解问题:

约束Map输出:

详细说明

减少硬盘寻道时间(disk seek time)

HDFS设计前提是支持大容量的流式数据操作,所以即使是一般的数据读写操作,涉及到的数据量都是比较大的。假如数据块设置过少,那需要读取的数据块就比较多,由于数据块在硬盘上非连续存储,普通硬盘因为需要移动磁头,所以随机寻址较慢,读越多的数据块就增大了总的硬盘寻道时间。当硬盘寻道时间比io时间还要长的多时,那么硬盘寻道时间就成了系统的一个瓶颈。合适的块大小有助于减少硬盘寻道时间,提高系统吞吐量。传输一个由多个块的组成的文件取决于磁盘传输速率。如寻址时间约为10ms,传输速率为100MB/S,为了使寻址时间仅占传输时间的1%,块的大小设置约为100MB,默认大小是64MB,现在在实际身缠中都是128MB了,随着新一代磁盘去东区传输速率的提升,块的大小将会被设置的更大。

减少Namenode内存消耗

对于HDFS,他只有一个Namenode节点,他的内存相对于Datanode来说,是极其有限的。然而,namenode需要在其内存FSImage文件中中记录在Datanode中的数据块信息,假如数据块大小设置过少,而需要维护的数据块信息就会过多,那Namenode的内存可能就会伤不起了。

Map崩溃问题:

系统需要重新启动,启动过程需要重新加载数据,数据块越大,数据加载时间越长,系统恢复过程越长。

监管时间问题:

主节点监管其他节点的情况,每个节点会周期性的把完成的工作和状态的更新报告回来。如果一个节点保持沉默超过一个预设的时间间隔,主节点记录下这个节点状态为死亡,并把分配给这个节点的数据发到别的节点。对于这个“预设的时间间隔”,这是从数据块的角度大概估算的。假如是对于64MB的数据块,我可以假设你10分钟之内无论如何也能解决了吧,超过10分钟也没反应,那就是死了。可对于640MB或是1G以上的数据,我应该要估算个多长的时间内?估算的时间短了,那就误判死亡了,分分钟更坏的情况是所有节点都会被判死亡。估算的时间长了,那等待的时间就过长了。所以对于过大的数据块,这个“预设的时间间隔”不好估算。

问题分解问题:

数据量大小是问题解决的复杂度是成线性关系的。对于同个算法,处理的数据量越大,它的时间复杂度也就越大。块的大小太大的话,一个map任务处理一个块,那任务数就变少了,作业运行速度也就变慢了。

约束Map输出:

在Map Reduce框架里,Map之后的数据是要经过排序才执行Reduce操作的。想想归并排序算法的思想,对小文件进行排序,然后将小文件归并成大文件的思想

linux数据块的大小不一样,HDFS块大小默认为什么是64MB(或者是128MB)相关推荐

  1. 第二课 大数据技术之Hadoop3.x的HDFS

    第二课 大数据技术之Hadoop3.x的HDFS 文章目录 第二课 大数据技术之Hadoop3.x的HDFS 第一节 HDFS概述 1.1 HDFS产出背景及定义 1.2 HDFS优缺点 1.3 HD ...

  2. 全方位揭秘!大数据从0到1的完美落地之HDFS块详解

    HDFS块详解 传统型分布式文件系统的缺点 现在想象一下这种情况:有四个文件 0.5TB的file1,1.2TB的file2,50GB的file3,100GB的file4:有7个服务器,每个服务器上有 ...

  3. 一步一步学linux操作系统: 32 输入与输出系统_ 块设备二_直接 I/O,缓存 I/O 与 块设备数据写入请求

    直接 I/O 与 缓存 I/O 可以参见 https://blog.csdn.net/leacock1991/article/details/108035136 对于 ext4 文件系统,最后调用的是 ...

  4. 【大数据】Hadoop (二) HDFS

    课程链接: 尚硅谷大数据Hadoop 3.x(入门搭建+安装调优)_哔哩哔哩_bilibili (Hadoop到底是干什么用的? - 知乎 (zhihu.com) 资料 Hadoop中文文档 (apa ...

  5. 大数据知识梳理(Hadoop、HDFS)(整理中。。。)

    大数据知识梳理(Hadoop.HDFS)(更新中...) 第1讲 大数据概述 1.1 大数据时代 1.2 大数据概念和影响 1.3 大数据的应用 1.4 大数据的关键技术 1.5 大数据与云计算.物联 ...

  6. Python +大数据-hadoop生态-hadoop(三)--Hadoop HDFS

    Python +大数据-hadoop生态-hadoop(三)–Hadoop HDFS 今日课程学习目标 理解分布式文件存储的概念与实现 掌握HDFS分块存储.副本机制等特性 学会shell操作HDFS ...

  7. 2021-12-30大数据学习日志——Hadoop离线阶段——HDFS

    学习目标 理解分布式文件存储的概念与实现 掌握HDFS分块存储.副本机制等特性 学会shell操作HDFS 掌握HDFS读写流程 理解NameNode元数据管理机制 理解SecondaryNameNo ...

  8. 大数据技术之Hadoop分布式文件系统HDFS系统知识整理(从入门到熟练操作)

    系列博客 1.大数据技术之Hadoop完全分布式集群搭建+Centos7配置连通外网和主机 2.大数据技术之Hadoop编译源码 3.大数据技术之Hadoop分布式文件系统HDFS系统知识整理(从入门 ...

  9. 学习大数据的第47天(HDFS以及Zookeeper)——HDFS的重要架构知识点以及zookeeper的安装和基本命令

    学习大数据的第47天(HDFS以及Zookeeper)--HDFS的重要架构知识点以及zookeeper的安装和基本命令 HDFS的知识点 HDFS文件块的大小 HDFS的写流程 自己的话总结一下: ...

最新文章

  1. 5G将如何推动未来十年智能城市的发展
  2. 你不一定知道的几个前端小知识
  3. Memcached 群集高可用性(HA)架构
  4. SAP UI5 get route - local version VS central version
  5. Linux学习 Unit 9
  6. http请求丢部分数据_温故知新,HTTP/2
  7. 学习Spring Boot:(二十七)Spring Boot 2.0 中使用 Actuator
  8. js判断是否为手机浏览器
  9. RINEX3文件中的toc,toe,IODE
  10. 2023年天津仁爱学院专升本报名确认缴费考试流程
  11. ​WPF CompositionTarget.Rendering和 DispatcherTimer​
  12. 60帧究级豪华观影体验!potplayer通过bluesky补帧!
  13. 英雄连的制作公司THQ历史
  14. NodeBB – 基于 Node.js 的开源论坛系统
  15. 2012文件服务器 读写日志,管理用户访问日志记录记录
  16. Java导出多个excel并压缩下载
  17. 如何储存图片方法jpg格式png格式#ps教程#ps抠图
  18. php二手房系统,phpwind房产新版上线 抢先体验二手房新功能
  19. 2020第五届上海第二工业大学新生程序设计竞赛(Java题解)
  20. 离散控制 discrete control

热门文章

  1. 【HDU 4547 CD操作】LCA问题 Tarjan算法
  2. ASP截取字符 截取字符之间的字符
  3. java设计模式:适配器设计模式
  4. 虚拟机迁移及虚拟机高可用方案
  5. [CSS]CSS:类目之间的竖线问题
  6. delphi获取当前计算机所有盘符
  7. 神不知鬼不觉地置换 XP用户密码
  8. 大数据开发hadoop核心的分布式消息系统:Apache Kafka 你知道吗
  9. 移动html特殊链接【打电话_发短信_发邮件】
  10. BZOJ 1815: [Shoi2006]color 有色图 [Polya DFS 重复合并]