Использование hadoop-streaming-0.20.205.0.jar в качестве пользовательского JAR, Amazon Elastic Mapreduce - PullRequest
1 голос
/ 17 января 2012

Когда я использую Amazon Elastic Mapreduce, я хотел бы использовать Using hadoop-streaming-0.20.205.0.jar для потоковой передачи hadoop, а не потоковой передачи Elastic Mapreduce. Мне нужно спроектировать собственные разделители, формат ввода, формат вывода и так далее.

Итак, я попытался создать новое пользовательское задание JAR как

JAR Location: stt.streaming/hadoop-streaming-0.20.205.0.jar
JAR Arguments: 
    -input s3n://stt.streaming/test_input 
    -output s3n://stt.streaming/test_output 
    -mapper s3n://stt.streaming/mapper.py 
    -reducer s3n://stt.streaming/reducer.py

Сценарии Python mapper.py и reducer.py были выполнены без каких-либо проблем с использованием потокового задания EMR.

Тем не менее, я получил следующие сообщения об ошибках как

java.io.IOException: Cannot run program "s3n://stt.streaming/mapper.py": java.io.IOException: error=2, No such file or directory
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:460)
    at org.apache.hadoop.streaming.PipeMapRed.configure(PipeMapRed.java:166)
    at org.apache.hadoop.streaming.PipeMapper.configure(PipeMapper.java:63)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:88)
    at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:64)
    at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117)
    at org.apache.hadoop.mapred.MapRunner.configure(MapRunner.java:34)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    ...
    ...
    ...

Смысл моих вопросов

  1. Есть ли скрытые проблемы на моей работе? Я не знаю, какие проблемы остаются, потому что моя работа не была выполнена при доступе к mapper.py и reducer.py.
  2. Как получить доступ к моим mapper.py и reducer.py?
  3. Потоковая работа EMR, похоже, использует /home/hadoop/contrib/streaming/hadoop-streaming.jar. Могу ли я получить этот источник? мои проблемы могут быть решены, если я получу этот источник. Благодаря.
...