HDFS的块大小是64 MB吗?是否有可用于更改它的配置参数?
对于读取gzip文件的映射器,gzip文件的数量是否必须等于映射器的数量?
答案 0 :(得分:10)
这取决于您:
NLineInputFormat
,WholeFileInputFormat
)适用于块大小以外的边界。通常,虽然从FileInputFormat
扩展的任何内容都将使用块边界作为指南FileInputFormat
配置属性mapred.min.split.size
和mapred.max.split.size
通常默认为1
和Long.MAX_VALUE
,但如果在系统配置中覆盖了此属性,或者你的工作,这将改变每个映射器处理的数据的分配,以及产生的映射器任务的数量。CombineFileInputFormat
,{{1} })因此,如果您的文件块大小为64m,但要想处理多于或少于每个地图任务的文件,那么您应该只能设置以下作业配置属性:
CompositeInputFormat
- 大于默认值,如果您想使用更少的映射器,代价是(可能)丢失数据局部性(单个映射任务处理的所有数据现在可能位于2个或更多数据节点上)mapred.min.split.size
- 小于默认值,如果你想使用更多的映射器(比如你有一个CPU密集型映射器)来处理每个文件如果您使用的是MR2 / YARN,则不推荐使用上述属性,并替换为:
mapred.max.split.size
mapreduce.input.fileinputformat.split.minsize