Мне нужно обработать огромное количество данных. Я бы хотел, чтобы они обрабатывались с использованием распределенных вычислений (масштабируемых). Я получаю данные от apache Solr. При передаче определенного ввода я получаю огромный набор данных от apache solr. Для каждой записи в этом наборе данных я передам первичный ключ REST API, чтобы получить некоторую информацию, которая будет прикреплена к записи. Затем каждая запись будет подвергаться некоторому обновлению. Каждый обновленный объект в окончательной огромной коллекции будет записан в виде отдельных файлов xml в папку.
Применим ли hadoop в этом конкретном сценарии? Я видел пример подсчета слов в документации по карте hadoop mapreduce.
Node1 - Map<InputIdToSolr1,Set<RecordsFromSolr1to500>>
Node2 - Map<InputIdToSolr1,Set<RecordsFromSolr500to1000>>
Затем эти результаты будут объединены функцией сокращения в hadoop. В отличие от подсчета слов, мои узлы будут иметь только один элемент на карте для каждого узла. Я не уверен, имеет ли смысл использование hadoop. Какие есть другие варианты/Java-проекты с открытым исходным кодом, которые я могу использовать для масштабирования обработки записей. Я видел Terracotta с весны, но, похоже, это коммерческое приложение.