Улей соединяю множество редукторов - PullRequest
7 голосов
/ 13 февраля 2012

Мне нужно установить количество редукторов при выполнении операции соединения в Hive.Я не хочу устанавливать одинаковое количество редукторов для каждой имеющейся у меня работы по присоединению.Как я могу упомянуть это в качестве аргумента?Заранее спасибо.

Ответы [ 2 ]

14 голосов
/ 14 февраля 2012

В верхней части файла сценария поместите это:

set mapred.reduce.tasks=128
0 голосов
/ 02 июня 2015

Единственный способ сделать это в настоящее время - разделить ваш скрипт Hive на несколько частей, где тяжелые объединения будут помещены в другой скрипт. Затем для тяжелых соединений можно указать большое количество редукторов. Чтобы выполнить все эти сценарии за один раз, вы можете использовать опцию hive -f со всеми сценариями, перечисленными в сценарии оболочки, как показано ниже: #example of shell script RunMyHQL.sh $HIVE_HOME/bin/hive -f /somepath/script1.hql $HIVE_HOME/bin/hive -f /somepath/script2.hql $HIVE_HOME/bin/hive -f /somepath/script3.hql

Затем назначьте соответствующие права на файл RunMyHQL.sh chmod u+x /somepath/RunMyHQL.sh

Затем выполните скрипт оболочки ./RunMyHQL.sh Каждый из script1, script2 и script3 может содержать желаемое количество картографов и редукторов. Если это нужно запускать через определенные промежутки времени снова и снова, то я предлагаю вам реализовать рабочий процесс Oozie.

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