Java hadoop:还原数保持不变4
我正在用Java hadoop:还原数保持不变4,java,hadoop,mapreduce,distributed-computing,Java,Hadoop,Mapreduce,Distributed Computing,我正在用mapred.reduce.tasks=100运行hadoop作业(只是在试验)。生成的贴图数为537,这取决于输入拆分。问题是并行运行的减速器数量不会超过4个。即使在地图100%完成之后。有没有一种方法可以增加运行的减速机的数量,因为CPU使用率是次优的,而且减速机的速度非常慢 我还设置了mapred.tasktracker.reduce.tasks.max=100。但这似乎不会影响并行运行的减速器的数量。您可以使用作业配置指定减速器的数量,如下所示: job.setNumReduce
mapred.reduce.tasks=100运行hadoop作业(只是在试验)。生成的贴图数为537,这取决于输入拆分。问题是并行运行的减速器数量不会超过4个。即使在地图100%完成之后。有没有一种方法可以增加运行的减速机的数量,因为CPU使用率是次优的,而且减速机的速度非常慢
我还设置了mapred.tasktracker.reduce.tasks.max=100
。但这似乎不会影响并行运行的减速器的数量。您可以使用作业配置指定减速器的数量,如下所示:
job.setNumReduceTasks(6)
此外,在执行jar时,可以传递如下属性:
-D mapred.reduce.tasks=6检查分区程序使用的哈希代码;如果您的键只返回4个hashcode值,Hadoop将只调度4个reducer
您可能需要实现自己的分区程序以获得更多的还原程序,但是,如果您的映射程序只生成4个键,则4是最大的还原程序数。事实证明,更改mapred-site.xml后,只需重新启动mapred和dfs守护程序mapred.tasktracker.reduce.tasks.maximum确实是增加reduce容量的正确参数
无法理解为什么hadoop每次提交作业时都不重新加载mapred站点
我认为数字“4”是集群的“减少任务容量”。有没有办法增加这一点?您使用的是什么计划程序?嗯,既然它只是一个作业,那么计划是否重要?我认为在任何情况下,单个作业都应该占用所有资源…我在mapred-site.xml中设置了mapred.reduce.tasks。但那不是我想要的。我想增加减速机的“容量”。属性mapred.reduce.tasks=100值在此不起作用。这取决于可用的CPU和I/O带宽。您知道您拥有的CPU数量吗?如果没有,请尝试cat/proc/cpuinfo,因为映射程序生成大约200000个关键点。典型的映射器输出是。这是一个键值对。来自同一主机的所有URL都将转到一个减速机。因此,如果有多个还原程序并行运行,我可以同时处理来自多个主机的数据仅供参考,您只需在编辑mapred-site.xml后重新启动mapred。无需重新启动dfs。