hbase java程序eclipse未运行

jmp7cifd  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(439)

我的hbase创建表的java代码

public class CreateTable { 

 public static void main( String args[] ) throws IOException {
 HBaseConfiguration hc = new HBaseConfiguration( new Configuration( ) );
 HTableDescriptor ht = new HTableDescriptor( "cdrs" );

 ht.addFamily( new HColumnDescriptor( "number:" ) );
 ht.addFamily( new HColumnDescriptor( "company:" ) );
 ht.addFamily( new HColumnDescriptor( "time:" ) ); 
 ht.addFamily( new HColumnDescriptor( "location:" ) );                                          
 HBaseAdmin hba = new HBaseAdmin( hc );
 System.out.println( "creating table..." );
 hba.createTable( ht );
 System.out.println( "done!" );
 }

运行我得到的jar代码:-hadoop jar hbase-0.0.1-snapshot.jar apache.hbase.createtable

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop /hbase/HBaseConfiguration
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at org.apache.hadoop.util.RunJar.run(RunJar.java:227)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:148)
 Caused by: java.lang.ClassNotFoundException:  org.apache.hadoop.hbase.HBaseConfiguration
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 4 more

我是hadoop和hbase的新手,在过去的几天里遇到了运行这个jar的问题。任何帮助都将不胜感激

fkaflof6

fkaflof61#

是否包含hbase公共依赖项?如果您使用的是maven,那么当您包含hbase客户机时,它将作为一个可传递的依赖项下载。
软件包:org.apache.hadoop.hbase
另外,现在不推荐使用新的hbaseconfiguration(…params…),而应该使用hbaseconfiguration.create();

Configuration config = HBaseConfiguration.create();
config.setInt("timeout", timeout);
config.set("hbase.zookeeper.quorum",zkAddress);
config.set("hbase.zookeeper.property.clientPort", zkPort);
config.set("hbase.client.retries.number", nRetries);//check for configs applicable or use hbase-site and core-site configs
Connection connection = ConnectionFactory.createConnection(config);
qoefvg9y

qoefvg9y2#

在新的hbase版本上制作fat jar有一个问题,jar已经被弃用了,并且有很多依赖项 hbase-client-1.2.6-jar 以及 hbase-common-1.2.6-jar 我的问题解决了。

相关问题