Hive的连接池-HikariCP
Posted Java实战笔记
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hive的连接池-HikariCP相关的知识,希望对你有一定的参考价值。
hive 连接池 HikariCP
前言:之前分享过一篇使用druid管理Hive的连接池,因为我们的大部分的项目是用的都是druid,所以到Hive这块,第一个想到的也是druid,不过作为一个喜欢不断折腾的小青年,最近又尝试了HikariCP,使用起来比druid要简单多了,而且性能上比druid也要强一些。
先看一下我的pom文件,因为我们的spring-cloud使用的是Edgware.SR3这个版本,spring默认使用的连接池还不是Hikari,所以这里要单独引入HikariCP,spring-boot 2.0就已经使用HikariCP作为默认的连接池,所以使用2.0版本额小伙伴就不用这么麻烦了
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jdbc</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>2.7.4</version>
</dependency>
配置中心的配置
spring:
hive:
minimum-idle: 0
maximum-pool-size: 2
max-lifetime: 600000
connection-timeout: 60000
username: root
password: 123456
jdbc-url: jdbc:hive2://hadoop03:10001/default;transportMode=http;httpPath=cliservice
driver-class-name: org.apache.hive.jdbc.HiveDriver
testOnBorrow: false
关于
DataSource
与JdbcTemplate
的配置文件
@Configuration
public class JdbcConfiguration {
@Bean(name = "hiveJdbcDataSource")
@Primary
@ConfigurationProperties(prefix = "spring.hive")
public DataSource hiveDataSource(){
return DataSourceBuilder.create().build();
}
@Bean(name = "hiveJdbcTemplate")
public JdbcTemplate hiveJdbcTemplate(@Qualifier("hiveJdbcDataSource") DataSource dataSource){
return new JdbcTemplate(dataSource);
}
}
最后一步,愉快的使用,就是这么的简单
@Component
public class CommonHiveDao {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
@Qualifier("hiveJdbcTemplate")
JdbcTemplate hiveJdbcTemplate;
public HiveResponse execute(HiveBean bean){
hiveJdbcTemplate.execute(bean.getHql());
HiveResponse hiveResponse = HiveResponse.successResult();
return hiveResponse;
}
public HiveResponse executeQuery(HiveBean bean){
List<Map<String, Object>> result = hiveJdbcTemplate.queryForList(bean.getHql());
return HiveResponse.successResult().setListResult(result);
}
}
以上是关于Hive的连接池-HikariCP的主要内容,如果未能解决你的问题,请参考以下文章