输出位置验证失败...映射器在输出文件夹中创建 _temporary 目录

Output Location Validation Failed... mapper creating _temporary directory in output folder

运行

之后
hdfs dfs -rm -r -skipTrash hdfs://valid/output/path
hdfs dfs -ls hdfs://valid/output/path

并验证此输出目录不存在,我仍然收到以下错误:

2016-12-30 23:38:55,290 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 6000:  Output Location Validation Failed for: '/valid/output/path More info to follow:
Output directory hdfs://valid/output/path already exists

STORE 调用之前,我还尝试在我的 pig 脚本中 fs -rm -rrmr,但它错误地声称该文件夹不存在。

当我ls输出hdfs://valid/output/path目录时,pig脚本报错后显示一个_temporary目录,其中包含attempt_[insert random number]目录,依次似乎包含活泼的文件。我怀疑映射器正在将中间数据块写入我的输出目录。为什么会这样,我该如何停止它?

相关headers如下:

SET default_parallel 50;
SET mapreduce.job.queuename my.queue.name;
SET mapreduce.reduce.markreset.buffer.percent 0.7;
SET mapreduce.map.java.opts -Xmx3200m;
SET mapreduce.reduce.java.opts -Xmx6400m;
SET yarn.app.mapreduce.am.command-opts -Xmx6400m;
SET mapreduce.map.memory.mb 4096;
SET mapreduce.reduce.memory.mb 8192;
SET yarn.app.mapreduce.am.resource.mb 8192;
SET mapreduce.reduce.maxattempts 20;

已尝试以下解决方案但未成功:

Apache Pig, Suppress "Output Location Validation Failed" "Output directory ... already exists"

尝试使用 rmf command 并像这样放置路径

rmf /valid/output/path

目录不存在不会报错,请在存储数据前使用。