1

在 MYSQL 之类的数据库上运行 map reduce 程序时,我只是想知道是否首先在数据库上触发查询,然后获取结果集,然后创建拆分以由各个映射器操作,每个映射器都进行拆分。

4

1 回答 1

0

我相信它首先检索所有记录,然后创建逻辑拆分,正如您从setInput()的签名中看到的那样:

public static void setInput(JobConf job,
                            Class<? extends DBWritable> inputClass,
                            String inputQuery,
                            String inputCountQuery)

它得到了inputCountQuery这使得 hadoop 决定映射器的数量以及每个映射器要处理的记录数。

另请阅读此处的 InputFormat部分的限制。

于 2013-04-01T11:42:45.070 回答