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