我正在编写创建大型图形数据库的软件。该软件需要访问数十种不同的REST API,并提供数百万个请求。然后,数据将由Hadoop集群处理。每个API的速率限制因请求/秒,每个窗口,每天和每个用户(通常通过OAuth)而异。
有没有人对如何使用Map功能或其他Hadoop生态系统工具来管理这些查询有任何建议?目标是利用Hadoop中的并行处理。
由于速率限制的变化,在等待重置的第一个限制时切换到不同的API查询通常是有意义的。一个示例是一个API调用,它在图中创建节点,另一个API丰富该节点的数据。在等待第一个API限制重置时,我可以让系统外出并丰富新节点的数据。
我尝试在EC2上使用SQS队列来管理各种API限制和状态(为每个API调用创建一个队列),但发现它的速度非常慢。
有什么想法吗?
答案 0 :(得分:0)
看起来我的场景的最佳选择是使用Storm,或者特别是Trident抽象。它为工作负载管理和流程管理提供了最大的灵活性