HIVE连接池并指定spark

一、配置文件.yml中配置DruidDataSource配置属性信息
可以参考Druid的官方github
二、DruidDataSource和JdbcTemplate的配置类DruidConfiguation
容器初始化后,加载DruidConfiguation,相关代码如下:
@Configuration
public class DruidConfiguration {
    @Value("${hive.datasource.url}")
    private String dbUrl;
    @Value("${hive.datasource.username}")
    private String username;
    @Value("${hive.datasource.password}")
    private String password;
    @Value("${hive.datasource.driverClassName}")
    private String driverClassName;
    @Value("${hive.datasource.initialSize}")
    private int initialSize;
    @Value("${hive.datasource.minIdle}")
    private int minIdle;
    @Value("${hive.datasource.maxActive}")
    private int maxActive;
    @Value("${hive.datasource.maxWait}")
    private int maxWait;
    @Value("${hive.datasource.timeBetweenEvictionRunsMillis}")
    private int timeBetweenEvictionRunsMillis;
    @Value("${hive.datasource.minEvictableIdleTimeMillis}")
    private int minEvictableIdleTimeMillis;
    @Value("${hive.datasource.validationQuery}")
    private String validationQuery;
    @Value("${hive.datasource.testWhileIdle}")
    private boolean testWhileIdle;
    @Value("${hive.datasource.testOnBorrow}")
    private boolean testOnBorrow;
    @Value("${hive.datasource.testOnReturn}")
    private boolean testOnReturn;
    @Value("${hive.datasource.poolPreparedStatements}")
    private boolean poolPreparedStatements;
    @Value("${hive.datasource.maxPoolPreparedStatementPerConnectionSize}")
    private int maxPoolPreparedStatementPerConnectionSize;
    ***//注意这里,指定创建的连接初始化执行sql: set hive.execution.engine=spark,使得hive执行引擎为spark***
    @Value("${hive.datasource.connectionInitSqls}")
    private String connectionInitSqls;
    @Bean(name = "hiveJdbcDataSource")
    @Qualifier("hiveJdbcDataSource")
    public DataSource dataSource() {
        DruidDataSource datasource = new DruidDataSource();
        datasource.setUrl(this.dbUrl);
        datasource.setUsername(username);
        datasource.setPassword(password);
        datasource.setDriverClassName(driverClassName);
        //configuration
        datasource.setInitialSize(initialSize);
        datasource.setMinIdle(minIdle);
        datasource.setMaxActive(maxActive);
        datasource.setMaxWait(maxWait);
        datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
        datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
        datasource.setValidationQuery(validationQuery);
        datasource.setTestWhileIdle(testWhileIdle);
        datasource.setTestOnBorrow(testOnBorrow);
        datasource.setTestOnReturn(testOnReturn);
        datasource.setPoolPreparedStatements(poolPreparedStatements);
        datasource.setMaxPoolPreparedStatementPerConnectionSize(maxPoolPreparedStatementPerConnectionSize);
        String[] initSqls = StringUtils.split(connectionInitSqls,",");
        datasource.setConnectionInitSqls( Arrays.asList(initSqls));
        return datasource;
    }
    @Bean(name = "hiveJdbcTemplate")
    public JdbcTemplate hiveJdbcTemplate(@Qualifier("hiveJdbcDataSource") DataSource dataSource) {
        return new JdbcTemplate(dataSource);
    }
}

三、使用JdbcTemplate调用业务SQL

1.业务层引用Template

@Autowired
private JdbcTemplate hiveJdbcTemplate;

2.查询示例

String sql = "Select 1";
List<Map<String, Object>> mapList  = hiveJdbcTemplate.queryForList(sql);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值