HDFS中的块大小默认为64MB,为什么说它如此之大,这是与磁盘块相比得出的。所以在了解HDFS块之前,我们需要了解下磁盘上的块。

磁盘块

每个磁盘都有默认的数据块大小,这是磁盘进行数据读写的最小单位。构建于单个磁盘之上的文件系统通过磁盘块来管理该文件系统中的块,该文件系统块的大小可以是磁盘块的整数倍。文件系统块一般为几千字节,而磁盘块一般为512字节。文件系统块大小对于需要读写文件的文件系统用户来说是透明的。尽管如此,系统仍然提供了一些工具(如df和fsck)来维护文件系统,它们对文件系统中的块进行操作。

HDFS块

HDFS块也有块的概念,但是大得多,默认为64MB。与单一磁盘上的文件系统相似,HDFS上的文件也被划分为块大小的多个分块(chunk),作为独立存储单元。但与其它文件系统不同的是,HDFS中小于一个块大小的文件不会占据整个块的空间。

为何HDFS中的块如此之大

HDFS的块比磁盘块大,其目的是为了最小化寻址开销。如果块设置得足够大,从磁盘传输数据的时间可以明显大于定位这个块开始位置所需的时间。这样,传输一个由多个块组成的文件的时间取决于磁盘传输速率。
我们来做一个速算,如果寻址时间为10ms左右,而传输速率为100MB/s,为了使寻址时间仅占传输时间的1%,我们需要设置块大小为100MB左右。而默认的块大小实际为64MB,但是很多情况下HDFS使用128MB的块设置。以后随着新一代磁盘驱动器传输速率的提升,块的大小将被设置得更大。
但是该参数也不会设置得过大。MapReduce中的map任务通常一次处理一个块中的数据,因此任务数太少(少于集群中的节点数量),作业的运行速度就会比较慢。

为什么HDFS中的块如此之大?相关推荐

  1. hadoop 修复hdfs中文件块错误 和文件修复 Error: java.io.IOException: Cannot obtain block length for LocatedBlock

    一:问题 Error: java.io.IOException: Cannot obtain block length for LocatedBlock Error: java.io.IOExcept ...

  2. Hadoop(八)Java程序访问HDFS集群中数据块与查看文件系统

    阅读目录(Content) 一.HDFS中数据块概述 1.1.HDFS集群中数据块存放位置 1.2.数据块(data block)简介 1.3.对分布式文件系统中的块进行抽象会带来很多好处 二.Jav ...

  3. 【问题】HDFS中块(block)的大小为什么设置为128M?

    一.为什么HDFS中块(block)不能设置太大,也不能设置太小? 如果块设置过大, 一方面,从磁盘传输数据的时间会明显大于寻址时间,导致程序在处理这块数据时,变得非常慢: 另一方面,mapreduc ...

  4. 【大数据作业02】HDFS中的名称节点和数据结点的具体功能

    试述HDFS中的名称节点和数据结点的具体功能 名称节点负责管理分布式文件系统的命名空间,记录每个文件中各个块所在的数据节点的位置信息: 数据节点是分布式文件系统HDFS的工作节点,负责数据的存储和读取 ...

  5. Hdfs NameNode中数据块、数据节点及副本状态概述

    HDFS集群以Master-Slave模式运行,主要有两类节点:一个Namenode(即Master)和多个Datanode(即Slave). ​ 在hdfs文件系统中,NameNode是HDFS中的 ...

  6. hdfs中8031是什么端口号_删了HDFS又能怎样?记一次删库不跑路事件

    一.事发背景 上个月的某一天,由于集群空间不足,公司有一位技术经理级别的大数据leader在通过跳板机在某个线上集群执行手动清理命令,疯狂地执行hadoop fs -rmr -skipTrash /u ...

  7. HDFS中block的大小

    block的大小与修改 Hadoop2.x/3.x版本中Block的默认大小为128M,早前版本中默认为64M,开发人员可以在hdfs-site.xml中添加如下标标签进行修改. <!-- hd ...

  8. HDFS全量块汇报(FBR)的限流机制

    文章目录 前言 HDFS全量块汇报(FBR)的性能问题 NameNode的FBR限流机制 BR Lease的管理控制 基于BR Lease的FBR限流逻辑 引用 前言 众所周知在HDFS中,DataN ...

  9. 你真的懂switch吗?聊聊switch语句中的块级作用域

      最近在代码中不小心不规范的,在switch里面定义了块级变量,导致页面在某些浏览器中出错,本文讨论以下switch语句中的块级作用域. switch语句中的块级作用域 switch语句中的块级作用 ...

最新文章

  1. 你需要了解的load和initialize
  2. z-index 用法
  3. 0基础学python难吗-零基础入门学习Python技术难不难?
  4. linux命令--VI命令详解(一)
  5. 2019宁波最重视的行业
  6. highcharts图表高级入门之polar:极地图的基本配置以及一些关键配置说明
  7. python将argv作为参数_在jupyter / ipython notebook中将命令行参数传递给argv
  8. linux windows 域,linux加入windows域之完美解决方案
  9. MATLAB把多行多列矩阵数据和文字写入txt文件
  10. java实现面向对象编程_java实现面向对象编程
  11. python程序可以在任何安装了解释器_Windows安装多个python解释器
  12. 十一:Cocos2d-x坐标系
  13. android开发mvp,Android开发模式之MVP
  14. [原] 内心深处唱的这首歌
  15. LRU原理和Redis实现
  16. CodeBlock 基本使用
  17. 2021新跨域问题:insecure private network requests
  18. Entry name ‘res/drawable-xhdpi-v4/ic_launcher.png‘ collided
  19. AUTOSAR MCAL解析: ADC
  20. JAVA打印指定长度的随机英文字母(小写)

热门文章

  1. 数据库学习笔记:事务的特性和隔离级别
  2. Lambda Expression
  3. DataV(对象类)展示8 ~ 20 °C
  4. 计算机考研专用邮件模板!复试/调剂联系导师邮件怎么写?
  5. 走进Spring Cloud之二 eureka注册中心(Greenwich版本)
  6. 微信新彩蛋太 6 了,满屏爱心合为一心,还可以炸屎...
  7. max3485和max485区别
  8. FIREBIRD使用经验总结
  9. word论文:参考文献字间距太大的处理方法
  10. Windows Server 2019 WEB和FTP服务器配置