Метод программирования для анализа наборов данных, которые не умещаются в памяти
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 для примера этого метода.