我正在尝试通过java编程将sqoop从oracle导入hdfs

ecr0jaav  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(400)

我使用ssh执行sqoop命令。这是我的代码如何在java程序中使用sqoop的参考?
但是我得到了一个错误“sqoop command not found”。这是密码

package sqoop;

import net.neoremind.sshxcute.core.Result;
import net.neoremind.sshxcute.core.SSHExec;
import net.neoremind.sshxcute.core.ConnBean;
import net.neoremind.sshxcute.task.CustomTask;
import net.neoremind.sshxcute.task.impl.ExecCommand;

public class TestSSH {

public static void main(String args[]) throws Exception{

    ConnBean cb = new ConnBean("172.17.13.47", "miracle","miracle");

    SSHExec ssh = SSHExec.getInstance(cb);          
    ssh.connect();
    CustomTask sampleTask2 = new ExecCommand("sqoop import --connect jdbc:oracle:thin:@172.17.13.47:1521/xe --username ouser --password oracleuser --table BRANCH --target-dir /user/branch -m 1");
    Result res = ssh.exec(sampleTask2);
    if (res.isSuccess)
    {
        System.out.println("Return code: " + res.rc);
        System.out.println("sysout: " + res.sysout);
    }
    else
    {
        System.out.println("Return code: " + res.rc);
        System.out.println("error message: " + res.error_msg);
    }

    ssh.disconnect();   
}
}

它显示的错误是:“在执行command时执行失败:error message:bash:sqoop:command not found”我也添加了sshxcute jar文件。
但是当我在终端上尝试sqoop命令时,它工作得非常好。请让我知道如何才能做到这一点。谢谢。

weylhg0b

weylhg0b1#

您需要在bash概要文件中设置sqoop home,或者像/bin/sqoop那样传递完整的安装路径。
以下是您需要添加到代码中的更改:

CustomTask sampleTask2 = new ExecCommand("<installation_path>/bin/sqoop import --connect jdbc:oracle:thin:@172.17.13.47:1521/xe --username ouser --password oracleuser --table BRANCH --target-dir /user/branch -m 1");

相关问题