从java执行hadoop示例jar文件 [英] executing hadoop example jar files from java

查看:119
本文介绍了从java执行hadoop示例jar文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Ubuntu 12.04和Eclipse 3.7上使用Hadoop 1.0.3,并且正在开发使用Windowbuider Pro执行Hadoop作业的GUI。我需要从GUI执行包含我的代码的jar文件。
我已经使用runtime.getruntime.exec()方法取得了一些成功。但是,虽然它执行特定于DFS的命令,但它不能执行.jar文件,例如捆绑在发行版中的PiEstimator。
我的代码如下:

  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 /本地/ hadoop / hadoop-1.0.3 / bin / start-mapred.sh);
}
catch(IOException e1){
e1.printStackTrace();
}
}
});
contentPane.add(btnYrhtrdsf,16,10);

JButton btnMakeDirectory = new JButton(在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自动生成的catch块
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自动生成的catch块
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自动生成的catch块
e1.printStackTrace();
}
}
});
contentPane.add(btnPiestimator,14,26);


解决方案

替换以下行


$ b $ pre $ 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); 


I am working with Hadoop 1.0.3 on Ubuntu 12.04, Eclipse 3.7 and am developing a GUI to execute Hadoop jobs using Windowbuider Pro. I need to execute the jar files containing my codes from the GUI. I have used the runtime.getruntime.exec() method with some success. However, while it does execute DFS-specific commands, it cannot execute .jar files, like the PiEstimator that comes bundled with the distribution. My code is as follows:

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");
}

解决方案

Replace following line

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

with:

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");

这篇关于从java执行hadoop示例jar文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆