首页 > 代码库 > 如何在Java中执行Hive命令或HiveQL
如何在Java中执行Hive命令或HiveQL
这里所说的在Java中执行Hive命令或HiveQL并不是指Hive Client通过JDBC的方式连接HiveServer(or HiveServer2)执行查询,而是简单的在部署了HiveServer的服务器上执行Hive命令。当然这是一个简单的事情,平常我们通过Hive做简单的数据分析实验的时候,都是直接进入Hive执行HiveQL,那我们为什么还要在程序中执行呢?
这里涉及到了一个问题,通过进入Hive执行HiveQL,我们只能将分析结果打印到屏幕或是存入临时表,那如果我们想吧分析结果写入文件,或者我们想对分析结果做进一步的分析,用程序做分析,该怎么办?这就是为什么要在Java中执行Hive命令。
Java在1.5过后提供了ProcessBuilder根据运行时环境启动一个Process调用执行运行时环境下的命令或应用程序(1.5以前使用Runtime),关于ProcessBuilder请参考Java相关文档。调用代码如下:
String sql="show tables; select * from test_tb limit 10"; List<String> command = new ArrayList<String>(); command.add("hive"); command.add("-e"); command.add(sql); List<String> results = new ArrayList<String>(); ProcessBuilder hiveProcessBuilder = new ProcessBuilder(command); hiveProcess = hiveProcessBuilder.start(); BufferedReader br = new BufferedReader(new InputStreamReader( hiveProcess.getInputStream())); String data = http://www.mamicode.com/null;>
其中command可以是其它Hive命令,不一定是HiveQL。本文产生于个人工作学习笔记,转载请注明出处http://blog.csdn.net/horace20
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。