[英]Jaspersoft iReport - how to set number of reducers for Hive query?
我正在嘗試使用Jaspersoft iReport和Hive來運行一些報表,該報表運行良好,但是當我嘗試為Hive查詢設置減速器數量時除外。 我認為這個問題可能適用於使用Hive JDBC設置減速器數量的一般情況。
我怎樣才能做到這一點?
您不能在報表查詢中放入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不支持這一點。 但是我認為您可以通過將“設置” HiveQL語句作為主要報表查詢來解決此問題。 然后將“選擇”查詢作為子數據集。 這是我測試此想法的報告的摘錄:
<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>
我確認該報告是這樣工作的。 正如您所期望的那樣,我的子數據集填充了Table組件。 我沒有一種簡單的方法來確認它確實限制了減速器的數量...但是應該。 (請告訴我們是否這樣做!)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.