目前正在使用Sequence File
对已有数据进行(BLOCK)压缩。
有两种存储方式
一个大文件,所有记录都保存在这个文件里面
多个小文件,文件大小正好和HDFS block大小一致(128MB)
数据split决定mapper数量,而split默认是block大小,所以当进行MR计算的时候,以上两种方式没有什么区别。
目前我知道第二种方式的缺点就是namenode需要维护更多的文件,而第一种方式就一个文件。
网上太多的文章说把多个小文件合并成一个大文件,当然这里的“小”是指小于block大小(128MB),这句话很好理解。
但是当每个文件都正好是block大小时,还有必要合并吗?或者说,没必要把一个超大的文件分割成多个block大小的小文件? 还是有必要分割?
欢迎大家讨论下。谢谢!