我希望每个hadoop映射器在M / R作业中处理单独的数据部分,并且我想在伪分布式(单节点)设置上测试需要存在许多映射器的情况。输入数据大小更大的结果。鉴于我当前输入的大小和我正在试验的独立模式,我只能看到1个地图任务。
我的输入来自hbase表,我认为每个hbase表的区域数等于用于处理表数据的映射器数。
因此,为了重现许多映射器处理输入数据的情况,我通过shell预定了表的区域,如下所示:
创建't1','f1',{NUMREGIONS => 4,SPLITALGO => 'HexStringSplit'}
或将'UniformSplit'设置为SPLITALGO,但即使映射器确实增加到指定数量的区域(在将数据导入到相应的表之后),所有输入数据(在后续测试作业中)在我试图从这个表中读取的地方)通过只有一个映射器 - 其他人不处理任何输入行。
我在伪分布式(单节点)设置上工作,我真的不知道如何解决这个问题。有没有人有任何想法?谢谢!
答案 0 :(得分:0)
您是在扫描整个桌子还是仅扫描一部分?如果您正在扫描表的一部分,那么这可能是您的问题的原因,因为您的数据源不足以触发多个映射器。
您可以尝试减小hbase-size.xml配置中的区域大小,然后重新启动hbase以获得所需的效果。
最后,在您的mapred-site.xml配置中,您有多少个映射器插槽?如果它只是1,这不会限制映射作业的数量,但它将限制可以在该服务器上一次运行的映射作业的数量。
除此之外,我认为您无法控制每个作业的指定数量 - 与使用减速器的数量不同。