我试图使用 Hive 自定义脚本来执行我的 mapreduce 工作。我有以下代码:
ADD FILE reducer1.py;
ADD FILE reducer2.py;
FROM (
FROM
(
SELECT i.time, i.id, i.response
FROM table_1 i
WHERE (i.id == 12345)
CLUSTER BY time
) A
REDUCE A.* USING 'reducer1.py'
AS (x,y,z)
CLUSTER BY x,y
) B
REDUCE B.* USING 'reducer2.py'
但是,这个蜂巢作业失败了。当我查看日志时,错误是:
“无法运行程序“/mapred/d02/local/taskTracker/usr/jobcache/job_201311040808_1131/attempt_201311040808_1131_r_000000_0/work/./rtbmapper_auctionsimulator_reducer2.py”:java.io.IOException:error=2,java.lang 中没有这样的文件或目录.ProcessBuilder.start(ProcessBuilder.java:460)
我在一开始就添加了上面两个 py 文件。此外,当我只运行 reducer1 时,它没有任何问题。我使用了以下代码:
ADD FILE reducer1.py;
FROM
(
SELECT i.time, i.id, i.response
FROM table_1 i
WHERE (i.id == 12345)
CLUSTER BY time
) A
REDUCE A.* USING 'reducer1.py'
所以我的问题是:Hive 自定义脚本是否只允许一个减速器?提前谢谢了!