提高hivejdbc的性能

ttvkxqim  于 2021-06-01  发布在  Hadoop
关注(0)|答案(4)|浏览(530)

aynyone知道如何提高HiveJDBC连接的性能吗。
详细问题:
当我从hivecli查询配置单元时,我在7秒内得到响应,但是从配置单元jdbc连接我在14秒之后得到响应。我想知道是否有任何方法(配置更改)可以通过jdbc连接提高查询性能。
提前谢谢。

wb1gzix0

wb1gzix01#

要提高jdbc连接的性能,请使用标准的jdbc性能改进功能连接池、准备语句池(从jdbc3.0开始)可以通过更改这些配置参数来提高hivecli的性能

-- enable cost based optimizer
set hive.cbo.enable=true;
set hive.compute.query.using.stats=true;
set hive.stats.fetch.column.stats=true;
set hive.stats.fetch.partition.stats=true;

--collects statistics
analyze table <TABLENAME> compute statistics for columns;

--enable vectorization of queries.
set hive.vectorized.execution.enabled = true;
set hive.vectorized.execution.reduce.enabled = true;

希望有帮助

kuuvgm7e

kuuvgm7e2#

如果您的数据库是oracle,您可以尝试使用oracle table access for hadoop and spark(ota4h),它也可以从配置单元ql中使用。ota4h将优化jdbc查询,以便使用拆分器从oracle检索数据,以获得最佳性能。您可以在配置单元查询中直接将配置单元表与oracle内部的外部表连接起来。

eit6fx6z

eit6fx6z3#

使用连接池帮助我提高了hivejdbc的性能。在hive中,查询时会发生许多转换,因此使用连接池中的现有连接对象而不是打开新连接并关闭每个请求非常有帮助。
请让我知道如果任何其他人如果面临同样的问题将张贴一个详细的答案。

4ngedf3f

4ngedf3f4#

你能试试下面的选项吗。
如果查询具有联接,请尝试将hive.auto.convert.join设置为true。
尝试更改java堆大小和垃圾收集引用链接的配置
使用set hive.execution.engine=tez将执行引擎更改为tez,以检查当前设置的引擎use hive.execution.engine。
其他配置单元性能配置提示可以在链接中找到
请告诉我结果。

相关问题