Ars*_*ray 2 java hadoop mapreduce
我正在尝试加速优化MapReduce作业.
有什么办法可以告诉hadoop使用特定数量的mapper/reducer进程吗?或者,至少是最少数量的映射器进程?
在文档中,指定了您可以使用该方法执行此操作
public void setNumMapTasks(int n)
Run Code Online (Sandbox Code Playgroud)
JobConf类.
这种方式并没有过时,所以我开始使用Job类的Job.这样做的正确方法是什么?
映射任务的数量由输入中的块数决定.如果输入文件为100MB且HDFS块大小为64MB,则输入文件将占用2个块.因此,将产生2个地图任务.JobConf.setNumMapTasks()(1)提示框架.
Reducer的数量由JboConf.setNumReduceTasks()函数设置.这确定了作业的reduce任务总数.此外,mapred.tasktracker.tasks.maximum参数确定可以在单个作业跟踪器节点上并行运行的reduce任务的数量.
你可以在这里找到关于地图数量和减少工作的更多信息(2)
(1) - http://hadoop.apache.org/mapreduce/docs/r0.21.0/api/org/apache/hadoop/mapred/JobConf.html#setNumMapTasks%28int%29(2
) - http:// wiki .apache.org/hadoop的/ HowManyMapsAndReduces
| 归档时间: |
|
| 查看次数: |
4938 次 |
| 最近记录: |