当在像 MYSQL 这样的数据库上运行 map reduce 程序时,我只是想知道是否首先在数据库上触发查询,然后获取结果集,然后创建拆分以由各个映射器操作,每个映射器都进行拆分.
最佳答案
我相信它首先检索所有记录,然后创建逻辑拆分,正如您从 setInput()
的签名中看到的那样:
public static void setInput(JobConf job,
Class<? extends DBWritable> inputClass,
String inputQuery,
String inputCountQuery)
它获取 inputCountQuery
,它使 hadoop 决定映射器的数量以及每个映射器要处理的记录数。
另请阅读输入格式的限制部分here .
关于mysql - 在 MYSQL 的情况下,DBInputFormat 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15740197/