Jaspersoft iReport - как установить количество редукторов для запроса Hive? - PullRequest
2 голосов
/ 21 марта 2012

Я пытаюсь запустить некоторые отчеты, используя Jaspersoft iReport, используя Hive, который работает нормально, за исключением ситуации, когда я пытаюсь установить число редукторов для запроса Hive.Я думаю, что этот вопрос может относиться к общему случаю установки числа редукторов с использованием Hive JDBC.

Как я могу это сделать?

1 Ответ

1 голос
/ 24 марта 2012

Вы не можете поместить 2 оператора SQL (или оператора HiveQL) в запрос отчета.Это означает, что вы не можете использовать строку запроса, подобную этой:

set mapred.running.reduce.limit = 25;
SELECT name, phone_office, billing_address_city, billing_address_street, billing_address_country FROM accounts;

Обычно я хотел бы добавить подобное свойство в соединение JDBC.Но, насколько я могу судить, Hive не поддерживает это.Но я думаю, что вы могли бы обойти это, поместив оператор "set" HiveQL в качестве основного запроса отчета.Затем поместите запрос "select" в качестве набора данных.Вот фрагмент из отчета, где я проверил эту идею:

<subDataset name="Accounts">
    <queryString language="HiveQL">
        <![CDATA[SELECT name, phone_office, billing_address_city, billing_address_street, billing_address_country FROM accounts]]>
    </queryString>
    <field name="name" class="java.lang.String"/>
    <field name="phone_office" class="java.lang.String"/>
    <field name="billing_address_city" class="java.lang.String"/>
    <field name="billing_address_street" class="java.lang.String"/>
    <field name="billing_address_country" class="java.lang.String"/>
</subDataset>
<queryString language="HiveQL">
    <![CDATA[set mapred.running.reduce.limit = 25]]>
</queryString>

Я подтверждаю, что отчет работает следующим образом.Мой набор данных заполняет компонент таблицы так, как вы ожидаете.У меня нет простого способа подтвердить, что это действительно ограничило число редукторов ... но это должно быть.(Пожалуйста, дайте нам знать, если это так!)

...