首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到Hbase异常org/apache/commons/configuration/Configuration

找不到Hbase异常org/apache/commons/configuration/Configuration
EN

Stack Overflow用户
提问于 2012-03-31 16:45:45
回答 2查看 7.9K关注 0票数 3

我是hbase的新手,试图让它与java一起工作。我尝试了下面的代码,它给出了一个异常,请帮助。

代码语言:javascript
复制
package com.bee.searchlib.test;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.MasterNotRunningException;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HTable;

public class Test {

    public static void main(String args[]) throws Exception {

        Configuration config = HBaseConfiguration.create();
        HBaseAdmin admin = null;
        try {
            // HBaseAdmin is where all the "DDL" like operations take place in
            // HBase
            admin = new HBaseAdmin(config);
        } catch (MasterNotRunningException e) {
            throw new Exception(
                    "Could not setup HBaseAdmin as no master is running, did you start HBase?...");
        }

        if (!admin.tableExists("testTable")) {
            admin.createTable(new HTableDescriptor("testTable"));

            // disable so we can make changes to it
            admin.disableTable("testTable");

            // lets add 2 columns
            admin.addColumn("testTable", new HColumnDescriptor("firstName"));
            admin.addColumn("testTable", new HColumnDescriptor("lastName"));

            // enable the table for use
            admin.enableTable("testTable");

        }

        // get the table so we can use it in the next set of examples
        HTable table = new HTable(config, "testTable");
    }
}

例外:

代码语言:javascript
复制
Exception in thread "main" 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:209)
    at org.apache.hadoop.security.UserGroupInformation.ensureInitialized(UserGroupInformation.java:177)
    at org.apache.hadoop.security.UserGroupInformation.isSecurityEnabled(UserGroupInformation.java:229)
    at org.apache.hadoop.security.KerberosName.<clinit>(KerberosName.java:83)
    at org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:202)
    at org.apache.hadoop.security.UserGroupInformation.ensureInitialized(UserGroupInformation.java:177)
    at org.apache.hadoop.security.UserGroupInformation.isSecurityEnabled(UserGroupInformation.java:229)
    at org.apache.hadoop.security.UserGroupInformation.getLoginUser(UserGroupInformation.java:428)
    at org.apache.hadoop.security.UserGroupInformation.getCurrentUser(UserGroupInformation.java:414)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.hadoop.hbase.util.Methods.call(Methods.java:37)
    at org.apache.hadoop.hbase.security.User.call(User.java:586)
    at org.apache.hadoop.hbase.security.User.callStatic(User.java:576)
    at org.apache.hadoop.hbase.security.User.access$400(User.java:50)
    at org.apache.hadoop.hbase.security.User$SecureHadoopUser.<init>(User.java:393)
    at org.apache.hadoop.hbase.security.User$SecureHadoopUser.<init>(User.java:388)
    at org.apache.hadoop.hbase.security.User.getCurrent(User.java:139)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionKey.<init>(HConnectionManager.java:412)
    at org.apache.hadoop.hbase.client.HConnectionManager.getConnection(HConnectionManager.java:182)
    at org.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:98)
    at com.bee.searchlib.test.Test.main(Test.java:20)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.configuration.Configuration
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    ... 27 more

构建路径hadoop-core-1.0.0.jar hbase-0.92.1.jar log4j-1.2.16.jar commons-logging-1.1.1.jar中的库

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-27 23:05:41

commons-configuration-x.x.jar添加到您的构建路径中。您可以在$HADOOP_HOME/lib下找到它。对我很管用。

票数 5
EN

Stack Overflow用户

发布于 2012-08-22 16:30:15

这是由于jar文件造成的。添加commons-logging- version.jar它适用于我

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9954412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档