Для поддержки загрузки больших файлов необходимо указать stream.tmpdir в сценарии оболочки. Но при добавлении и запуске сценария он сообщит, что
18/10/15 18:13:09 WARN streaming.StreamJob: -file option is deprecated, please use generic option -files instead.
Exception in thread "main" java.io.IOException: No such file or directory
at java.io.UnixFileSystem.createFileExclusively(Native Method)
at java.io.File.createTempFile(File.java:2024)
at org.apache.hadoop.streaming.StreamJob.packageJobJar(StreamJob.java:704)
at org.apache.hadoop.streaming.StreamJob.setJobConf(StreamJob.java:956)
at org.apache.hadoop.streaming.StreamJob.run(StreamJob.java:128)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)
at org.apache.hadoop.streaming.HadoopStreaming.main(HadoopStreaming.java:50)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
сценарий оболочки, как показано ниже
/data/clusterserver/hadoop/bin/hadoop jar /data/clusterserver/hadoop/share/hadoop/tools/lib/hadoop-streaming-2.6.4.jar \
-D mapred.job.name="predict_hadoop" \
-D mapred.reduce.tasks=0 \
-D mapreduce.job.maps=10 \
-D stream.tmpdir=$tmp_path \
-file predict \
-file model.bin \
-input $input_path \
-output $output_path \
-mapper "predict"