복붙노트

[HADOOP] 자바에서 하둡 예 JAR 파일을 실행

HADOOP

자바에서 하둡 예 JAR 파일을 실행

우분투 12.04, 이클립스 3.7에 하둡 1.0.3와 함께 일하고 Windowbuider 프로를 사용하여 하둡 작업을 실행하기 위해 GUI를 개발하고있다. 나는 GUI에서 내 코드를 포함하는 jar 파일을 실행해야합니다. 나는 약간의 성공과 runtime.getruntime.exec () 메소드를 사용했다. 그러나 동시에 그것은 분배와 함께 제공되는 PiEstimator처럼 .jar 파일 실행할 수 없습니다, DFS 특정 명령을 실행 않습니다. 다음과 같이 내 코드는 다음과 같습니다

JButton btnYrhtrdsf = new JButton("Start Daemons");
btnYrhtrdsf.addMouseListener(new MouseAdapter() 
{
    @Override
public void mouseClicked(MouseEvent e) 
    {
    try { //WORKING
    Runtime.getRuntime().exec("/usr/local/hadoop/hadoop-1.0.3/bin/start-dfs.sh");
    Runtime.getRuntime().exec("/usr/local/hadoop/hadoop-1.0.3/bin/start-mapred.sh");
    } 
        catch (IOException e1) {
        e1.printStackTrace();
    }
    }
});
    contentPane.add(btnYrhtrdsf, "16, 10");

    JButton btnMakeDirectory = new JButton("Make Folder in HDFS");
    btnMakeDirectory.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(MouseEvent e) {//WORKING
            try {
                Runtime.getRuntime().exec("/usr/local/hadoop/hadoop-1.0.3/bin/hadoop dfs -mkdir input2");
            } catch (IOException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
        }
    });
    contentPane.add(btnMakeDirectory, "12, 18");

    JButton btnStopDaemons = new JButton("Stop Daemons");
    btnStopDaemons.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(MouseEvent e) {
            try { //WORKING
                Runtime.getRuntime().exec("/usr/local/hadoop/hadoop-1.0.3/bin/stop-dfs.sh");
                Runtime.getRuntime().exec("/usr/local/hadoop/hadoop-1.0.3/bin/stop-mapred.sh");
            } catch (IOException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
        }
    });
    contentPane.add(btnStopDaemons, "16, 18");

    JButton btnPiestimator = new JButton("PiEstimator");
    btnPiestimator.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(MouseEvent e) {
            try { //PROBLEM!!!!!
                Runtime.getRuntime().exec("/usr/local/hadoop/hadoop-1.0.3/bin/hadoop jar hadoop-examples-1.0.3.jar pi 2 5");
            } catch (IOException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
        }
    });
    contentPane.add(btnPiestimator, "14, 26");
}

해결법

  1. ==============================

    1.다음 줄을 교체

    다음 줄을 교체

    Runtime.getRuntime().exec("/usr/local/hadoop/hadoop-1.0.3/bin/hadoop jar hadoop-examples-1.0.3.jar pi 2 5");
    

    와:

    Runtime.getRuntime().exec("/usr/local/hadoop/hadoop-1.0.3/bin/hadoop jar /usr/local/hadoop/hadoop-1.0.3/hadoop-examples-1.0.3.jar pi 2 5");
    
  2. from https://stackoverflow.com/questions/15186213/executing-hadoop-example-jar-files-from-java by cc-by-sa and MIT license