о понимании пряжи контейнера - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть кластер с 1 ведущим и 4 подчиненными. Вот мой конфиг:
nodemanager

  • yarn.nodemanager.resource.memory-mb = 13,5 Г

контейнер

  • yarn.scheduler.minimum-allocation-mb = 32M
  • yarn.scheduler.maximum-allocation-mb = 13,5 Г

mapreduce:

  • mapreduce.map.memory.mb = 1696M
  • mapreduce.map.java.opts = -Xmx1356m
  • mapreduce.reduce.memory.mb = 3392M
  • mapreduce.reduce.java.opts = -Xmx2713m

Я запускаю простой запрос улья:

select count(1) from my_table;

mapperreducer

Я получаю 189 картперов и 1 сокращение.
containers
192 контейнера.
В моем понимании, контейнеры = сумма (мапперы, редукторы, appmaster), но мапперы + редукторы = 190, 2 аппмастера?
Другой вопрос: в моей таблице много файлов в HDFS, а не в 189. В моем понимании входные файлы = мапперы, но это не так. Поэтому я предполагаю, что файлы объединяются перед вводом. Как я могу получить размер входного файла?
Я нахожу настройку:

mapred.max.split.size=256000000

, но 189 * 256MB! = 52GB (размер таблицы в HDFS). На самом деле я установил mapred.max.split.size = 2048000000, а количество картографов изменилось на 27. Я хочу знать, как это работает.
Последний вопрос: я хочу знать значение этой формы:
form

Надеюсь, вы понимаете, что я сказал. Большое спасибо!

...