MapReduce的任务数量分配
发布时间
阅读量:
阅读量
Map任务的个数
当Mapper数据量很大时,会导致大量小文件生成,并且Mapper的生成与启动会占用大量硬件资源。当Mapper数量不足时,并发度较低,则会导致Job执行时间过长,并未能充分利用分布式硬件资源。
Mapper数量由什么决定?
- 输入文件数目
- 输入文件的大小
- 配置参数
根据输入目录中的文件数量来确定将会有多少个映射被启动。
应用将为每个数据片创建并运行一个映射。
每个输入文件都会被分割成至少一个映射。
当单个输入文件的大尺寸超过HDFS块大小时(128MB),同一个文件将导致多个映射被启动。
涉及参数:
mapreduce.input.fileinputformat.split.minsize //启动map最小的split size大小,默认0
mapreduce.input.fileinputformat.split.maxsize //启动map最大的split size大小,默认256M
dfs.block.size//block块大小,默认128M
计算公式:splitSize = Math.max(minSize, Math.min(maxSize, blockSize))
下面是FileInputFormat class 的getSp
全部评论 (0)
还没有任何评论哟~
