簡體   English   中英

Hbase Java API連接錯誤

[英]Hbase Java API connection error

我試圖像這樣從A Java應用程序連接到Hbase:

Configuration config = HBaseConfiguration.create();
    config.set("hbase.zookeeper.quorum", "localhost");
    config.set("hbase.zookeeper.property.clientPort", "2181");
    config.set("zookeeper.znode.parent", "/hbase-unsecure");

    config.set("hbase.client.retries.number", Integer.toString(0));
    config.set("zookeeper.session.timeout", Integer.toString(60000));
    config.set("zookeeper.recovery.retry", Integer.toString(0));

    Connection conn = ConnectionFactory.createConnection(config);
    TableName TABLE_NAME = TableName.valueOf("weblog");
    Table table = conn.getTable(TABLE_NAME);
    Result r = table.get(new Get(Bytes.toBytes("row1")));
    System.out.println(r);

我將應用程序內置到一個JAR中,但是在集群上使用以下命令運行時:

hadoop jar hbaseConnect-0.0.1-SNAPSHOT.jar com.packagename.hbaseConnect.HbaseConnect

我收到以下錯誤:

    Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration
    at com.DigiMerket.hbaseConnect.HbaseConnect.main(HbaseConnect.java:23)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
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)
    ... 7 more

我試圖HBASE_CLASSPATH添加到HADOOP_CLASSPATH在Hadoop的ENV喜歡這個崗位暗示,但我得到了同樣的錯誤..

通過如下設置“ HADOOP_CLASSPATH”解決問題,然后在同一終端中運行hadoop / hbase jar:

 export HADOOP_CLASSPATH="$HADOOP_CLASSPATH:/usr/hdp/2.3.4.0-3485/hbase/lib/hbase-client.jar:/usr/hdp/2.3.4.0-3485/hbase/lib/hbase-common.jar:/usr/hdp/2.3.4.0-3485/hbase/lib/hbase-protocol-1.1.2.2.3.4.0-3485.jar:.:" 

運行罐子

hadoop  jar  hbaseConnect-0.0.1-SNAPSHOT.jar com.packagename.hbaseConnect.HbaseConnect

日志提示您運行jar需要依賴其他jar。 像hbase-client.jar

mkdir像libs一樣,將依賴的jar放入libs的目錄中,並使用以下命令:java -Djava.ext.dirs = / xxx / xxx / xxx / lib -jar / xxx / xxx /您的jar

希望能對你有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM