当前位置: 首页 > 面试题库 >

Java-从MySQL到Hive导入,其中MySQL在Windows上运行,而Hive在Cent OS上运行(Horton Sandbox)

沈飞舟
2023-03-14
问题内容

我通过命令行在Horton Sandbox中进行了尝试并成功。

sqoop import --connect jdbc:mysql://192.168.56.101:3316 / database_name --username = user --password = pwd --table table_name --hive-import -m 1---schema默认

其中192.168.56.101适用于Windows,而192.168.56.102适用于Horton Sandbox 2.6。

现在,我想在Java中做同样的事情,使Java代码在其他地方运行,但不在Horton沙箱中运行。

  • 如何定位HIVE_HOME和其他Sqoop参数,因为它们正在沙盒中运行。
  • 我必须传递的参数。它应该作为SqoopOptions或Sqoop.runTools字符串数组参数传递。都失败了。
  • 当导入库(com.cloudera.sqoop和org.apache.sqoop)时,我也感到困惑,得到这个

ImportTool类型中的方法run(com.cloudera.sqoop.SqoopOptions)不适用于带有这两行的参数(org.apache.sqoop.SqoopOptions)(在这两行之间添加了选项参数)

 SqoopOptions options = new SqoopOptions();
 int ret = new ImportTool().run(options);

如果我选择Cloudera方法,则弃用,但如果我选择apace run方法,则不接受options参数

我从几周后就为此感到震惊。请帮忙。


问题答案:

是的,您可以通过ssh进行操作。HortonSandbox预先安装了ssh支持。您可以在Windows上通过ssh客户端执行sqoop命令。或者,如果您想以编程方式(即我在Java中所做的)进行此操作,则必须执行此步骤。

  1. 下载sshxcute Java库:https : //code.google.com/p/sshxcute/
  2. 添加到您的Java项目的构建路径,其中包含以下Java代码
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{

    // Initialize a ConnBean object, parameter list is ip, username, password

    ConnBean cb = new ConnBean("192.168.56.102", "root","hadoop");

    // Put the ConnBean instance as parameter for SSHExec static method getInstance(ConnBean) to retrieve a singleton SSHExec instance
    SSHExec ssh = SSHExec.getInstance(cb);          
    // Connect to server
    ssh.connect();
    CustomTask sampleTask1 = new ExecCommand("echo $SSH_CLIENT"); // Print Your Client IP By which you connected to ssh server on Horton Sandbox
    System.out.println(ssh.exec(sampleTask1));
    CustomTask sampleTask2 = new ExecCommand("sqoop import --connect jdbc:mysql://192.168.56.101:3316/mysql_db_name --username=mysql_user --password=mysql_pwd --table mysql_table_name --hive-import -m 1 -- --schema default");
    ssh.exec(sampleTask2);
    ssh.disconnect();   
}
}


 类似资料:
  • 问题内容: 我有一个名为helloworld.jar的JAR文件。为了运行它,我在命令行窗口中执行以下命令: 这可以正常工作,但是我如何双击执行它?我需要安装任何软件吗? 问题答案: 最简单的方法可能是升级或重新安装Java Runtime Environment(JRE)。 或这个: 打开Windows资源管理器,从“工具”中选择“文件夹选项…” 单击文件类型选项卡,向下滚动并选择JAR文件类型

  • 问题内容: 我正在尝试从Windows中的命令行执行Java程序。这是我的代码: 我不确定如何执行程序-有帮助吗?在Windows上可以吗?为什么它不同于另一个环境(我以为JVM只写一次,可以在任何地方运行)? 问题答案: 假设你的文件位于 运行命令提示符 这使C:\ mywork成为当前目录。 这将显示目录内容。你应该在文件中看到。 这告诉系统在哪里可以找到JDK程序。 这将运行编译器。除了下一

  • 我正试图在Windows中从命令行执行一个Java程序。下面是我的代码: 我不确定如何执行程序-有什么帮助吗?这在Windows上可能吗?为什么它和另一个环境不同(我以为JVM是编写一次,运行任何地方)?

  • 本文向大家介绍在docker上安装运行mysql实例,包括了在docker上安装运行mysql实例的使用技巧和注意事项,需要的朋友参考一下 希望在自己的机器模拟一下公司中微服务的构建,使用docker部署了mysql实例,使用spring boot进行了CRUD(增删改查)操作进行了一下验证,在后面的学习中也可以尝试更多的框架和组件。 ps:实验环境是:ubuntu 14.04, 64位 1.获取

  • 大家:我在找一个有更多知识的人来检查我对蜂巢和火花的理解 我一直在研究不同的大型数据库解决方案,并试图理解Hive和Spark在执行方面的差异。我尝试安装Hadoop、Hive和Spark,看看它们的性能如何。我能够让Hadoop和Spark工作。我无法让Hive去工作。