Java-从MySQL到Hive导入,其中MySQL在Windows上运行,而Hive在Cent OS上运行(Horton Sandbox)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java-从MySQL到Hive导入,其中MySQL在Windows上运行,而Hive在Cent OS上运行(Horton Sandbox),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2521字,纯文字阅读大概需要4分钟。
内容图文
在任何答案和评论之前.我尝试了在Stackoverflow中找到的几个选项,但均以失败告终.以下是这些链接-
> How can I execute Sqoop in Java?
> How to use Sqoop in Java Program?
> How to import table from MySQL to Hive using Java?
> How to load SQL data into the Hortonworks?
我通过命令行在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 default
其中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)包含这两行(在这两行之间添加了option参数)
SqoopOptions options = new SqoopOptions();
int ret = new ImportTool().run(options);
如果我选择Cloudera方法,则弃用,但如果我选择apace run方法,则不接受options参数
我从几周后就为此感到震惊.请帮忙.
解决方法:
是的,您可以通过ssh进行操作. Horton Sandbox预先安装了ssh支持.您可以在Windows上通过ssh客户端执行sqoop命令.或者,如果您想以编程方式(即我在Java中所做的)进行此操作,则必须执行此步骤.
>下载sshxcute Java库:https://code.google.com/p/sshxcute/
>添加到您的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();
}
}
内容总结
以上是互联网集市为您收集整理的Java-从MySQL到Hive导入,其中MySQL在Windows上运行,而Hive在Cent OS上运行(Horton Sandbox)全部内容,希望文章能够帮你解决Java-从MySQL到Hive导入,其中MySQL在Windows上运行,而Hive在Cent OS上运行(Horton Sandbox)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。