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