2016-03-11 5 views
0

Я использую следующий код для запуска свинью из Java:Ошибка при выполнении сценария Свиньи из Java

import org.apache.pig.ExecType; 
import org.apache.pig.PigServer; 
public class Pigtest { 
    public static void main(String[] args) { 
     try { 
      PigServer pigServer = new PigServer(ExecType.MAPREDUCE); 
      runQuery(pigServer); 
     }catch(Exception e) { 
      e.printStackTrace(); 
     } 
    } 
    public static void runQuery(PigServer pigServer) { 
     try { 

      pigServer.registerQuery("input1 = LOAD '/pigtest.txt' as (f1:int, f2:chararray);"); 
      System.out.println("File found!"); 

      pigServer.registerQuery("store input1 into '/pigtest_out';"); 
     } catch(Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 

Как решить эту проблему? Но это дает следующее сообщение об ошибке:

java.io.IOException: Cannot run program "chmod": CreateProcess error=2, The system cannot find the file specified 
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) 
    at org.apache.hadoop.util.Shell.runCommand(Shell.java:149) 
    at org.apache.hadoop.util.Shell.run(Shell.java:134) 
    at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:286) 
    at org.apache.hadoop.util.Shell.execCommand(Shell.java:354) 
    at org.apache.hadoop.util.Shell.execCommand(Shell.java:337) 
    at org.apache.hadoop.fs.RawLocalFileSystem.execCommand(RawLocalFileSystem.java:481) 
    at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:473) 
    at org.apache.hadoop.fs.FilterFileSystem.setPermission(FilterFileSystem.java:280) 
    at org.apache.hadoop.fs.FileSystem.mkdirs(FileSystem.java:261) 
    at org.apache.hadoop.mapred.JobClient.configureCommandLineOptions(JobClient.java:573) 
    at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:761) 
    at org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:730) 
    at org.apache.hadoop.mapred.jobcontrol.Job.submit(Job.java:378) 
    at org.apache.hadoop.mapred.jobcontrol.JobControl.startReadyJobs(JobControl.java:247) 
    at org.apache.hadoop.mapred.jobcontrol.JobControl.run(JobControl.java:279) 
    at java.lang.Thread.run(Thread.java:722) 
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified 
    at java.lang.ProcessImpl.create(Native Method) 
    at java.lang.ProcessImpl.<init>(ProcessImpl.java:189) 
    at java.lang.ProcessImpl.start(ProcessImpl.java:133) 
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1021) 
    ... 16 more 

16/03/11 15:05:00 ERROR mapReduceLayer.MapReduceLauncher: Failed to produce result in: "file:/pigtest_out" 
16/03/11 15:05:00 INFO mapReduceLayer.MapReduceLauncher: Failed! 

ответ

0

Он говорит:

Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified

Похоже, ваш входной файл /pigtest.txt нет в HDFS.

нагрузки и магазин заявления ожидают путь HDFS в режиме выполнения MapReduce. Убедитесь, что эти пути данных являются файловой системой HDFS.

0

Свинья не может записать результат в/pigtest_out. Проверьте, есть ли у вас все права на создание файла в папке «/». Постарайтесь разместить вывод в домашней папке пользователя.

Смежные вопросы