0

我想问一下在运行 map reduce 作业时调用外部 API 的不便之处。有哪些缺点?

一些例子:如果在映射器内部,我们需要对地址进行地理编码,我们调用谷歌地图 api,或者调用外部数据库以获取项目的相关元素等。

4

1 回答 1

2

只要外部 API 中没有数据库调用,就可以调用外部 API。在许多方面,这比重新编写逻辑更可取。很多时候,您希望 MapReduce 作业只不过是在非 MapReduce 上下文中编写的围绕逻辑的包装器。这是为了更好的可测试代码。

但是,强烈建议不要进行外部数据库调用。这将大大降低 MapReduce 作业的速度,因为每次调用都是随机访问调用。此外,同时有数千个 Map/Reduce 任务访问您的数据库可能会使数据库崩溃。如果您需要相关元素,最好将所有元素放在 HDFS 上并在 MapReduce 中进行连接。如果您正在谈论的数据库是 NoSQL 存储,例如 Cassandra 或 HBase,它们将具有批量导出功能,可以将整个表导出到 HDFS。

于 2012-03-05T12:27:02.437 回答