HDFS 小文件处理|学习笔记

开发者学堂课程【Hadoop 企业优化及扩展案例:HDFS 小文件处理】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/96/detail/1571


HDFS 小文件处理


目录:

一、HDFS 小文件弊端

二、HDFS 小文件解决方案

 

1.HDFS 小文件弊端

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


2.HDFS 小文件解决方案

1.小文件的优化无非以下几种方式:  

 (1)在数据采集的时候,就将小文件或小批数据合成大文件再上传 HDFS

(2)在业务处理之前,在 HDFS 上使用 MapReduce 程序对小文件进行合并

(3)在MapReduce 处理时,可采用 CombineTextInputFormat 提高效率

2.HDFS小文件解决方案
(1.1)Hadoop Archive
     是一个高效地将小文件放入 HDFS 快中的文件存档工具,它能移将多个小文件打包成一个  HAR 文件,遠祥就減少了 NameNode 的内存使用。
(1.2)Sequence File
Sequence File 由一系列的二制key/value組成,如果key文件名,value 文件内容,则可以将大批小文件合并成一个大文件。

(1.3)CombineFilelnputFormatCombineFileInputFormat 是一种新的IuputFormat,用于将多个件合并成一个単独的 Split外,它会考慮数据的存储位置。

(1.4)开启 JVM 重用

对于大量小文件 Job ,可以开启 JVM 重用会减少45%运行时间。

JVM 重用原理: 

-个Map 运行在一个 JVM 上,开启重用的话,该 Map 在 JVM 上运行完毕后, JVM 继续运行其他 Map。
具体设置: 

mapreduce.job.jvm.numtasks 值在 10-20 之间。

上一篇:集群配置|学习笔记


下一篇:启动 YARN 并运行 MR 程序|学习笔记