Насколько мне известно, не существует простого способа для нескольких задач карты (Hadoop) обмениваться статическими структурами данных.
На самом деле это известная проблема для текущей модели Map Reduce.Причина, по которой текущая реализация не разделяет статические данные в задачах карты, заключается в том, что Hadoop спроектирован так, чтобы быть высоконадежным.В результате, если задача завершится неудачей, она только аварийно завершит работу своей собственной JVM.Это не повлияет на выполнение других JVM.
В настоящее время я работаю над прототипом, который может распределить работу одной JVM по нескольким ядрам (по сути, вам нужна только одна JVM для использования многоядерности).Таким образом, вы можете уменьшить дублирование структур данных в памяти без затрат на загрузку процессора.Следующим шагом для меня является разработка версии Hadoop, которая может запускать несколько задач Map в одной JVM, и это именно то, что вы просите.
Здесь есть интересный пост https://issues.apache.org/jira/browse/MAPREDUCE-2123