Как hive / hadoop гарантирует, что каждый картограф работает с локальными для него данными? - PullRequest
5 голосов
/ 04 августа 2011

2 основных вопроса, которые меня беспокоят:

  • Как я могу быть уверен, что каждый из 32 файлов куста, используемый для хранения моих таблиц, находится на своей уникальной машине?
  • Если этослучается, как я могу быть уверен, что если улей создаст 32 картографа, каждый из них будет работать со своими локальными данными?Гарантирует ли hadoop / hdfs это волшебство, или hive, как умное приложение, гарантирует, что это произойдет?

Справочная информация: у меня кластер кустов из 32 машин и:

  • Все мои таблицы созданы с помощью "CLUSTERED BY(MY_KEY) INTO 32 BUCKETS"
  • Я использую hive.enforce.bucketing = true;
  • Я проверил, и действительно каждая таблица хранится в виде 32 файлов в файле user / hive / warehouse
  • Я использую коэффициент репликации HDFS 2

Спасибо!

Ответы [ 2 ]

5 голосов
/ 05 августа 2011
  1. Размещение данных определяется HDFS. Он будет пытаться сбалансировать байты по машинам. Из-за репликации каждый файл будет находиться на двух компьютерах, что означает, что у вас есть два компьютера-кандидата для локального чтения данных.
  2. HDFS знает, где хранятся все файлы, и Hadoop использует эту информацию для размещения картографов на тех же хостах, где хранятся данные. Вы можете посмотреть на счетчики своей работы, чтобы увидеть количество задач карты «локальные данные» и «стойки локальных». Это особенность Hadoop, о которой вам не нужно беспокоиться.
1 голос
/ 05 августа 2011

Без объединений используется обычный механизм Hadoop Map Reduce для локальности данных (он описан в ответе Спайка).
Специально для улья я бы упомянул присоединения к карте. Можно сказать, что максимальный размер таблицы только для присоединения к карте. Когда одна из таблиц достаточно мала, Hive будет реплицировать эту таблицу на все узлы, используя механизм распределенного кэша, и будет гарантировать, что весь процесс объединения происходит локально с данными. Есть хорошее объяснение процесса: http://www.facebook.com/note.php?note_id=470667928919

...