如何在Java中执行Hive命令或HiveQL

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Java中执行Hive命令或HiveQL相关的知识,希望对你有一定的参考价值。

参考技术A 这里所说的在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
=
null;
while
((data
=
br.readLine())
!=
null)

results.add(data);
其中command可以是其它Hive命令,不一定是HiveQL。

以上是关于如何在Java中执行Hive命令或HiveQL的主要内容,如果未能解决你的问题,请参考以下文章

如何将 HiveQL 查询的结果输出到 CSV?

问题解决系列:java运行HiveQL,报错:java.lang.NoClassDefFoundError_ org_apache_hadoop_conf_Configuration

如何将数据从 Spark SQL 导出到 CSV

HiveQL:索引

通过 Spark R 操作 Hive

Hive组件以及执行过程