MapReduce подумал:
Core:
Разделяй и властвуй, и первые очки
Сценарий:
Сложные задачи, не зависит, чтобы обеспечить параллельную эффективность обработки
Контекст отражает:
После первой карты уменьшить
карта: комплекс сплит задачи на задачи, частичный расчет, результаты, полученные на местном уровне
уменьшить: частичное резюме результатов карты в глобальном масштабе, конечный результат
MapReduce идеи дизайна:
Как большая обработка данных?
В первом дивизионе вместе, разделяй и властвуй
Абстрактная модель из двух функций:
Он выводится на ключевой входной секции кВ
карта:
комплекс сплит задачи на задачи, частичный расчет, результаты , полученные на местном уровне
уменьшить:
частичное резюме результатов карты в глобальном масштабе, конечный результат
Для того, чтобы сделать и что нужно сделать, чтобы разделить:
Он отвечает за выполнение комплекса (технический)
Пользователи несут ответственность за что (бизнес)
Еще два были объединены программа MR завершена
основы программирования MapReduce и технические характеристики:
Уровень кода:
наследование классов Mapper переопределить карту () ----- карта фаза отвечает за бизнес
Сокращение наследования класса переопределение уменьшить () ---- ответственность за бизнес-логику сократить этап
Запуск на клиентском главном классе определены (основные) ----- М.Р. соответствующие атрибуты, представление программы
Три или более упакован в виде пакета банки
Запуск угол:
MapTask: отображение фазы работы задачи
ReduceTask: снизить эксплуатационные фазы задачи
MapReduceApplictionMaster (MrAppMaster): основная программа работает, чтобы контролировать работу каждой задачи и мр запустить программу, ответственный за ресурсы с пряжей
Дело WordCount:
версия экологического развития проблемы:
Apache 2.7.4 локальная среда выполнения оптимизированного CDH2.6.0
Типы данных и механизм сериализации:
Writable (интерфейс) считается раздутая механизм сериализации не способствует передаче большой сети передачи данных
Ключ: (MR поток выполнения):
![](https://img2018.cnblogs.com/blog/1800342/201909/1800342-20190914210542578-1658690679.png)
механизм сериализации:
Сериализация концепция механизма:
Межпроцессная сеть передачи данных в поток байт
Writable:
Метод Последовательность: записи (уходит)
Десериализация: Readfield (в)
Примечание: первый сериализации, после десериализации
Пользовательские Сортировать:
Природа (CompareTo):
0: равно
Положительный: более
Отрицательный: меньше
Примечание: Кто есть кто в большом
Обратный порядок:
Spoofer: Deception большой ---> небольшой отрицательный ---> положительный
Объект реализует интерфейс:
Compareable | WritableCompareable <Bean>
Пользовательские Перегородки:
Определение раздела:
Определяет выходную карту, в которой ключевое значение на reduceTask
правила по умолчанию разделов:
HashPartitioner (key.hashcode% NumReduceTasks)
Реализация пользовательского секционирования:
Перегородки GetPartitions переопределять унаследованный метод класса возвращает значение, которое опорное значение раздела
Пусть настроить эффект раздела:
job.setPartitionClass ()
Соотношение между числом и количеством разделов reduceTask:
Если остаются равными
Количество многораздельной ошибки незаконного раздела
Количество разделов пустого файла генерируется небольшое выполнение
Сумматор (уменьшение):
Частично полимеризованный компонент каждого выхода первой частичной полимеризации карты
Оптимизация сетевого ввода-вывода
Уменьшить себя не только небольшой диапазон глобальных
По умолчанию не открыт
Примечание: Будьте осторожны: Поскольку количество заказа изменится в конечном результате.
Параллелизм механизмы:
Концепция: так называемая степень параллелизма, оно относится к множеству одновременно
maptask параллелизм (логика уменьшения ломтика): номер файла размером размера вырезанного
reducetask параллелизма: Код устанавливается глобальный счетчик относится соблюдать осторожность
перетасовать механизмы:
Концепция: процесс
Перед началом вывода данных из данных карты принимается в качестве входных данных для уменьшения
Через средней стадии по карте сети снижения MR является ядром программы является причиной эффективности самого медленным.
Сжатие данных:
Сжатие Цель: уменьшить объем сетевого трафика, уменьшить дисковое пространство, занимаемое окончательным
Схемы сжатия:
Количество карты сжатия выхода :( сеть передача)
выход сжатия redcue :( занимаемого дискового пространства)
Алгоритмы сжатия:
Рекомендуемое применение: мгновенное
поддержка Hadoop зависит от сжатия
Проверьте, чтобы поддержать местную библиотеку: Hadoop chechnative
Лучшее сочетание Hadoop компилятор поддерживает подмножество алгоритмов сжатия.
Настройки режима сжатия:
Непосредственно на карте программы по conf.set () ----- только для мр
Измените файл конфигурации XML mapred-site.xml ----- глобально действует
Параметры оптимизации:
Включает в себя: ресурсах, отказоустойчивость, стабильность и т.д. ------ Hadoop Официального сайта апите xxx.default.xml (ищите заброшенную собственность --Deprecated Properties)
Соотношение между размером операции файла --- (улей между Соединить размер таблицы (комбинированный))
Все данные, передаваемые в соответствующем поле, чтобы уменьшить обработку такие же, как ключ
Недостатки: уменьшить перекос данных присоединиться давление может произойти
Завершить связь между фазой карты данных
карта вступайте не уменьшить фазу (numreducetask (0))
Часть м-00000
Распределенный кэш:
Может быть указан файл (архив банка) для текущей программы происходит каждый maptask
установка метод инициализации:
Для того, чтобы загрузить кэш небольших файлов для текущей программы работы в maptask памяти
Сохранить маленький файл, чтобы создать различные типы наборов данных данных
Обработка маленьких файлов сцены:
Кусочек механизм по умолчанию: -> маленький кусочек файл ----> а срезе, maptask
CombineTextInputFormat: механизм Slice
Небольшие файлы:
![](https://img2018.cnblogs.com/blog/1800342/201909/1800342-20190914210543172-940045244.jpg)
Пользовательский суб пакет:
Стадия разработки:
Перед вызовом уменьшить () метод
Группа по умолчанию:
Ряд данных, отсортированных в соответствии с ключом, равны перед и после того, как две (равные или неравные)
Пользовательский объект в качестве ключа:
WritableComparator класс пакета, который наследует Примечание: WritableComparable <OrderBean> отсортирован реализовать интерфейс
Он используется для пакетов Key
Он находится в ReduceTask, тип по умолчанию GroupingComparator можно также настроить
WritableComparator обеспечивают основу для вторичного рода средство (наследовать), реагировать на различные потребности бизнеса
Например GroupingComparator (
пакет компаратор
) будет записать файл на диск и в ReduceTask сгруппированных по ключевым отсортирован, он определяет следующий ключ такой же, та же самая группа Key прошла уменьшить () исполнение
Пользовательские группировки эффект:
job.setGroupingComparatorClass (OrderGroupingComparator.class);