设为首页 加入收藏

TOP

如何在Java中执行Hive命令或HiveQL
2014-11-23 22:55:09 来源: 作者: 【 】 浏览:10
Tags:何在 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 command = new ArrayList();


command.add("hive");
command.add("-e");
command.add(sql);


List results = new ArrayList();
ProcessBuilder hiveProcessBuilder = new ProcessBuilder(command);
hiveProcess = hiveProcessBuilder.start();


BufferedReader br = new BufferedReader(new InputStreamReader(
hiveProcess.getInputStream()));
String data = null;
while ((data = br.readLine()) != null) {
results.add(data);
}


其中command可以是其它Hive命令,不一定是HiveQL。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android实现对话框-附一个完整例子 下一篇Android选择联系人

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: