猪本地模式溢出数据问题

pig local mode spill data issue

我正在尝试解决这个问题,但无法理解。我的开发机器 运行 中的 pig 脚本在 1.8 GB 数据文件上成功运行。 当我尝试在服务器中 运行 它时,它表示找不到本地设备来溢出数据 spill0.out 我修改了 pig.property 文件中的 pig.temp.Dir 属性 以指向具有 space..

的位置

错误: org.apache.hadoop.util.DiskChecker$DiskErrorException:找不到 output/spill0.out

的任何有效本地目录

那么如何找出 pig 溢出数据的位置,我们是否也可以以某种方式更改 pig 溢出目录位置。

我在本地模式下使用 pig。

任何想法或建议或解决方法都会有很大帮助。

谢谢..

这不是 Pig 的问题。 我没有使用 Pig,我也有完全相同的错误。 这个问题似乎与 Hadoop 更相关。我也在本地模式下使用它。我正在使用 Hadoop 2.6.0

我找到了答案。

我们需要将以下内容放入 $PIG_HOME/conf/pig.properties 文件

mapreduce.jobtracker.staging.root.dir
mapred.local.dir
pig.temp.dir

然后测试。

这帮我解决了问题。

我没有找到这些答案,Pig(版本 0.15.0)仍在将 pigbag* 文件写入 /tmp 目录,所以我只是重命名了我的 /tmp 目录并创建了一个符号 link 到所需位置,如下所示:

sudo -s #change to root
cd /
mv tmp tmp_local
ln -s /desired/new/tmp/location tmp
chmod 1777 tmp
mv tmp_local/* tmp

确保在执行 运行 这些命令时没有正在写入 tmp 文件夹的活动应用程序。