Соединение стороны карты Vs. Присоединиться



В этом посте обсуждается присоединение сторон карты Hadoop к Vs. присоединиться. Также узнайте, что такое уменьшение карты, таблица соединения, сторона соединения, преимущества использования операции соединения стороны карты в Hive.

В этом блоге мы обсудим Боковое соединение карты и его преимущества перед обычной операцией соединения в Улей .Это важная концепция, которой вам нужно научиться, чтобы реализовать свои .Но прежде чем узнать об этом, мы должны сначала понять концепцию 'Присоединиться' и что происходит внутри, когда мы выполняем соединение в Улей .

Присоединиться - это предложение, объединяющее записи двух таблиц (или наборов данных).
Предположим, что у нас есть две таблицы A и B. Когда мы выполняем операцию соединения с ними, она возвращает записи, которые представляют собой комбинацию всех столбцов A и B.





Теперь давайте разберемся с функциональностью обычного соединения на примере.

Всякий раз, когда мы применяем операцию соединения, задание будет назначено задаче уменьшения карты, которая состоит из двух этапов: ‘Этап карты 'И' Уменьшить этап '. Задача картографа на этапе карты - 'читать' данные из таблиц соединения и в 'вернуть' в «Ключ присоединения» и «Объединенное значение» пара в промежуточный файл. Далее, на этапе перемешивания этот промежуточный файл затем сортируется и объединяется. Задача редуктора на этапе сокращения - принять этот отсортированный результат в качестве входных данных и выполнить задачу соединения.



  • Присоединение на стороне карты похоже на соединение, но все задачи будут выполняться только картографом.

    как написать метод tostring в java
  • Соединение на стороне карты в основном подходит для небольших таблиц, чтобы оптимизировать задачу.



Как соединение на стороне карты оптимизирует задачу?

Предположим, что у нас есть две таблицы, одна из которых небольшая. Когда мы отправляем задачу уменьшения карты, локальная задача Map Reduce будет создана перед исходной задачей соединения Map Reduce, которая будет считывать данные небольшой таблицы из HDFS и сохранять их в хэш-таблице в памяти. После чтения он сериализует хеш-таблицу в памяти в файл хеш-таблицы.

На следующем этапе когда выполняется исходная задача Join Map Reduce, она перемещает данные из файла хеш-таблицы в распределенный кеш Hadoop, который заполняет эти файлы на локальном диске каждого сопоставителя. Таким образом, все сопоставители могут загрузить этот файл постоянной хеш-таблицы обратно в память и выполнить операцию соединения, как раньше. Последовательность выполнения оптимизированного соединения карты показана на рисунке ниже. После оптимизации небольшую таблицу нужно прочитать только один раз. Кроме того, если на одном компьютере запущено несколько сопоставителей, распределенному кешу необходимо отправить на этот компьютер только одну копию файла хеш-таблицы.

Преимущества использования бокового соединения карты:

  • Соединение на стороне карты помогает минимизировать затраты, связанные с сортировкой и объединением в тасовать и уменьшить этапы.
  • Соединение на стороне карты также помогает повысить производительность задачи за счет сокращения времени ее завершения.

Недостатки соединения на стороне карты:

  • Соединение на стороне карты подходит только в том случае, если одна из таблиц, над которыми вы выполняете операцию соединения на стороне карты, достаточно мала, чтобы поместиться в памяти. Следовательно, не рекомендуется выполнять соединение на стороне карты для таблиц, которые содержат огромные данные в обеих из них.

Простой пример для соединений Map Reduce:

Создадим две таблицы:

  • Emp : содержит сведения о сотруднике, такие как имя сотрудника, идентификатор сотрудника и отдел, к которому он принадлежит.

  • Отдел: содержит такие сведения, как название отдела, идентификатор отдела и т. д.

Создайте два входных файла, как показано на следующем изображении, чтобы загрузить данные в созданные таблицы.

employee.txt

dept.txt

Теперь давайте загрузим данные в таблицы.

Давайте выполним Сторона карты Присоединиться на двух таблицах, чтобы извлечь список отделов, в которых работает каждый сотрудник.

Здесь второй стол это небольшой стол. Помните, всегда количество отделов будет меньше, чем количество сотрудников в организации.

разница между переопределением и перегрузкой

Теперь давайте выполним ту же задачу с помощью обычного соединения Reduce-side.

Выполняя оба соединения, вы можете найти два различия:

  • Соединение с уменьшением карты завершило работу за меньшее время по сравнению со временем, затраченным на обычное соединение.

  • Соединение Map-reduce завершило свою работу без помощи какого-либо редуктора, тогда как обычное соединение выполняло это задание с помощью одного редуктора.

Следовательно, Присоединение к карте лучше всего делать, когда одна из таблиц достаточно мала, чтобы уместиться в памяти и завершить работу за короткий промежуток времени.

В Среда в реальном времени , у вас будут наборы данных с огромным объемом данных. Поэтому выполнение анализа и извлечения данных займет много времени, если один из наборов данных имеет меньший размер. В таких случаях Присоединение к карте поможет выполнить работу за меньшее время.

Сейчас лучшее время для освоения Hadoop! Начните прямо сейчас со специально разработанного Edureka курса Big Data и Hadoop.

Использованная литература:
https://www.facebook.com/notes/facebook-engineering/join-optimization-in-apache-hive/470667928919

Похожие сообщения:

7 способов, которыми обучение работе с большими данными может изменить вашу организацию