用于HBaseTable创建的HBase Java API显示错误

用于HBaseTable创建的HBase Java API显示错误,java,maven,hadoop,Java,Maven,Hadoop,我是Hadoop和Hbase的初学者。尝试使用JavaAPI创建HBase表时出错。我的项目是一个maven项目。我正在使用cloudera机器运行我的应用程序。下面给出了代码示例和错误以及POM.xml public static void main(String[] args) throws IOException { // Instantiating configuration class Configuration con = HBaseConfiguration.creat

我是Hadoop和Hbase的初学者。尝试使用JavaAPI创建HBase表时出错。我的项目是一个maven项目。我正在使用cloudera机器运行我的应用程序。下面给出了代码示例和错误以及POM.xml

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

  // Instantiating configuration class
  Configuration con = HBaseConfiguration.create();

  HBaseAdmin admin = new HBaseAdmin(con);

  // Instantiating table descriptor class
  HTableDescriptor tableDescriptor = new HTableDescriptor(TableName.valueOf("empdata"));

  // Adding column families to table descriptor
  tableDescriptor.addFamily(new HColumnDescriptor("personal"));
  tableDescriptor.addFamily(new HColumnDescriptor("official"));

  // Execute the table through admin
  admin.createTable(tableDescriptor);
  System.out.println(" Table created ");
}

我的命令是这样的: -bash-4.1$hadoop jar HBaseTableCreation-1.0-SNAPSHOT.jar com.HBaseTable

线程“main”java.lang.NoClassDefFoundError中出现异常:org/apache/hadoop/hbase/HBaseConfiguration 位于com.Feathersoft.HBaseTable.main(HBaseTable.java:17) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)中 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中 位于java.lang.reflect.Method.invoke(Method.java:606) 位于org.apache.hadoop.util.RunJar.main(RunJar.java:212) 原因:java.lang.ClassNotFoundException:org.apache.hadoop.hbase.HBaseConfiguration 在java.net.URLClassLoader$1.run(URLClassLoader.java:366) 在java.net.URLClassLoader$1.run(URLClassLoader.java:355) 位于java.security.AccessController.doPrivileged(本机方法) 位于java.net.URLClassLoader.findClass(URLClassLoader.java:354) 位于java.lang.ClassLoader.loadClass(ClassLoader.java:425) 位于java.lang.ClassLoader.loadClass(ClassLoader.java:358) ... 还有6个 -bash-4.1$

POM.xml依赖性

 <dependency>
    <groupId>org.apache.hbase</groupId>
    <artifactId>hbase-common</artifactId>
    <version>0.98.8-hadoop2</version>
 </dependency>

   <dependency>
    <groupId>org.apache.hbase</groupId>
    <artifactId>hbase-server</artifactId>
    <version>0.95.0</version>
  </dependency>

  <dependency>
    <groupId>org.apache.hbase</groupId>
    <artifactId>hbase-shell</artifactId>
    <version>0.98.8-hadoop2</version>
 </dependency>

 <dependency>
    <groupId>org.apache.hbase</groupId>
    <artifactId>hbase-protocol</artifactId>
    <version>0.98.8-hadoop2</version>
 </dependency>

 <dependency>
    <groupId>org.apache.hbase</groupId>
    <artifactId>hbase-thrift</artifactId>
    <version>0.98.8-hadoop2</version>
 </dependency>

 <dependency>
    <groupId>org.apache.zookeeper</groupId>
    <artifactId>zookeeper</artifactId>
    <version>3.4.5</version>
 </dependency>

 <dependency>
    <groupId>com.google.protobuf</groupId>
    <artifactId>protobuf-java</artifactId>
    <version>2.4.0a</version>
 </dependency>

 <dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>11.0.2</version>
 </dependency>

 <dependency>
     <groupId>org.apache.hadoop</groupId>
     <artifactId>hadoop-client</artifactId>
     <version>2.0.0-cdh4.2.0</version>
 </dependency>

 <dependency>
    <groupId>org.apache.hbase</groupId>
    <artifactId>hbase-client</artifactId>
    <version>0.98.8-hadoop2</version>
 </dependency>

org.apache.hbase
hbase通用
0.98.8-hadoop2
org.apache.hbase
hbase服务器
0.95.0
org.apache.hbase
hbase外壳
0.98.8-hadoop2
org.apache.hbase
hbase协议
0.98.8-hadoop2
org.apache.hbase
节约
0.98.8-hadoop2
org.apache.zookeeper
动物园管理员
3.4.5
com.google.protobuf
protobuf java
2.4.0a
番石榴
番石榴
11.0.2
org.apache.hadoop
hadoop客户端
2.0.0-cdh4.2.0
org.apache.hbase
hbase客户端
0.98.8-hadoop2
如何在Cloudera机器中设置类路径。我对Linux不太熟悉。 如果有人能帮忙,那就太好了