Error while running HBASE Java API Program

I am trying to create a table using java api. I build the code on my local machine, packaged the jar and moved it to gatweway node. Trying to run java -jar . I get the below error.

I am wondering how my program understands the location and quoram of Hbase zookeeper. Do I need to explicity mention the hbase location in the program. Or can I make the program read hbase-site.xml on the gateway node?

Thanks.

org.apache.hadoop.hbase.client.RetriesExhaustedException: Can’t get the locations
at org.apache.hadoop.hbase.client.RpcRetryingCallerWithReadReplicas.getRegionLocations(RpcRetryingCallerWithReadReplicas.java:319)
at org.apache.hadoop.hbase.client.ScannerCallableWithReplicas.call(ScannerCallableWithReplicas.java:156)
at org.apache.hadoop.hbase.client.ScannerCallableWithReplicas.call(ScannerCallableWithReplicas.java:60)
at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithoutRetries(RpcRetryingCaller.java:210)
at org.apache.hadoop.hbase.client.ClientScanner.call(ClientScanner.java:327)
at org.apache.hadoop.hbase.client.ClientScanner.nextScanner(ClientScanner.java:302)
at org.apache.hadoop.hbase.client.ClientScanner.initializeScannerInConstruction(ClientScanner.java:167)
at org.apache.hadoop.hbase.client.ClientScanner.(ClientScanner.java:162)
at org.apache.hadoop.hbase.client.HTable.getScanner(HTable.java:797)
at org.apache.hadoop.hbase.MetaTableAccessor.fullScan(MetaTableAccessor.java:602)
at org.apache.hadoop.hbase.MetaTableAccessor.tableExists(MetaTableAccessor.java:366)
at org.apache.hadoop.hbase.client.HBaseAdmin.tableExists(HBaseAdmin.java:406)
at CreateTable.main(CreateTable.java:26)

Ok. I got it working after I added

    conf.set("hbase.zookeeper.quorum","nn01.itversity.com");
    conf.set("hbase.zookeeper.property.clientPort","2181");
    conf.set("zookeeper.znode.parent","/hbase-unsecure");

Any other way of handling this, other than hardcoding properties in the program?

1 Like