Стратегия размещения узлов и ядер Hadoop - PullRequest
1 голос
/ 10 октября 2011

У меня есть кластер с 50 узлами, и каждый узел имеет 8 ядер для вычислений. Если у меня есть работа, на которую я планирую наложить 200 редукторов, какова будет хорошая стратегия распределения вычислительных ресурсов для повышения производительности?

Я имею в виду, лучше ли выделить 50 узлов и 4 ядра на каждом из них или выделить 25 узлов и 8 ядер для каждого из них? Какой из них лучше в каком случае?

Ответы [ 2 ]

1 голос
/ 10 октября 2011

Чтобы ответить на ваш вопрос, это зависит от нескольких вещей. 50 узлов в целом будут лучше, на мой взгляд:

  • Если вы читаете много данных с диска, 50 узлов будут лучше, потому что вы распараллелите загрузку с диска 2x.
  • Если вы вычисляете и обрабатываете большое количество данных, то 50 узлов будут лучше, потому что количество ядер не масштабируется с обработкой 1: 1 (т. Е. Вдвое больше ядер - не в 2 раза быстрее). Между тем, больше процессоров масштабируется близко к 1: 1).
  • Hadoop должен запускать такие вещи, как процессы TaskTracker и DataNode на этих узлах, а также вещи уровня ОС. И те, что «берут» ядра.

Однако, если ваша основная проблема - сеть, вот несколько недостатков наличия 50 узлов:

  • Вероятно, 50 узлов будут на двух стойках. Находятся ли они в плоской сети, или вам приходится иметь дело с коммуникацией через стойку iter? Вам придется настроить Hadoop соответственно;
  • Сетевой коммутатор, поддерживающий 50 узлов, будет дороже, чем тот, который поддерживает 25;
  • Перестановка сети между картой и уменьшением приведет к тому, что коммутатор будет немного больше работать для кластера из 50 узлов, но все равно примерно такой же объем данных будет передаваться по сети.

Даже с учетом этих проблем с сетью, я думаю, вы обнаружите, что 50 узлов лучше, просто потому, что значение узла - это не только количество ядер. Вы должны учитывать, в основном, сколько у вас дисков.

1 голос
/ 10 октября 2011

Трудно сказать, обычно это всегда "чем выше, тем лучше".Лучше предотвращать сбои на большем количестве машин.

Обычно Hadoop подходит для стандартного оборудования, и вы можете выбрать 50 4 ядер на каждом сервере.

Но я бы выбрал 8 ядер, если онипревосходное аппаратное обеспечение, например, более высокая частота процессора, ОЗУ DDR3 или диски со скоростью 10 000 об / мин.

...