小文件问题
来源:互联网 发布:怎么复制淘宝商品链接 编辑:程序博客网 时间:2024/06/16 11:17
5.2 小文件问题
小文件是指文件size小于HDFS上block大小的文件。这样的文件会给hadoop的扩展性和性能带来严重问题。首先,在HDFS中,任何block,文件或者目录在内存中均以对象的形式存储,每个对象约占150byte,如果有1000 0000个小文件,每个文件占用一个block,则namenode需要2G空间(存两份)。如果存储1亿个文件,则namenode需要20G空间。这样namenode内存容量严重制约了集群的扩展。 其次,访问大量小文件速度远远小于访问几个大文件。HDFS最初是为流式访问大文件开发的,如果访问大量小文件,需要不断的从一个datanode跳到另一个datanode,严重影响性能。最后,处理大量小文件速度远远小于处理同等大小的大文件的速度。每一个小文件要占用一个slot,而task启动将耗费大量时间甚至大部分时间都耗费在启动task和释放task上。
对于Hadoop小文件问题,当前主要有两种解决方案,(1)设计一种工具(比如mapreduce作业)交给用户,让用户自己每隔一段时间将小文件打包成大文件,当前Hadoop本身提供了几个这样的工具,包括Hadoop Archive(Hadoop提供了shell命令),Sequence file(需自己写程序实现)和CombineFileInputFormat(需自己写程序实现)。(2)从系统层面解决HDFS小文件,论文[10][11]介绍了它们思路,大体上说思路基本一致:在原有HDFS基础上添加一个小文件处理模块,当用户上传一个文件时,判断该文件是否属于小文件,如果是,则交给小文件处理模块处理,否则,交给通用文件处理模块处理。小文件处理模块的设计思想是,先将很多小文件合并成一个大文件,然后为这些小文件建立索引,以便进行快速存取和访问。
- 小文件问题
- 写文件的小问题
- 头文件的小问题
- Java 文件处理小问题
- 海量小文件问题综述
- 海量小文件问题综述
- 小文件合并存储问题
- 海量小文件问题综述
- 小文件合并存储问题
- hadoop处理小文件问题
- hadoop小文件问题&解决方案
- Hadoop小文件处理问题
- py文件创建小问题
- hive小文件合并问题
- 小文件合并存储问题
- hive小文件问题及hive小文件合并
- 一个文件处理中的小问题
- bootSect.S 文件中的include小问题
- sql_server set identity_insert_on 用法总结
- mysql使用索引优化order排序
- Ubuntu-15.04-64位配置安卓开发环境
- Bash Shell 的管道命令
- 开始我的CSDN之旅
- 小文件问题
- 使用百度地图——入门
- BIG-endian && little endian
- Android Fragment 真正的完全解析(上)
- srm 534
- Android Project中运行带有main函数的Java类
- OC基础语法学习:Foundation框架
- GRE阅读有哪些固定的答题思路?
- 朋友范LOGO故事