【问题标题】:JMeter Hbase scan sampler fails with ClassNotFoundException exceptionJMeter Hbase 扫描采样器因 ClassNotFoundException 异常而失败
【发布时间】:2016-04-03 03:24:27
【问题描述】:

我正在尝试使用 Hadoop/Hbase 采样器来连接和扫描在 Hbase 中创建的表,但是我的测试失败并显示以下消息。

检查了 Hadoop/Hbase 的配置,所有服务都在运行并监听相应的端口。 (动物园管理员正在运行并收听 2181)。

2016/04/02 15:44:04 ERROR - jmeter.threads.JMeterThread: Test failed! java.lang.NoClassDefFoundError: org/apache/commons/configuration/Configuration
at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.<init>(DefaultMetricsSystem.java:37)
at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.<clinit>(DefaultMetricsSystem.java:34)
at org.apache.hadoop.security.UgiInstrumentation.create(UgiInstrumentation.java:51)
at org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:217)
at org.apache.hadoop.security.UserGroupInformation.ensureInitialized(UserGroupInformation.java:185)
at org.apache.hadoop.security.UserGroupInformation.isSecurityEnabled(UserGroupInformation.java:237)
at org.apache.hadoop.security.KerberosName.<clinit>(KerberosName.java:79)
at org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:210)
at org.apache.hadoop.security.UserGroupInformation.ensureInitialized(UserGroupInformation.java:185)
at org.apache.hadoop.security.UserGroupInformation.isSecurityEnabled(UserGroupInformation.java:237)
at org.apache.hadoop.security.UserGroupInformation.getLoginUser(UserGroupInformation.java:482)
at org.apache.hadoop.security.UserGroupInformation.getCurrentUser(UserGroupInformation.java:468)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.hadoop.hbase.util.Methods.call(Methods.java:37)
at org.apache.hadoop.hbase.security.User.call(User.java:590)
at org.apache.hadoop.hbase.security.User.callStatic(User.java:580)
at org.apache.hadoop.hbase.security.User.access$400(User.java:51)
at org.apache.hadoop.hbase.security.User$SecureHadoopUser.<init>(User.java:397)
at org.apache.hadoop.hbase.security.User$SecureHadoopUser.<init>(User.java:392)
at org.apache.hadoop.hbase.security.User.getCurrent(User.java:140)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionKey.<init>(HConnectionManager.java:435)
at org.apache.hadoop.hbase.client.HConnectionManager.getConnection(HConnectionManager.java:180)
at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:155)
at org.apache.hadoop.hbase.client.HTableFactory.createHTableInterface(HTableFactory.java:36)
at org.apache.hadoop.hbase.client.HTablePool.createHTable(HTablePool.java:265)
at org.apache.hadoop.hbase.client.HTablePool.findOrCreateTable(HTablePool.java:195)
at org.apache.hadoop.hbase.client.HTablePool.getTable(HTablePool.java:174)
at com.atlantbh.jmeter.plugins.hbasecomponents.config.HBaseConnectionVariable.getTable(HBaseConnectionVariable.java:43)
at com.atlantbh.jmeter.plugins.hbasecomponents.samplers.HBaseScanSampler.sample(HBaseScanSampler.java:94)
at org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:434)
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:261)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.configuration.Configuration
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 35 more**

【问题讨论】:

    标签: jmeter hbase apache-zookeeper hadoop2 jmeter-plugins


    【解决方案1】:

    问题出在您的 JMeter 方面。如错误消息所述:

    原因:java.lang.ClassNotFoundException: org.apache.commons.configuration.Configuration

    这意味着 HBase Scan Sampler 需要 Apache Commons Configuration 库,但看起来 Hadoop 插件在其 zip package 中没有提供它。尝试在他们的forum 上询问他们是否愿意修复它。

    现在作为一种解决方法,您可以:

    1. Downloadcommons-configuration2-2.0-bin.zip 来自网站
    2. 解压
    3. commons-configuration2-2.0.jar 复制到.../apache-jmeter/lib
    4. 重启 jmeter

    【讨论】:

    • 感谢您的回复。即使在复制公共配置后也遇到了同样的异常。有什么建议么?。与此同时,我开始与 JMeter-Plugins 小组合作。
    • 您是否尝试过该站点上提供的两个版本(1.10 和 2.0)?我们不知道 hadoop 使用的是哪个版本的包,所以两个都试一下,但是一个接一个(即不要同时把两个版本都放到 lib 中)。
    • 基里尔,谢谢。您的建议奏效了!...复制 1.10 版本后,它没有报告 commons-configuration 异常。再次感谢。
    猜你喜欢
    • 2019-06-03
    • 1970-01-01
    • 2018-10-20
    • 1970-01-01
    • 1970-01-01
    • 2020-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多