我希望每个 hadoop 映射器在 M/R 作业中处理单独的数据部分,并且我想在伪分布式(单节点)设置上测试由于一个结果而需要存在许多映射器的情况更大的输入数据大小。鉴于我当前输入的大小和我正在试验的独立模式,我只能看到 1 个地图任务。
我的输入来自一个 hbase 表,我认为每个 hbase 表的区域数等于用于处理表数据的映射器数。
因此,为了重现许多映射器会处理输入数据的情况,我通过 shell 预定义了表的区域,如下所示:
创建 't1', 'f1', {NUMREGIONS => 4, SPLITALGO => 'HexStringSplit'}
或将“UniformSplit”设置为 SPLITALGO,但即使映射器确实增加到指定数量的区域(在将数据导入相应表之后),所有输入数据(在我尝试从该表中读取的后续测试作业中)通过仅通过一个映射器 - 其他映射器不处理任何输入行。
我在一个伪分布式(单节点)设置上工作,我真的不知道如何解决这个问题。有没有人有任何想法?谢谢!