在 MYSQL 之类的数据库上运行 map reduce 程序时,我只是想知道是否首先在数据库上触发查询,然后获取结果集,然后创建拆分以由各个映射器操作,每个映射器都进行拆分。
问问题
116 次
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 回答