Метод программирования для анализа наборов данных, которые не помещаются в памяти
применяет функцию map outds
= mapreduce(ds
,mapfun
,reducefun
)mapfun
для ввода данных datastore ds
, а затем передает значения, сопоставленные с каждым уникальным ключом, чтобы уменьшить функцию reducefun
. datastore выхода является KeyValueDatastore
объект, который указывает на .mat
файлы в текущей папке.
опционально задает настройки строения во время выполнения для outds
= mapreduce(ds
,mapfun
,reducefun
,mr
)mapreduce
. The mr
вход является результатом вызова mapreducer
функция. Обычно этот аргумент используется с Parallel Computing Toolbox™, MATLAB® Parallel Server™, или MATLAB Compiler™. Дополнительные сведения см. в разделах Ускорение и развертывание MapReduce с использованием других продуктов.
задает дополнительные опции с одним или несколькими outds
= mapreduce(___,Name,Value
)Name,Value
пара аргументов с использованием любого из предыдущих синтаксисов. Для примера можно задать 'OutputFolder'
далее следует вектор символов, указывающая путь к папке выхода.
Отладка вашего mapreduce
алгоритмы, чтобы изучить, как пары "ключ-значение" перемещаются через различные фазы, всегда полезно. Чтобы изучить перемещение данных, установите точки останова на карте и уменьшите функции. Точки остановки выполнения mapreduce
, что позволяет вам изучить текущее состояние релевантных переменных, таких как KeyValueStore
или ValueIterator
. Для получения дополнительной информации см. Раздел «Алгоритмы отладки Mapreduce».
Некоторые рекомендации по оптимизации mapreduce
эффективность на любой платформе:
Минимизируйте количество вызовов функции map. Самый легкий подход - повысить значение ReadSize
свойство входного datastore. Результатом является то, что mapreduce
передает большие блоки данных в функцию map, и datastore истощается с меньшим количеством чтений.
Уменьшите объем промежуточных данных, отправляемых между функциями map и reduce. Один из подходов - использовать unique
внутри функции map для объединения аналогичных ключей. Пример этого метода см. в разделе Вычисление среднего по группам с использованием MapReduce.
datastore
| gcmr
| KeyValueStore
| mapreducer
| tall
| ValueIterator