2016-04-02 10 views
0

Ich versuche, Hadoop/Hbase-Sampler zu verwenden, um die in Hbase erstellten Tabellen zu verbinden und zu scannen, jedoch schlägt mein Test mit den folgenden Nachrichten fehl.JMeter Hbase Scan-Sampler schlägt mit ClassNotFoundException Ausnahme fehl

Überprüft die Konfiguration von Hadoop/Hbase alle Dienste laufen und hören den entsprechenden Port. (Zoowärter läuft und hört 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** 

Antwort

1

Das Problem liegt auf Ihrer JMeter-Seite. Da die Fehlermeldung besagt:

Verursacht durch: java.lang.ClassNotFoundException: org.apache.commons.configuration.Configuration

was bedeutet, dass HBase Scan Sampler Apache Commons Configuration Bibliothek erfordert, aber sieht aus wie Hadoop Plug-in bietet es nicht in seiner zip package. Versuchen Sie auf ihre forum Frage, wenn sie bereit sind, es zu beheben.

Vorerst als Behelfslösung können Sie:

  1. Download commons-configuration2-2.0-bin.zip von der Website
  2. Dekomprimieren es
  3. Copy commons-configuration2-2.0.jar in .../apache-jmeter/lib
  4. Restart jmeter
+0

Vielen Dank für Ihre Antwort. Die gleiche Ausnahme wurde auch nach dem Kopieren der Commons-Konfiguration festgestellt. Irgendwelche Vorschläge?. In der Zwischenzeit habe ich mit der JMeter-Plugins-Gruppe begonnen. –

+0

Haben Sie beide auf dieser Site verfügbaren Versionen (1.10 und 2.0) getestet? Wir wissen nicht, welche Version des Pakets hadoop verwendet, also versuchen Sie beides, aber eins nach dem anderen (d. H., Stellen Sie nicht beide Versionen gleichzeitig in lib). –

+0

Kiril, Danke. Ihr Vorschlag hat funktioniert! ... Nach dem Kopieren der Version 1.10 wurde die commons-Konfigurationsausnahme nicht gemeldet. Danke noch einmal. –