HDFS的小文件问题
2024-09-03 21:56:32
- HDFS 中任何一个文件,目录或者数据块在 NameNode 节点内存中均以一个对象形式表示(元数据),而这受到 NameNode 物理内存容量的限制。每个元数据对象约占 150 byte,所以如果有1千万个小文件,每个文件占用一个block,则 NameNode 大约需要2G空间。如果存储1亿个文件,则 NameNode 需要20G空间,这毫无疑问1亿个小文件是不可取的。
- 处理小文件并非 Hadoop 的设计目标,HDFS 的设计目标是流式访问大数据集(TB级别)。因而,在 HDFS 中存储大量小文件是很低效的。访问大量小文件经常会导致大量的 seek,以及不断的在 DatanNde 间跳跃去检索小文件。这不是一个很有效的访问模式,严重影响性能。
- 处理大量小文件速度远远小于处理同等大小的大文件的速度。每一个小文件要占用一个slot,而任务启动将耗费大量时间甚至大部分时间都耗费在启动任务和释放任务上。
- MapReduce上的小文件问题:Map任务一般一次只处理一个块的输入(input。如果文件非常小,并且有很多,那么每一个 Map 任务都仅仅处理非常小的输入数据,并会产生大量的 Map 任务,每一个 Map 任务都会额外增加bookkeeping 开销。+map任务是jvm进程级别的,也会有启动销毁的开销
最新文章
- Linux_scp
- 第二章 存储,2.2 AliCloudDB--双11商家后台数据库的基石(作者:玄惭)
- Unity Navigation自动寻路
- HDU2535:Vote
- iOS调试-LLDB学习总结
- Vuejs之开发环境搭建
- Delphi 10.2.3 + Xcode 9.2 开发 IOS 程序,免证书+免越狱,真机调试
- springMVC实现增删改查
- 利用 Python_tkinter 完成 2048 游戏
- lij IDEA项目包分层结构显示设置
- 【HDOJ1043】【康拓展开+BFS】
- Navicat 12 破解方法
- 产品排序(2015 年北大自招夏令营) (与栈相关的区间DP)
- redis之单机和主从环境搭建
- c++ 多态,虚函数、重载函数、模版函数
- 一款基于jQuery可放大预览的图片滑块插件
- Linux系统下 Rsync 环境安装搭建
- Linux常用命令实践
- 通知的多线程问题 iOS
- Python 爬虫实例(4)—— 爬取网易新闻
热门文章
- 如何查看spark版本
- Day10_53_Collections.synchronizedList() 将Arraylist集合转换为线程安全的集合
- 2.7w字!Java基础面试题/知识点总结!(2021 最新版)
- 数据结构(1):稀疏数组使用java实现
- 技术分享|JavaScript的前世今生
- odoo字段属性列举
- SpringCloud之远程调用OpenFeign和Ribbon
- 从苏宁电器到卡巴斯基第16篇:我在苏宁电器当营业员 VIII
- hdu4604 不错的子序列问题
- 【springMVC】<;mvc:annotation-driven />;标签的使用、作用?