用于HBaseTable创建的HBase Java API显示错误
我是Hadoop和Hbase的初学者。尝试使用JavaAPI创建HBase表时出错。我的项目是一个maven项目。我正在使用cloudera机器运行我的应用程序。下面给出了代码示例和错误以及POM.xml用于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
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不太熟悉。
如果有人能帮忙,那就太好了