Я разрабатываю новое поколение системы анализа, которая должна обрабатывать многие события от многих датчиков в почти реальном времени. И для этого я хочу использовать одну из платформ Big Data Analytics, такую как Hadoop
, Spark Streaming
или Flink
.MapReduce: Как передать HashMap в mappers
Чтобы проанализировать каждое событие, мне нужно использовать некоторые метаданные из таблицы (DB) или по крайней мере загрузить его в кешированную карту.
Проблема в том, что каждый преобразователь будет распараллелен на нескольких узлах.
Поэтому у меня есть две вещи, чтобы обращаться:
- Во-первых, как загрузить/пасс HashMap к картографа?
- Есть ли способ сохранить HashMap Согласованность между mappers?
DistributedCache - это то, что вы ищете - http://stackoverflow.com/questions/21239722/hadoop-distributedcache-is-deprecated-what-is-the-preferred-api. Вы можете сделать файлы метаданных доступными для всех Mappers. –
Вы также можете построить хэш-файл в методе 'setup()' каждого модуля отображения, если, возможно, запросить свою БД. –
Будете ли вы использовать Hadoop или Spark? Решение может быть совсем другим. Кроме того, вам нужно, чтобы каждый картограф имел одну и ту же информацию или специфичен для каждого картографа? –