HDFS小文件弊
HDFS上每个文件都要在NameNode 上建立一个索引,这个索引的大小约为150byte,这样当小文件比较多的时候,就
会产生很多的索引文件,一方面会大量的占用NameNode 的空间,另一方面就是索引文件过大时得索引速度变慢。
HDFS小文件解决方案
小文件的优化无非以下几种方式:
(1)在数据采集的时候,就将小文件或小批数据合成大文件再上传HDFS。
(2)在业务处理之前,在HDFS上使用MapReduce程序对小文件进行合并。
(3)在MapReduce处理时,可采用CombineTextInputFormat提高效率。
1. Hadop Archive
是一个高效地将小文件放入HDFS块中的文件存档工具,它能个够将多个小文件打包成一个HAR文件,这样就减少
了NameNode的内存使用。
2. sequenceFile
sequenceFIle 由一系列的二进制key/value 组成,如果key为文件名,value 为文件内容,则可以将大批小文
件合并成一个大文件
3. combineFileInputFormat
combineFileInputFormat是一种新的inputFormat,用于将多个为文件合并成一个单独的split,另外,它会考
虑数据的储存位置。