Hive的连接池-HikariCP

分享一个 hive on spark 模式下使用 HikariCP 数据库连接池造成的资源泄露问题 最近在针对某系统进行性能优化时,发现了一个hive on spark 模式下使用 HikariCP 数据库连接池造成的资源泄露问题,该问题具有普适性,故特地拿出来跟大家分享下 阅读详情
前言:之前分享过一篇使用druid管理Hive的连接池,因为我们的大部分的项目是用的都是druid,所以到Hive这块,第一个想到的也是druid,不过作为一个喜欢不断折腾的小青年,最近又尝试了HikariCP,使用起来比druid要简单多了,而且性能上比druid也要强一些。
  1. 先看一下我的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>
    
  2. 配置中心的配置
    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
    
  3. 关于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);
    	}
    }
    
  4. 最后一步,愉快的使用,就是这么的简单
    @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启动metestore服务时报错 之前hadoop有问题,把hadoop和MySQL删了重装,hive没有动,然后启hive的metastore服务的时候,显示找不到metastore数据库。Hive元数据库的字符集默认为Latin1,由于其不支持中文字符,所以建表语句中如果包含中文注释,会出现乱码现象。修改Hive元数据库中存储注释的字段的字符集为utf-8。3)初始化Hive元数据库。2)新建Hive元数据库。4)修改元数据库字符集。1)启动Hive客户端。1)登陆MySQL。5)退出mysql。2)查看一下数据库。 阅读详情

相关推荐

springboot集成hive2的问题

method not support的问题,比较蛋疼。由于springboot2.0以后引入了新的连接池,变成了hikaricp,网上查了一下这个连接池号称是java性能最好的连接池。但是和hive-jdbc的集成不是很好,如果你的hive版本在2.0以上,不会出现这个问题,但是现在大部分的hive版本都是2.0以下的。解决的办法。1.小项目不使用连接池,直接@Bean(name = "hiveJ...

m0_37611100的博客 6267

Hive数据库连接-连接池实现

Hive数据库连接-连接池实现 通过HiveJDBC获取Hive的连接Connection,下面我们简单介绍HiveJDBC数据库连接实现 HiveJDBC配置文件 连接池配置文件hive-jdbc.properties # 初始化连接池数 db.jdbcPoolInitSize=5 # HIVE的Driver,不需要修改 db.driver=org.apache.hive.jdbc....

u010077555的博客 9683

Hive与MySQL集成:大数据元数据存储优化实践

在大数据架构中,元数据管理是数据仓库的核心组件,直接影响查询性能和系统稳定性。Hive作为Hadoop生态的重要数据仓库工具,其默认Derby元数据库存在并发访问限制。采用MySQL作为元数据存储引擎,通过关系型数据库的事务特性和连接池技术,可实现元数据的高效管理。这种组合特别适合企业级部署场景,当处理500+表规模时,查询性能可提升3-5倍。实践表明,结合HikariCP连接池和InnoDB缓冲池优化,能有效支撑百万级元数据记录的稳定运行。

weixin_30606461的博客 399

springboot Hive数据连接池

pom.xml依赖文件,项目负载的可能需要解决依赖冲突,idea可以安装dependency analyzer <!-- 数据连接池--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.12

qq_18453581的博客 1675

大数据连接池配置:结构化数据访问优化

在大数据时代,结构化数据访问的效率直接决定了业务的“决策速度”。而大数据连接池,正是提升这一效率的“关键工具”——它像“桥梁”,连接了“应用的需求”与“引擎的能力”;像“平衡器”,调和了“资源消耗”与“性能需求”。优化大数据连接池,不是“调几个参数”那么简单,而是**“理解引擎特性+掌握资源逻辑+持续监控调优”**的综合能力。希望这篇文章能帮你从“新手”变成“连接池专家”,让你的大数据应用“更快、更稳、更省资源”!最后送你一句话。

Java大师兄的博客 775

全面解析c3p0连接池与Jar包集成实战

在现代Java企业级应用中,数据库操作频繁且关键,而JDBC作为Java与数据库之间的桥梁,其性能直接影响系统整体效率。数据库连接的创建和销毁是一个高开销的操作,频繁地打开和关闭连接会导致系统性能下降。为此,JDBC连接池应运而生,它通过预先创建一组数据库连接并维护这些连接的生命周期,实现了连接的复用,从而显著提升了数据库访问效率。c3p0 是一个开源的JDBC连接池实现,专为Java应用提供稳定、高效的连接管理方案。

weixin_32287387的博客 997

Spring Boot 中使用 Hikari连接各类数据源

Spring Boot 中使用 Hikari连接各类数据源 1,连接hive集群 HikariConfig中各属性设置 { "allowPoolSuspension": false, "autoCommit": true, "connectionTimeout": 10000, "driverClassName": "org.apache.hive.jdbc.HiveDriver", "idleTimeout": 30000, "initializationF

职业炮灰的博客 4014

hive jdbc连接Demo

jdbc连接hive的小示例程序,使用方法: 1、在Hadoop服务器上启动远程服务接口,命令: nohup hive --service hiveserver 10000 & (指定端口启动) 2、将test主程序里的IP改为自己用的Hadoop服务器ip,即可使用。

Hive JDBC 3.1.2 连接池配置实战:Spring Boot 应用并发 50 请求性能调优

本文详细介绍了在Spring Boot应用中配置Hive JDBC 3.1.2连接池以支持50并发请求的性能优化策略。通过对比HikariCP与Druid的关键参数,提供实战代码示例和压测结果,帮助开发者显著提升Hive查询性能,适用于企业级大数据应用场景。

weixin_33744141的博客 1046

最小可分辨对比度(MRC)

最小可分辨对比度的测试方法如下: 1)选择对比度测试靶板,一般有100%,50%,33.77%,15%,5%。 2)调整照度,确保能够清晰观测到图像中的靶标; 3)利用USAF1951分辨率靶观察找到能够分辨出的靶标。 1951 USAF分辨力测试图目前仍广泛地应用于测试光学成像系统(如显微镜和相机)的分辨能力。这种图案包括几组由三条短线构成组合,短线的尺寸从大到小。成像系统无法辩明的...

6272

知识图谱的数据挖掘与分析

1. 背景介绍 1.1 数据挖掘的崛起 随着互联网的普及和大数据技术的发展,数据挖掘已经成为了计算机科学领域的热门研究方向。数据挖掘是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,通过计算机科学、统计学、信息论等多学科交叉的方法,挖掘出有用信息和知识的过程。数据挖掘的目标是从数据中发现有

AI天才研究院 1598

hive --service metastore 启动报错

Hadoop@masterHive]$2021-10-28153757StartingHiveMetastoreServeratorg.apache.hadoop.hive.metastore.RetryingHMSHandler.(RetryingHMSHandler.java84)atorg.apache.hadoop.hive.metastore.RetryingHMSHandler.getProxy(RetryingHMSHandler.java93)atorg.

m0_54233757的博客 6733

从仿真到打样:PMOS栅极泄放电路设计全流程复盘与三个踩坑点总结

本文详细复盘了PMOS栅极泄放电路从仿真到打样的全流程设计,重点总结了三个关键踩坑点:三极管BE结过压击穿、静态功耗超标和栅极振荡现象。通过优化缓启动电路、改进保护设计和布局调整,最终实现18ms开通时间、190μs关断时间和8μA静态功耗的工业级性能指标,为类似电源开关设计提供实用参考。

weixin_28693683的博客 370

Hive JDBC 3.1.2 连接池实战:Spring Boot 集成与 1000 并发连接性能调优

本文详细介绍了如何在Spring Boot项目中集成Hive JDBC 3.1.2驱动,并通过连接池技术实现1000并发连接的高性能访问。内容涵盖企业级架构设计、Spring Boot集成实战、高并发性能调优、生产环境监控与故障排查等关键环节,帮助开发者优化Hive JDBC连接管理,提升大数据应用性能。

weixin_33971977的博客 428

Windows 2008 R2虚拟机跑金蝶K3 WISE 12.1的5个关键配置细节(附避坑清单)

本文详细介绍了在Windows Server 2008 R2虚拟机中部署金蝶K3 WISE 12.1的5个关键配置细节,包括服务器角色与账户权限、组件服务调优、数据库与中间层协同部署、补丁管理策略及性能优化工具。这些实战经验可帮助企业IT团队避免常见陷阱,确保ERP系统稳定运行。

weixin_30847939的博客 317

车载软件架构 -- SOA服务分层设计原则

摘要: 本文系统阐述了车载SOA(面向服务架构)的核心价值与分层设计原则。传统汽车软件架构因功能耦合度高、升级困难等问题难以适应智能汽车发展需求,而SOA通过服务化设计实现模块化解耦,支持跨域协同与生态开放,显著提升开发效率和可维护性。文章详细解析了服务分层策略(原子服务、基础服务、应用服务)及其设计原则:原子服务作为最小功能单元实现硬件抽象;基础服务整合原子服务提供通用能力;应用服务面向具体业务场景。分层架构有效降低了系统复杂度,使各层可独立演进,为智能汽车软件生态建设提供了方法论支撑。

Soly_kun的博客 727

Springboot+Druid(可切换Hikari)+Mybatis-plus+mysql+hive的多数据源项目配置

Springboot+Druid(可切换Hikari)+Mybatis-plus+mysql+hive的多数据源项目配置

我不会敲代码的博客 1227

Dify使用教程3:Dify创建工作流

Dify使用教程3:Dify创建工作流 接着,我们连接下一个节点:“LLM”填入上下文变量为:result。这时候知识库就添加成功了。添加新节点:结束节点。

拥抱具身智能,昇腾Ascend C 5128

Spark2.3.0集成hive3.1.1遇到的一个坑HikariCP

Spark2.3.0集成hive3.1.1遇到的一个坑HikariCP hive.metastore.schema.verification false 启动spark-sql或者创建相关对象,都会报错,错误如下: at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.datanucle...

weixin_44166276的博客 4691

【49】软考软件设计师——冲刺复盘:高频易错点与应试策略|复盘清单+应试技巧

本文是《软件设计师·50讲通关|从零基础到工程师职称》专栏第49篇,属于**模块六:冲刺与模拟**终篇,聚焦考前最后阶段的“精准复盘+应试提分”。全文围绕“高频易错点清零、答题时间优化、应急处理落地”三大核心,梳理9大知识领域的典型易错点(附避坑技巧)、优化版答题时间分配(含取舍策略)、考中全场景应急方案,配套可直接使用的“复盘清单”和“应试技巧手册”,帮助考生在最后阶段查漏补缺、固化得分逻辑,避免因低级错误丢分,以“稳、准、快”的状态应对考试。下一篇第50篇(终章)将进行全专栏知识体系回顾、考试策略总结

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 439

《YOLO11魔术师专栏》专栏介绍 & 专栏目录

【原创自研模块】【多组合点优化】【注意力机制】【主干篇】【neck优化】【卷积魔改】 【block&多尺度融合结合】【损失&IOU优化】【上下采样优化】【小目标性能提升】【前沿论文分享】【训练实战篇】

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1万+

hive启动报错

原因:同一个ip在短时间内产生太多(超过mysql数据库max_connection_errors的最大值)中断的数据库连接而导致的阻塞 (短时间内链接错误次数过多)登录数据库所在虚拟机并登录数据库 执行 flush hosts 命令,然后重启hive。

心动的博客 527

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

dolphinscheduler 3.0.1 数据源中心及使用

海豚调度spark数据源组件 spark sql 和 hive sql HikariCP的使用 Druid vs HikariCP Druid防sql注入

3953

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

指导指导我

Nested Throwables StackTrace: java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) a...

Zhinengzuoyici的博客 1176

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

spark2.4.4集成hive3.1.2遇到的一个坑HikariCP

Caused by: org.datanucleus.exceptions.NucleusException: Attempt to invoke the "HikariCP" plugin to create a ConnectionPool gave an error : The connection pool plugin of type "HikariCP" was not found i...

BigData_Mining的博客 2313
上一篇: Shell发送POST请求
下一篇: Maven自动更新SNAPSHOT包
aubergines
博客等级 码龄15年 13粉丝 63原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值