首页 > 解决方案 > Hive jdbc 设置内存参数

问题描述

Hive 有一些参数决定它在 map/reduce 中使用多少内存:

set mapreduce.reduce.memory.mb = 10096 ; 
set mapreduce.map.memory.mb = 10096 ;

所以通常当我使用 hive shell 进行大查询时,我会运行类似

hive -e "set mapreduce.reduce.memory.mb = 10096 ; set mapreduce.map.memory.mb = 10096 ; select * from table"

但是当我将 jdbc 与来自 java 的 hive 一起使用时,我似乎无法找到一种方法来增加大型查询的内存。我运行这样的东西:

String driverName = "org.apache.hive.jdbc.HiveDriver"; 
con = DriverManager.getConnection("jdbc:hive2://machines/hiveDB");
PreparedStatement ps = con.prepareStatement(sqlQuery);
ResultSet rs = ps.executeQuery();

但是 JDBC 阻止在一个查询中运行多个查询,所以我不能做我在 hive shell 中所做的事情,而且我没有看到另一种方法来做到这一点,所以现在我不能运行太大的查询。有人有什么想法吗?我考虑过运行多个语句,但不能保证它们会在同一台机器上运行。

TL;DR 想在 java jdbc 中设置 hive 参数,使用 hivedriver 进行大型查询,但无法找到方法。

标签: javasqlhadoopjdbchive

解决方案


推荐阅读