2014-12-14 3 views
0

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

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

Я не могу понять связь между кластером и данными обработки. Надеюсь, кто-то может дать мне

некоторые идеи.

+0

По мере разделения данных на узлы вход в функцию поиска сокращается, например, у вас есть 100 записей, разделение этих данных на 10 кластеров, функция поиска будет искать только 10 элементов. Я не знаком с Hadoop, но я думаю, что именно поэтому это так же быстро, как с одним кластером. – Joelmob

+0

@Joelmob Спасибо за объяснение. –

ответ

1

Это основная идея распределенных вычислений.

Если у вас есть один сервер, работающий с данными размера X, он будет тратить на него время Y. Если у вас есть данные 2X, тот же сервер будет (грубо) тратить на это 2 года.

Но если у вас есть 10 серверов, работающих параллельно (в распределенной форме), и все они имеют всю информацию (X), тогда они будут тратить на нее время Y/10. Вы получите тот же эффект, имея в 10 раз больше ресурсов на одном сервере, но обычно это невозможно и/или выполнимо. (Как и увеличение мощности процессора в 10 раз, не очень разумно.)

Это, конечно, очень грубое упрощение, и Hadoop не хранит весь набор данных на всех серверах - только необходимые детали. Hadoop имеет подмножество данных на каждом сервере, и серверы работают над данными, которые они должны дать, чтобы дать один «ответ» в конце. Для этого требуется связь и различные протоколы, чтобы согласовать, какие данные следует делиться, как делиться ими, как их распространять и т. Д. - это то, что делает Hadoop.

Смежные вопросы