环境:部署的hive 版本是4.0.0
jmeter 连接hive时连接驱动跟安装的hive版本有极大关系,比如说hive 版本是4.0.0版本,在jmeter的测试计划【test plan】中添加的hive-jdbc驱动如果是hive-jdbc-3.1.3-standalone.jar版本的话会连接失败,只能添加hive 4.0.0 或以上的版本。如hive-jdbc-4.0.1-standalone.jar 包。为什么要说这个呢?因为在上次用DBeaver 工具连接hive 4.0.0版本时,也遇到过这个情况,就是hive4.0.0 自带的hive-jdbc 驱动有问题。用它自带的驱动就是无法正常连接上hive。后面下载一个hive4.0.1版本解压后从里面的jdbc目录中获取到hive-jdbc-4.0.1-standalone.jar包,才能连接上hive4.0.0 服务。
因此,在调试jmeter连接hive时,如果配置信息都没有问题时,可以考虑换一个高的版本驱动,再试试。因为高版本的应该会向下兼容并修复一些存在的问题,当然,我这个也许是个例。
hive-jdbc驱动包一般会在hive安装目录下的jdbc目录中,如下:
可以直接从服务器上下载下来使用,如果自带的hive-jdbc驱动无法连接成功的话,可以换一个更高的hive版本,也是在该路径下的目录中,把驱动下载下来使用。
下面是jmeter上连接的相关操作:
1、创建测试计划和线程组:【test plan】->【thread group】
2、然后在线程组下添加:JDBC Connection Configuration
菜单路径:Add -> Config Element -> JDBC Connection Configuration
3、在JDBC Connection Configuration 中需要配置:
Variable Name for created pool :指定一个创建变量名,这个变量是为了后面创建查询时,引用JDBC配置信息用的
Database URL: 连接hives服务的地址,跟beeline 连接的url格式一致,如:jdbc:hive2://localhost:10000/default ,这个实际服务器地址信息配置即可
JDBC Driver class:这个是固定的值,即:org.apache.hive.jdbc.HiveDriver
Username:连接hive的用户名
Password:连接hive用户名对应的密码
如下:
4、JDBC Connection Configuration 配置完后,就可以创建数据库查询请求了
菜单路径:Add -> Sampler -> JDBC Request
在Variable Name of Pool declared in JDBC Connection Configuration:引用jdbc connection configuration中引用的变量名
SQL Query:就是设置查询类型和实际的查询语句或变量信息
如下:
5、添加查询结果树
执行结果如下:
查询到的hive上数据库信息:
响应头的信息
大致就是这些,可根据实际需要自行延伸,比如加入一些参数或断言的操作,这里就不在扩展了。