我正在尝试通过 java 编程将 Sqoop 从 oracle 导入到 hdfs
I am trying Sqoop import from oracle to hdfs through java programming
我正在使用 ssh 执行 Sqoop 命令。这是我的代码的参考 How to use Sqoop in Java Program?
但是我收到一个错误 "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();
}
}
它显示的错误是:“执行命令时执行失败:
错误消息:bash:sqoop:找不到命令”
我也添加了 sshxcute jar 文件。
但是当我在终端上尝试 Sqoop 命令时,它运行得很好。
请让我知道如何实现这一目标。
谢谢
您需要在 bash 配置文件中设置 sqoop 主目录,或者传递完整的安装路径,例如 /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");
我正在使用 ssh 执行 Sqoop 命令。这是我的代码的参考 How to use Sqoop in Java Program?
但是我收到一个错误 "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();
}
}
它显示的错误是:“执行命令时执行失败: 错误消息:bash:sqoop:找不到命令” 我也添加了 sshxcute jar 文件。
但是当我在终端上尝试 Sqoop 命令时,它运行得很好。 请让我知道如何实现这一目标。 谢谢
您需要在 bash 配置文件中设置 sqoop 主目录,或者传递完整的安装路径,例如 /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");