потоковая передача hadoop не может поддерживать stream.tmpdir - PullRequest
0 голосов
/ 16 октября 2018

Для поддержки загрузки больших файлов необходимо указать 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"
...