大数据 - Hadoop系列《五》- HDFS文件块大小及小文件问题

系列文章:

大数据- Hadoop入门-CSDN博客

大数据 - Hadoop系列《二》- Hadoop组成-CSDN博客

大数据 - Hadoop系列《三》- HDFS(分布式文件系统)概述_大量小文件的存储使用什么分布式文件系统-CSDN博客

大数据 - Hadoop系列《三》- MapReduce(分布式计算引擎)概述-CSDN博客

大数据 - Hadoop系列《四》- MapReduce(分布式计算引擎)的核心思想-CSDN博客

目录

5.1 HDFS文件块大小(面试题)

问题:能不能将块设置的小一些?

问题:不能过小,那能不能过大?

5.2 小文件问题

2. 小文件过多会造成的问题

3. 小文件的解决办法

🥙3.1 使用Hadoop Archive(HAR)将小文件进行归档

🥙3.2 使用SequenceFile合并小文件

🥙3.3 使用CombineFileInputFormat合并小文件:


5.1 HDFS文件块大小(面试题)

HDFS中的文件在物理上是分块存储(Block), 块的大小可以通过配置参数(dfs blocksize)来规定,默认大小在Hadoop2x/3x版本中是128M,1x版本中是64M.

问题:能不能将块设置的小一些?

理论上是可以的,但是如果设置的块大小过小,会占用大量的namenode的元数据空间,而且在读写操作时,加大了寻址时间,所以不建议设置的过小

问题:不能过小,那能不能过大?

不建议,因为设置的过大,传输时间会远远大于寻址时间,增加了网络资源的消耗,而且如果在读写的过程中出现故障,恢复起来也很麻烦,所以不建议

总结:HDFS块的大小设置主要取决于磁盘传输速率

5.2 小文件问题

1. 小文件是指文件大小明显小于hdfs上块大小的文件

2. 小文件过多会造成的问题

  1. HDFS上每个文件都要在NameNode上面创建对应的元数据,这个元数据的大小约为150byte,这样当小文件比较多的时候,就会产生很多的元数据文件,一方面会大量占用NameNode的内存空间,另一方面就是元数据文件过多,使得寻址索引速度变慢。

  2. 小文件过多,在进行MR计算时,需要启动过多的MapTask,每个MapTask处理的数据量很小,导致MapTask的处理时间比启动时间还小,白白消耗资源。

3. 小文件的解决办法

  解决小文件问题的本质就是将小文件进行合并,可以通过以下几种方式解决小文件问题:

注意:和HAR不同的是,这种方式还支持压缩,可以减少减少存储空间的占用。但SequenceFile文件不能追加写入,也不能修改, 适用于一次性写入大量小文件的操作。

🥙3.1 使用Hadoop Archive(HAR)将小文件进行归档

        使用Hadoop自带的HAR将小文件进行归档,将多个小文件打包成一个HAR文件,这样NameNode中的元数据也就存储一份。在减少namenode内存使用的同时,仍然可以对文件进行透明的访问。

🥙3.2 使用SequenceFile合并小文件

可以使用SequenceFile格式将大批的小文件合并成一个大文件,再使用MapReduce程序进行操作,从而提高系统性能。

🥙3.3 使用CombineFileInputFormat合并小文件:

在MR读取数据时将多个小文件合并成一个文件进行处理,只开启一个MapTask,提高了任务的执行效率。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/784020.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode算法——数组/字符串篇

对刷过的算法进行总结,所用解法都是最符合我个人逻辑的,以后再刷的话就看这篇帖子了 # 代码随想录——数组理论基础 首先要知道数组在内存中的存储方式,这样才能真正理解数组相关的面试题 数组是存放在连续内存空间上的相同类型数据的集合 …

IntelliJ IDEA 2023 for Mac 好用的Java开发工具

IntelliJ IDEA 2023是一款由JetBrains开发的强大的集成开发环境(IDE)软件,适用于多个编程语言。它旨在提高开发人员的生产力和代码质量,具有以下多种特色功能: 软件下载:IntelliJ IDEA 2023 v2023.3.6中文激…

2d导入人物素材进行分割后设置图层

1、设置分辨率大小 2、相机调整大小,要符合场景 3、选择2D sprite 编辑器 或者 点击这个也行 4、分割图像 5、设置过滤模式 6、图层设置

CAJViewer8.1下载地址及安装教程

CAJViewer是中国学术期刊(CAJ)全文数据库的专用阅读软件。CAJViewer是中国知识资源总库(CNKI)开发的一款软件,旨在方便用户在线阅读和下载CAJ数据库中的学术论文、期刊和会议论文等文献资源。 CAJViewer具有直观的界面…

vue render 函数详解 (配参数详解)

vue render 函数详解 (配参数详解) 在 Vue 3 中,render 函数被用来代替 Vue 2 中的模板语法。 它接收一个 h 函数(或者是 createElement 函数的别名),并且返回一个虚拟 DOM。 render 函数的语法结构如下: render(h) …

Modbus协议介绍

Modbus存储区 从机存储数据,那么肯定要有一个存储区,那就需要文件操作,我们都知道这文件可以分为只读(-r)和读写(-wr)两种类型 并且存储的数据类型可以分为 :布尔量 和 16位寄存器 布尔量比如IO口的电平高低,灯的开关…

如何实现对节点尺寸动态变化的有效监测与检测

前言 近来有需求要做分页,听起来可能有点Low。 所以我要把Low的事情做得有点逼格。 分页本身没啥,但是数据量起来了,比如十万。 要是不做点处理, 那你的页面估计爽得很,机器也爽得很。 放心,我不会让你这么…

金仓方案 | 全国高速联网收费系统国产化升级进行时

近年来,国家提出了交通强国建设战略,鼓励在交通领域加强自主创新,推动产业转型升级。高速公路收费系统作为高速公路行业的核心,也是交通领域信息技术应用创新的重中之重,自主可控问题成为系统建设和运营的关键难点。 2…

[机器学习]练习闵可斯基距离

闵可斯基距离(Minkowski distance)是一种用于衡量向量空间中两点之间距离的方法。它是曼哈顿距离和欧几里得距离的一般化形式。闵可斯基距离使用一个参数 p 来调整计算方法,其中 p 是一个大于 0 的实数值。 在二维空间中,闵可斯基…

可控占比闪烁电路

1启动Q0.0 亮一秒歇一秒循环执行 定时器设置为2秒 使用指令LD> T0 k10 控制亮和灭时间

[已解决]Unable to find a valid cUDNN algorithm to run convolution

问题描述:Unable to find a valid cUDNN algorithm to run convolution 可能原因: 1、cuDNN库的配置问题。 2、未指定训练使用的显卡或显卡占用率已满。 3、确定性算法。 解决方案:(从下往上试) 1、更新GPU驱动、cuD…

大数据面试英文自我介绍参考(万字长文)

发现有一个怪圈,如果码农年龄35+,除非非常匹配,不然在国内企业筛选可能就筛选不过。国外码农可以干到40+、50+。一些外企,对年龄35+的码农依然青睐。这些外企对英文是有要求,通常是要英文自我介绍,下面提供一些英文自我介绍参考。 参考1: Good morning/afternoon, I a…

mysql 用户管理-权限管理

学习了用户管理,再学习下权限管理。 3,权限管理 权限管理主要是对登录到MySQL的用户进行权限验证。所有用户的权限都存储在MySQL的权限表中,不合理的权限规划会给MySQL服务器带来安全隐患。数据库管理员要对所有用户的权限进行合理规…

腾讯2024实习生在线笔试-0331

Q1 小红的图上染色 小红拿到了一个无向图,其中一些边被染成了红色。 小红定义一个点是“好点”,当且仅当这个点的所有邻边都是红边。 现在请你求出这个无向图“好点”的数量。 注:如果一个节点没有任何邻边,那么它也是好点。 …

2、Cocos Creator 下载安装

Cocos Creator 从 v2.3.2 开始接入了全新的 Dashboard 系统,能够同时对多版本引擎和项目进行统一升级和管理!Cocos Dashboard 将做为 Creator 各引擎统一的下载器和启动入口,方便升级和管理多个版本的 Creator。还集成了统一的项目管理及创建…

【MySQL】内外连接——内连接、外连接、左外连接、右外连接、内外连接的区别、左外连接和右外连接的区别

文章目录 MySQLMySQL表的内连接和外连接1. 内连接2. 外连接2.1 左外连接2.2 右外连接 3. 内外连接的区别4. 左外连接和右外连接的区别 MySQL MySQL表的内连接和外连接 MySQL 中的内连接(INNER JOIN)和外连接(包括左外连接 LEFT JOIN 和右外连…

Java研学-SpringBoot(五)

七 统一异常处理 1 框架自带方式 Spring Boot 默认会把所有错误都交给 BasicErrorController 类完成处理,错误的视图导向到 classpath:/static/error/ 和 classpath:/templates/error/路径上,HTTP 状态码就是默认视图的名称。如: // 出现 4…

JS中常用的几种事件

在js中分为多种事件,比如点击事件,焦点事件,加载事件,鼠标事件等等... ... 点击事件 onclick点击事件,ondblclick双击事件 焦点事件 onblur元素失去焦点,onfocus元素获取焦点 加载事件 onload一个页面…

windows本地访问局域网tensorboard

https://blog.csdn.net/m0_51268651/article/details/126524028 这个文章中说使用xshell配置ssh后可在windows访问 有一说一不太能理解为什么谷歌会做的那么麻烦 果然有更好的方案,如下: tensorboard --logdir/path/to/event --host 0.0.0.0 --port 6…

600条最强Linux命令总结

1. 基本命令 uname -m 显示机器的处理器架构 uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作系统信息 arch 显示机器的处理器架构 uname -m 显示…