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

ivqmmu1c  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(442)

我有一个2.6MB大小的csv文件。我创建了一个配置单元表并在其中加载了csv文件。
现在,如果我写一个查询“select*from order by a;”,mapreduce使用1个reducer。它是如何确定减速机的数量为1的?它使用了默认值“1”还是其他什么?
一般来说,hive如何决定在“order by”、“sort by”或“group by”子句中使用多少个reducer?

jmo0nnb3

jmo0nnb31#

它与数据大小一起使用,默认值为1/1gb,其大小由以下属性调节:

hive.exec.reducers.bytes.per.reducer

如果您想有更多的减速器,请使用以下设置:

mapred.reduce.tasks

完整的设置列表和解释可以在这里找到。

50few1ms

50few1ms2#

Hive中的减速器数量是使用 hive.exec.reducers.bytes.per.reducer 属性,其中1gb(1000000000字节)是它的默认值。您可以通过更改上述属性来配置减速器的数量。还需要通过属性设置作业的常量减速器数 mapred.reduce.tasks //配置单元站点.xml

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

//控制台

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

相关问题