Hadoop Streaming в .NET - PullRequest
       1

Hadoop Streaming в .NET

2 голосов
/ 30 октября 2010

Я запускаю hadoop в режиме псевдораспределения и использую потоковую передачу hadoop для выполнения операций уменьшения карты. Но проблема в том, что я получаю сообщение об ошибке Streaming Job Failed . Ниже приведен журнал:

журналы stderr

java.io.IOException: не удается запустить программу «input / StdInOut.exe»: ошибка CreateProcess = 2, система не может найти указанный файл
at java.lang.ProcessBuilder.start (ProcessBuilder.java:460)
в org.apache.hadoop.streaming.PipeMapRed.configure (PipeMapRed.java:166)
в org.apache.hadoop.streaming.PipeMapper.configure (PipeMapper.java:63)
at sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод)
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)
в org.apache.hadoop.util.ReflectionUtils.setJobConf (ReflectionUtils.java:88)
в org.apache.hadoop.util.ReflectionUtils.setConf (ReflectionUtils.java:64)
в org.apache.hadoop.util.ReflectionUtils.newInstance (ReflectionUtils.java:117)
в org.apache.hadoop.mapred.MapRunner.configure (MapRunner.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод)
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)
в org.apache.hadoop.util.ReflectionUtils.setJobConf (ReflectionUtils.java:88)
в org.apache.hadoop.util.ReflectionUtils.setConf (ReflectionUtils.java:64)
в org.apache.hadoop.util.ReflectionUtils.newInstance (ReflectionUtils.java:117)
в org.apache.hadoop.mapred.MapTask.runOldMapper (MapTask.java:354)
в org.apache.hadoop.mapred.MapTask.run (MapTask.java:307)
в org.apache.hadoop.mapred.Child.main (Child.java:170)
Вызвано: java.io.IOException: ошибка CreateProcess = 2, система не может найти указанный файл at java.lang.ProcessImpl.create (собственный метод)
at java.lang.ProcessImpl. (ProcessImpl.java:81)
at java.lang.ProcessImpl.start (ProcessImpl.java:30)
at java.lang.ProcessBuilder.start (ProcessBuilder.java:453)
... еще 20

Я знаю, что это говорит java.io.IOException: Невозможно запустить программу "input / StdInOut.exe": Ошибка CreateProcess = 2, система не может найти указанный файл , но файл присутствует как на локально, а также на hdf по тому же пути.

Вот реализация моего собственного картографа:

static void Main(string[] args)
{
  string s;
  while ((s = Console.ReadLine()) != null) 
  {
    string[] words = s.Split(' ');
    foreach (var word in words) 
    {
      //Setting occurance of each word to 1
      Console.WriteLine(word + "\t" + 1);
    }
  }
}

и я использую эту команду для выполнения своей работы в ssh:

bin/hadoop jar contrib/streaming/hadoop-*-streaming.jar -input input/sample.txt -output output -mapper input/StdInOut.exe -reducer NONE

Какие-нибудь решения?

1 Ответ

2 голосов
/ 24 января 2012

Ошибка на самом деле относительный путь для картографа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...