2015-01-25 4 views
0

java mapreduce 프로그램에서 파이썬 스크립트를 실행해야합니다. 파이썬 스크립트가 OUPUT를 기록 어디 여기java map 내에서 python 스크립트 실행하기 reduce

python methratio.py --ref=../refernce/referncefile -r -g --out=Ouputfile ./Inputfile 

입력 파일은 HDFS의 입력 파일 (HDFS)에 출력 파일입니다 : 여기

는 매퍼 클래스에서, 나는 파이썬 명령을 실행해야합니다 .

프로세스 작성기 나 다른 더 나은 옵션을 사용할 수 있습니까 ??

+0

컨텍스트가 100 % 확실하지 않지만 구현이 실제로 파이썬 스크립트에서 처리되는 Java 매퍼를 작성하려고합니까? 실제로 감속기를 사용하고 있습니까? Oozie 사용을 고려 했습니까? – mauzel

+0

@mauzel 예. 당신이 올바른지. 실제 구현은 python 스크립트에 의해 수행됩니다. OOzie에 대해서도 생각하고 있습니다. 그러나 어느 것이하기 쉬운지 혼란 스럽습니다. –

+0

Java에 의존 할 필요없이 파이썬에서 mapreduce 작업을 작성하는 방법에 관해서 인터넷에 상당한 양의 자료가 있습니다. O'Reilly Hadoop MapReduce 책은 내가 기억하고있는 것에서부터 (정확히 말해서) 기억하고 있습니다. 나는 "파이썬 mapreduce"구글을 시도하고 당신의 파이썬 스크립트를 MR 작업의 전체로 향상시킬 것입니다. (또는 Java로 모든 것을 작성하십시오.) – mauzel

답변

0
이 당신을 도울 수 있을지는 모르겠지만, 당신은 자바에서 이런 식으로 시스템 명령을 실행할 수 있습니다

:

public static void main(String[] args) throws IOException { 
     String s = null; 
     String command = "python <your_command>"; 
     Process p = Runtime.getRuntime().exec(command); 

    BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream())); 

    // read the output from the command 
    System.out.println("Here is the standard output of the command:\n"); 
    while ((s = stdInput.readLine()) != null) { 
     System.out.println(s); 
    } 
} 

당신은 http://alvinalexander.com/java/edu/pj/pj010016

희망이 도움이 당신에 대한 자세한 예를 볼 수 있습니다 : D

+0

클러스터의 각 노드에 파이썬이 있는지 확인해야한다. 설치됨 (주어진 ...이 아님) –