Я пишу программное обеспечение, которое создает большую базу данных графа. Программное обеспечение должно иметь доступ к десяткам различных API REST с миллионами запросов. Затем данные будут обрабатываться кластером Hadoop. Каждый из этих API имеет ограничения скорости, которые варьируются в зависимости от запросов/секунды, за окно, в день и за пользователя (обычно через OAuth).Есть ли способ использовать инструменты Hadoop для обработки параллельных вызовов API REST внешним источникам?
Есть ли у кого-нибудь какие-либо предложения относительно того, как я могу использовать либо функцию карты, либо другой инструмент Hadoop-экосистемы для управления этими запросами? Целью было бы использовать параллельную обработку в Hadoop.
Из-за различных ограничений скорости часто имеет смысл переключиться на другой запрос API, ожидая сброса первого предела. Примером может служить один вызов API, который создает узлы в графе, а другой, который обогащает данные для этого узла. Я мог бы выпустить систему и обогатить данные для новых узлов, ожидая сброса первого предела API.
Я попытался использовать очередность SQS на EC2 для управления различными ограничениями API и состояниями (создание очереди для каждого вызова API), но оказалось, что это смехотворно медленно.
Любые идеи?