0

我正在编写创建大型图形数据库的软件。该软件需要访问数十个不同的 REST API,总共有数百万个请求。然后数据将由 Hadoop 集群处理。这些 API 中的每一个都有速率限制,该限制因请求/秒、每个窗口、每天和每个用户(通常通过 OAuth)而异。

有人对我如何使用 Map 函数或其他 Hadoop 生态系统工具来管理这些查询有任何建议吗?目标是利用 Hadoop 中的并行处理。

由于速率限制不同,在等待第一个限制重置时切换到不同的 API 查询通常是有意义的。例如,一个 API 调用在图中创建节点,另一个 API 调用丰富了该节点的数据。我可以让系统退出并丰富新节点的数据,同时等待第一个 API 限制重置。

我曾尝试在 EC2 上使用 SQS 队列来管理各种 API 限制和状态(为每个 API 调用创建一个队列),但发现它非常慢。

有任何想法吗?

4

1 回答 1

0

看起来我的场景的最佳选择是使用 Storm,或者特别是 Trident 抽象。它为我的工作负载管理和流程管理提供了最大的灵活性

于 2013-03-22T23:49:40.953 回答