2013-02-21 4 views
0

Я смотрел в Hive на AWS (чтобы быть конкретным). Они обеспечивают два вариантаAWS EMR Auto Scaling

  1. нереста однорангового кластера, в котором кластер ЭХ лесенок вниз после выполнения заранее указанного запроса улья (в начальной загрузке) вычисляются.
  2. Нерест кластера Кустарников в интерактивном режиме, где SSH может быть подключен к ведущему устройству и предоставлять запросы на улей с помощью клиента командной строки hive.

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

Я хочу изменить количество подчиненных узлов в кластере живой кластера. Я прочитал в emr faq, что он просто поддерживает добавление и удаление task-nodes, но простое добавление (но не удаление) core-nodes. Ядро-узлы способствуют хранению HDFS, но узлы-узлы этого не делают.

Я хочу добавить больше базовых узлов в работающий кластер и уменьшить их, когда количество запущенных запросов меньше. Есть ли способ достичь этого (может быть, использовать cloudwatch)?

ответ

3

Масштабирование числа запросов более важно для количества узлов задачи (вычислительная часть Hadoop) и меньше числа основных узлов (часть хранения данных Hadoop), так как количество данных не меняется.

Ребалансировка и перераспределение данных, когда вы хотите масштабировать вверх и вниз по своим запросам, не является хорошей идеей. Он слишком медленный и слишком сложный, чтобы приносить реальную пользу.

«Плата за то, что вы используете» и быстрый запуск без конфигурации EMR должны побуждать вас убивать ваш кластер, когда он вам не нужен, и запускать новый, когда вам это нужно. Вы можете оптимизировать Hive на EMR для хранения метаданных таблицы во внешней базе данных MySQL между запуском кластера, чтобы избежать отсутствия или повторения определений таблиц.

+0

Ну что, если удерживающий-живой улей-кластер требуется, чтобы избежать накладных расходов на создание нового кластера ОГО для каждого запроса и срывать его после его завершения? –

+0

Возможно, вам стоит подумать о Redshift (http://aws.amazon.com/redshift/) – Guy

+0

Да, я могу посмотреть на это ... спасибо за указание в этом направлении. Я предполагаю, что мой прецедент не будет реализован с помощью виртуального кластера emive кластера, поэтому этот вопрос будет закрыт. –

1

Существует некоторая ценность в том, что узлы данных также расширяются. Масштабирование слишком далеко с помощью только узлов задачи для длинных кластеров может привести к выпуску горлышка HDFS (если имеется много промежуточных данных.)

Рассматривали ли вы просмотр Qubole? Qubole обеспечивает автоматическое масштабирование вверх и вниз в зависимости от нагрузки. Пользователь настраивает кластер с подчиненными узлами min и max. Это будут как узлы задач, так и узлы данных.

2

Вы можете взглянуть на Themis, инфраструктуру автомасштабирования EMR, разработанную в Atlassian. Текущие функции включают проактивную, а также реактивную автомасштабирование, она поставляется с веб-интерфейсом, и инструмент очень прост в настройке.

(Извинения для размещения в старой теме, но ответа до сих пор может быть интересно для читателей открывать эту тему.)

0

Я знаю, я немного опоздал на вечеринку здесь, но у меня была аналогичная проблема много раз, и я хотел поделиться одной возможной альтернативой. Я написал инструмент Java для динамического изменения кластера EMR во время обработки. Это может помочь кому-то.Проверьте это по адресу:

http://www.lopakalogic.com/articles/hadoop-articles/dynamically-resize-emr/

Исходный код доступен на Github