python—设置配置单元流查询中的缩减器数

vlju58qv  于 2021-06-03  发布在  Hadoop
关注(0)|答案(0)|浏览(245)

我有一个在流作业中设置减速器数量的问题。
查询如下所示:

set mapred.job.name = 'Job name';
set mapred.reduce.tasks=128;
FROM (
  FROM (
    SELECT id, record, day
    FROM table_X TABLESAMPLE (BUCKET 1 OUT OF 4 ON id) 
    WHERE DAY='2015-08-27'
    CLUSTER BY(id)
  ) temp_table
  REDUCE *
  USING 'python script.py' AS id, decision
) t
INSERT OVERWRITE TABLE table_Y
  SELECT *;

我想使用python脚本减少表x中的记录。这是一项计算密集型的任务,而且记录由约简器进行聚类也是至关重要的。
问题是我不能通过设置大量减速器来平衡负载。

set mapred.reduce.tasks:

根本不起作用,它给了我128个减速机,但最后还有1个减速机,作业是在99.9%,它的工作时间很长(我猜所有的工作-通过脚本流是留给这个减速机)

set hive.exec.reducers.bytes.per.reducer:

有点帮助,但我不能很好地平衡负载。它仍然给我约100个减缩器,但在最后有20-30个减缩器的工作,通过脚本流。顺便问一下,有人能澄清一下:如果我把它设置为1000000字节=1mb,我们谈论的是压缩卷吗?这个参数能有多小?
您还可以推荐什么来设置减速器的最小数量?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题