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