在使用Hadoop streaming时,遇到报错如标题:
packageJobJar: [mapper_sim.py, reducer_sim.py, XXX files, /tmp/hadoop-unjar2957146529644350496/] [] /tmp/ streamjob2631394570007422828.jar tmpDir=null
Exception in thread "main" java.io.IOException: No space left on device
查看原因,主要是因为,Hadoop streaming时,把需要的文件打包成jar,放在/tmp目录中。在任务较多,并且文件较大的时候,/tmp目录超额,导致no space出错。
查了一圈stackoverflow什么的,有好多都没说到点子上,有些靠谱的是说“清空/tmp目录就好了”,但对我并不适合。所以,需要设定生成临时文件的目录位置。
又查了一圈,指向这里:
https://hadoop.apache.org/docs/r1.2.1/streaming.html#Specifying+Configuration+Variables+with+the+-D+Option
===========================================&