2013-03-20 3 views
0

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

Есть ли у кого-нибудь какие-либо предложения относительно того, как я могу использовать либо функцию карты, либо другой инструмент Hadoop-экосистемы для управления этими запросами? Целью было бы использовать параллельную обработку в Hadoop.

Из-за различных ограничений скорости часто имеет смысл переключиться на другой запрос API, ожидая сброса первого предела. Примером может служить один вызов API, который создает узлы в графе, а другой, который обогащает данные для этого узла. Я мог бы выпустить систему и обогатить данные для новых узлов, ожидая сброса первого предела API.

Я попытался использовать очередность SQS на EC2 для управления различными ограничениями API и состояниями (создание очереди для каждого вызова API), но оказалось, что это смехотворно медленно.

Любые идеи?

ответ

0

Похоже, что лучшим вариантом для моего сценария будет использование Storm или, в частности, абстракция Trident. Это дает мне максимальную гибкость как для управления рабочей нагрузкой, так и для управления процессами, а также