私は Ubuntu 12.04、Eclipse 3.7 で Hadoop 1.0.3 を使用しており、Windowbuider Pro を使用して Hadoop ジョブを実行するための GUI を開発しています。コードを含む jar ファイルを GUI から実行する必要があります。runtime.getruntime.exec() メソッドを使用して、ある程度成功しました。ただし、DFS 固有のコマンドは実行できますが、ディストリビューションにバンドルされている PiEstimator のような .jar ファイルは実行できません。私のコードは次のとおりです。
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");
}