设置Hive流式查询

时间:2015-08-31 11:23:45

标签: python hadoop mapreduce hive bigdata

我在设置流媒体作业中的缩减器数量方面存在问题。

查询如下所示:

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脚本减少table_X中的记录。这是一项计算密集型任务,记录由reducer聚集也很重要。

问题是我无法通过设置大量减速器来平衡负载。

set mapred.reduce.tasks:

根本不起作用,它给了我128个减速器,但最后剩下1个减速器,作业是99.9%并且它工作很长时间(我猜所有的工作 - 通过脚本流式传输留给这个减速器)

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

有点帮助,但我无法平衡负载。它仍然给我100个减少器,但最后有20-30个减速器通过脚本进行流式处理。顺便说一句,有人可以澄清一下:如果我将它设置为1000000字节= 1Mb,我们是否谈论压缩音量?这个参数有多小?

您还可以建议设置最小量的减速器吗?

0 个答案:

没有答案