Способность ограничить максимальное количество редукторов для работы Hadoop Hive Mapred? - PullRequest
1 голос
/ 07 февраля 2011

Я пытался добавить в свой запрос:

set mapred.running.reduce.limit = 25;

А

 set hive.exec.reducers.max = 35;

Последний заключил в тюрьму работу с 530 редукторами до 35 ... что заставляет меня думать, что он собирается попробовать и обувной вал 530 редукторов стоимостью работы в 35.

Сейчас даю

set mapred.tasktracker.reduce.tasks.maximum = 3;

попытка проверить, является ли это число каким-то максимальным значением для узла (ранее было 7 в кластере с 70 потенциальными редукторами).

Обновление:

 set mapred.tasktracker.reduce.tasks.maximum = 3;

Ничего не поделаешь, хотя стоит попробовать.

1 Ответ

1 голос
/ 09 февраля 2011

Не совсем решение вопроса, но потенциально хороший компромисс.

set hive.exec.reducers.max = 45;

Для суперзапроса doom, содержащего 400+ редукторов, это заключает в тюрьму самую дорогую задачу улья, всего до 35 редукторов. Мой кластер в настоящее время имеет только 10 узлов, каждый из которых поддерживает 7 редукторов ... так что в действительности только 70 редукторов могут работать одновременно. Снизив срок до 70, я заметил небольшое улучшение в скорости без видимых изменений в конечном продукте. Тестирование это в производстве, чтобы выяснить, что именно здесь происходит. Тем временем это хорошее компромиссное решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...