我正在尝试解决此问题,但无法理解。我的开发机器中的pig脚本成功运行了1.8 GB的数据文件。 当我试图在服务器中运行它时,它说它找不到本地设备来溢出数据spill0.out 我修改了pig.property文件中的pig.temp.Dir属性,指向一个有空格的位置..
错误: org.apache.hadoop.util.DiskChecker $ DiskErrorException:找不到output / spill0.out的任何有效本地目录
那么如何找出猪在哪里泄露数据,我们是否可以以某种方式更改猪的泄漏目录位置。
我在本地模式下使用猪。
任何想法或建议或解决方法都会有很大的帮助。
谢谢..
答案 0 :(得分:1)
我找到了答案。
我们需要将以下内容放到$ PIG_HOME / conf / pig.properties文件中
mapreduce.jobtracker.staging.root.dir
mapred.local.dir
pig.temp.dir
然后测试。
这有助于我解决问题。
答案 1 :(得分:0)
猪不是问题。 我没有使用猪,我也有完全相同的错误。 这个问题似乎与Hadoop有关。我也在本地模式下使用它。我正在使用Hadoop 2.6.0
答案 2 :(得分:0)
我对这些答案没有运气,Pig(版本0.15.0)仍在将pigbag*
文件写入/tmp
dir所以我只是重命名了我的/tmp
目录并创建了一个符号链接到这样的理想位置:
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文件夹。