确定Hive“order by”子句中的reducer数量

时间:2016-04-27 11:00:54

标签: hadoop hive

我有一个2.6 MB大小的CSV文件。我创建了一个hive表并在其中加载了csv文件。

现在,如果我将查询写为“select * from abc order by a;” ,mapreduce使用1减速机。它是如何将减速器的数量确定为1的?它是否使用默认值“1”或其他?

一般来说,hive如何决定在“order by”,“sort by”或“group by”子句中使用多少Reducer?

2 个答案:

答案 0 :(得分:0)

它与数据大小相关,默认值为1 / 1GB,由此属性控制:

hive.exec.reducers.bytes.per.reducer

如果你想让更多的减速器设置它:

mapred.reduce.tasks

可以找到包含说明的完整设置列表here

答案 1 :(得分:0)

Hive中的Reducer数量是使用hive.exec.reducers.bytes.per.reducer属性计算的,其中1GB(1000000000字节)是默认值。 您可以通过更改上述属性来配置减速器的数量。您还需要通过属性mapred.reduce.tasks

为作业设置常量缩减器数

// hive-site.xml

<property>
   <name>hive.exec.reducers.bytes.per.reducer</name>
   <value>xxxxxxx</value>
</property>

// console

$ hive -e "set hive.exec.reducers.bytes.per.reducer=xxxxxxx"