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

如何在Java中执行Hive命令或HiveQL,第1张

Java在1.5过后提供了ProcessBuilder根据运行时环境启动一个Process调用执行运行时环境下的命令或应用程序(1.5以前使用Runtime),关于ProcessBuilder请参考Java相关文档。调用代码如下:

String sql="show tablesselect * 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。

2、JDBC连接的方式,当然还有其他的连接方式,比如ODBC等, 这种方式很常用,可以在网上随便找到,就不再累赘了。不稳定,经常会被大数据量冲挂,不建议使用。 3、这种方式是直接利用Hive的 Driver class 来直接连接,感觉这种方式不通过JDBC,应该速度会比较快一点(未经验证)。我只是在local模式下测试过。

在方法里面的最前面添加上:

reqest.setCharacterEncoding("UTF-8")

response.setCharacterEncoding("UTF-8")


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6739122.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存