利用jmeter对Hive进行压测遇到的问题
解决方式直接拉到中间看。
找了半天的Hive压测工具,有Hibench,有用hive-testBench生成树来测。最后绕了一大圈发现jmeter可以支持jdbc链接。测试不就是要看报告吗,jmeter的报告完全满足啊,那直接上了。
这边已经试过了测试MySQL,然后Hive的时候就报错了java. sql. SQLException: Cannot create PoolableConnectionFactory (Method not supported)
,看jmeter详细日志也没报啥啊。怪了
网上找了半天没有发现这个到底为啥,chatgpt也问了问不出来。已反复检查各种jar包啥的都没问题,主要我提前用dbeaver都试过了,都能执行sql。到jmeter就报错。我用的版本是jmeter5.5,在win10
。
问题截个图吧:
目前网上我是没找到这个的解决方法,这不分享出来我良心会痛!!
解决办法:
- 在jmeter的目录找
bin/jmter.properties
。 - 打开这个配置文件,找到
jdbc.config.check.query
- 然后按其格式,先加个管道线
|
,然后加个测试的语句,我是随便加的show databases
- 然后界面上配置
JDBC Connection Configuration
的时候,找到Connection Validation by Pool
,最后一个选项Validation Query
下拉选择刚刚添加的show databases
。 - 搞定。(应该要重启)
截个图吧:
有点神奇,它还必须要验证,我前面给关了都不行,而且默认的校验查询语句,Hive都不支持,那就自己加一个试试结果成了。。。
最开始尝试还有下面那个jdbc.config.jdbc.driver.class也给加上Hive的driver,org.apache.hive.jdbc.HiveDriver
。刚刚试了好像也不用加这个,只要让创建Pool的时候能验证就行。
我甚至都以为Linux版本也要这样配置,结果不需要。。。。看看效果图吧:
另外补一个测试步骤:
- 下载jmeter并配置环境变量(Linux)
- Linux装JAVA并配置
- win的jmeter界面配置好测试计划,另存jmx文件
- 拷贝jmx到Linux测试:
jmeter -n -t hive.jmx -l result.jtl
- 测试结果jtl文件拷贝到win
- jmeter界面创建测试计划,创建聚合报告
- 把jtl文件用聚合报告打开查看。
网上全能找到详细步骤,不多说了。