Created 06-08-2018 08:26 PM
I am running a simple HBASE JAva code to create a table but I am getting this error
.6.4.0-91/phoenix/phoenix-client.jar:/usr/hdp/2.6.4.0-91/phoenix/phoenix-server.jar://usr/hdp/2.6.4.0-91/hbase/conf/hbase-site.xml:. 18/06/08 16:19:41 INFO zookeeper.ZooKeeper: Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib 18/06/08 16:19:41 INFO zookeeper.ZooKeeper: Client environment:java.io.tmpdir=/tmp 18/06/08 16:19:41 INFO zookeeper.ZooKeeper: Client environment:java.compiler=<NA> 18/06/08 16:19:41 INFO zookeeper.ZooKeeper: Client environment:os.name=Linux 18/06/08 16:19:41 INFO zookeeper.ZooKeeper: Client environment:os.arch=amd64 18/06/08 16:19:41 INFO zookeeper.ZooKeeper: Client environment:os.version=2.6.32-642.6.2.el6.x86_64 18/06/08 16:19:41 INFO zookeeper.ZooKeeper: Client environment:user.name=root 18/06/08 16:19:41 INFO zookeeper.ZooKeeper: Client environment:user.home=/root 18/06/08 16:19:41 INFO zookeeper.ZooKeeper: Client environment:user.dir=/root 18/06/08 16:19:41 INFO zookeeper.ZooKeeper: Initiating client connection, connectString=localhost:2181 sessionTimeout=90000 watcher=org.apache.hadoop.hbase.zookeeper.PendingWatcher@5158b42f 18/06/08 16:19:41 DEBUG zookeeper.ClientCnxn: zookeeper.disableAutoWatchReset is false 18/06/08 16:19:41 INFO zookeeper.ClientCnxn: Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error) 18/06/08 16:19:41 INFO zookeeper.ClientCnxn: Socket connection established, initiating session, client: /127.0.0.1:39668, server: localhost/127.0.0.1:2181 18/06/08 16:19:41 DEBUG zookeeper.ClientCnxn: Session establishment request sent on localhost/127.0.0.1:2181 18/06/08 16:19:41 INFO zookeeper.ClientCnxn: Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x163891d95120b7c, negotiated timeout = 60000 18/06/08 16:19:41 DEBUG zookeeper.ZooKeeperWatcher: hconnection-0x402bba4f0x0, quorum=localhost:2181, baseZNode=/hbase Received ZooKeeper Event, type=None, state=SyncConnected, path=null 18/06/08 16:19:41 DEBUG zookeeper.ZooKeeperWatcher: hconnection-0x402bba4f-0x163891d95120b7c connected 18/06/08 16:19:41 DEBUG zookeeper.ClientCnxn: Reading reply sessionid:0x163891d95120b7c, packet:: clientPath:null serverPath:null finished:false header:: 1,3 replyHeader:: 1,8595911618,-101 request:: '/hbase/hbaseid,F response:: 18/06/08 16:19:41 INFO client.ZooKeeperRegistry: ClusterId read in ZooKeeper is null 18/06/08 16:19:41 DEBUG client.ConnectionManager$HConnectionImplementation: clusterid came back null, using default default-cluster 18/06/08 16:19:41 DEBUG ipc.AbstractRpcClient: Codec=org.apache.hadoop.hbase.codec.KeyValueCodec@44c03695, compressor=null, tcpKeepAlive=true, tcpNoDelay=true, connectTO=10000, readTO=20000, writeTO=60000, minIdleTimeBeforeClose=120000, maxRetries=0, fallbackAllowed=false, bind address=null 18/06/08 16:19:41 DEBUG zookeeper.ClientCnxn: Reading reply sessionid:0x163891d95120b7c, packet:: clientPath:null serverPath:null finished:false header:: 2,4 replyHeader:: 2,8595911618,-101 request:: '/hbase/meta-region-server,F response:: 18/06/08 16:19:41 DEBUG zookeeper.ZKUtil: hconnection-0x402bba4f-0x163891d95120b7c, quorum=localhost:2181, baseZNode=/hbase Unable to get data of znode /hbase/meta-region-server because node does not exist (not an error) 18/06/08 16:19:41 DEBUG zookeeper.ClientCnxn: Reading reply sessionid:0x163891d95120b7c, packet:: clientPath:null serverPath:null finished:false header:: 3,4 replyHeader:: 3,8595911618,-101 request:: '/hbase/meta-region-server,F response:: 18/06/08 16:19:41 DEBUG zookeeper.ZKUtil: hconnection-0x402bba4f-0x163891d95120b7c, quorum=localhost:2181, baseZNode=/hbase Unable to get data of znode /hbase/meta-region-server because node does not exist (not an error) 18/06/08 16:19:41 DEBUG zookeeper.ClientCnxn: Reading reply sessionid:0x163891d95120b7c, packet:: clientPath:null serverPath:null finished:false header:: 4,4 replyHeader:: 4,8595911618,-101 request:: '/hbase/meta-region-server,F response:: 18/06/08 16:19:41 DEBUG zookeeper.ZKUtil: hconnection-0x402bba4f-0x163891d95120b7c, quorum=localhost:2181, baseZNode=/hbase Unable to get data of znode /hbase/meta-region-server because node does not exist (not an error) 18/06/08 16:19:42 DEBUG zookeeper.ClientCnxn: Reading reply sessionid:0x163891d95120b7c, packet:: clientPath:null serverPath:null finished:false header:: 5,4 replyHeader:: 5,8595911618,-101 request:: '/hbase/meta-region-server,F response:: 18/06/08 16:19:42 DEBUG zookeeper.ZKUtil: hconnection-0x402bba4f-0x163891d95120b7c, quorum=localhost:2181, baseZNode=/hbase Unable to get data of znode /hbase/meta-region-server because node does not exist (not an error) 18/06/08 16:19:42 DEBUG zookeeper.ClientCnxn: Reading reply sessionid:0x163891d95120b7c, packet:: clientPath:null serverPath:null finished:false header:: 6,4 replyHeader:: 6,8595911622,-101 request:: '/hbase/meta-region-server,F response:: 18/06/08 16:19:42 DEBUG zookeeper.ZKUtil: hconnection-0x402bba4f-0x163891d95120b7c, quorum=localhost:2181, baseZNode=/hbase Unable to get data of znode /hbase/meta-region-server because node does not exist (not an error) 18/06/08 16:19:42 DEBUG zookeeper.ClientCnxn: Reading reply sessionid:0x163891d95120b7c, packet:: clientPath:null serverPath:null finished:false header:: 7,4 replyHeader:: 7,8595911622,-101 request:: '/hbase/meta-region-server,F response:: 18/06/08 16:19:42 DEBUG zookeeper.ZKUtil: hconnection-0x402bba4f-0x163891d95120b7c, quorum=localhost:2181, baseZNode=/hbase Unable to get data of znode /hbase/meta-region-server because node does not exist (not an error) 18/06/08 16:19:42 DEBUG zookeeper.ClientCnxn: Reading reply sessionid:0x163891d95120b7c, packet:: clientPath:null serverPath:null finished:false header:: 8,4 replyHeader:: 8,8595911622,-101 request:: '/hbase/meta-region-server,F response:: 18/06/08 16:19:42 DEBUG zookeeper.ZKUtil: hconnection-0x402bba4f-0x163891d95120b7c, quorum=localhost:2181, baseZNode=/hbase Unable to get data of znode /hbase/meta-region-server because node does not exist (not an error) 18/06/08 16:19:42 DEBUG zookeeper.ClientCnxn: Reading reply sessionid:0x163891d95120b7c, packet:: clientPath:null serverPath:null finished:false header:: 9,4 replyHeader:: 9,8595911622,-101 request:: '/hbase/meta-region-server,F response:: 18/06/08 16:19:42 DEBUG zookeeper.ZKUtil: hconnection-0x402bba4f-0x163891d95120b7c, quorum=localhost:2181, baseZNode=/hbase Unable to get data of znode /hbase/meta-region-server because node does not exist (not an error) 18/06/08 16:19:43 DEBUG zookeeper.ClientCnxn: Reading reply sessionid:0x163891d95120b7c, packet:: clientPath:null serverPath:null finished:false header:: 10,4 replyHeader:: 10,8595911622,-101 request:: '/hbase/meta-region-server,F response:: 18/06/08 16:19:43 DEBUG zookeeper.ZKUtil: hconnection-0x402bba4f-0x163891d95120b7c, quorum=localhost:2181, baseZNode=/hbase Unable to get data of znode /hbase/meta-region-server because node does not exist (not an error) 18/06/08 16:19:43 DEBUG zookeeper.ClientCnxn: Reading reply sessionid:0x163891d95120b7c, packet:: clientPath:null serverPath:null finished:false header:: 11,4 replyHeader:: 11,8595911624,-101 request
Created 06-09-2018 12:44 AM
I made some changes to your code, it should look like following to work properly:
import java.io.IOException; import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.hbase.client.HBaseAdmin; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.ConnectionFactory; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.conf.Configuration; public class CreateHbaseTable { public void createtable(String name, String[] colfamily)throws Exception { Configuration config = HBaseConfiguration.create(); config.set("hbase.zookeeper.quorum", "hadoop1,hadoop2"); config.set("hbase.zookeeper.property.clientPort", "2181"); config.set("hbase.cluster.distributed", "true"); config.set("zookeeper.znode.parent", "/hbase-unsecure"); HBaseAdmin admin = new HBaseAdmin(config); HTableDescriptor des = new HTableDescriptor(Bytes.toBytes(name)); for (int i = 0; i < colfamily.length; i++) { des.addFamily(new HColumnDescriptor(colfamily[i])); } if (admin.tableExists(name)) { System.out.println("Table already exist"); } else { admin.createTable(des); System.out.println("Table: " + name + " Sucessfully created"); } } public static void main(String args[]) throws Exception { CreateHbaseTable op = new CreateHbaseTable(); String tablename = "Acadgild"; String[] familys = { "Emp_name", "sal" }; op.createtable(tablename, familys); } }
.
Now in order to compile and run this code please do this:
# export CLASSPATH=`hbase classpath`:. # javac CreateHbaseTable.java # java CreateHbaseTable OUTPUT: . . 2018-06-09 00:40:18,504 INFO [main] client.HBaseAdmin: Created Acadgild Table: Acadgild Sucessfully created
.
Additionally if you want to use Maven Based Simple HBase client then please refer to:
https://github.com/jaysensharma/MiddlewareMagicDemos/tree/master/HDP_Ambari/HBase/HBase_Client
Created 06-08-2018 08:27 PM
Either the zookeeper or znode is incorrect.
* parent znode for hdp is generally /hbase-unsecure or /hbase-secure (not /hbase)
* check you are giving the right zookeeper address while connecting.
If you are not specifying them manually, then make sure that right hbase-site.xml is in your application classpath.
Created 06-08-2018 08:56 PM
where in this code I will specify the parent znode? are there any examples for HBASE JAVA api ?
also I am specifying the hbase-site.xml in classpath as follows :
java -classpath /usr/hdp/2.6.4.0-91/hbase/lib/hbase-client-1.1.2.2.6.4.0-91.jar:/usr/hdp/2.6.4.0-91/phoenix/*:/usr/hdp/2.6.4.0-91/hbase/conf/hbase-site.xml:. CreateHbaseTable
[root@hadoop1 ~]# vi CreateHbaseTable.java import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.MasterNotRunningException; import org.apache.hadoop.hbase.ZooKeeperConnectionException; import org.apache.hadoop.hbase.client.HBaseAdmin; import org.apache.hadoop.hbase.util.Bytes; public class CreateHbaseTable { Configuration config = HBaseConfiguration.create(); public void createtable(String name,String[] colfamily) throws MasterNotRunningException, ZooKeeperConnectionException, IOException { HBaseAdmin admin = new HBaseAdmin(config); HTableDescriptor des = new HTableDescriptor(Bytes.toBytes(name)); for(int i=0;i<colfamily.length;i++){ des.addFamily(new HColumnDescriptor(colfamily[i])); } if(admin.tableExists(name)){ System.out.println("Table already exist"); } else{ admin.createTable(des); System.out.println("Table: "+name+ " Sucessfully created"); } } public static void main(String args[]) throws MasterNotRunningException, ZooKeeperConnectionException,IOException{ CreateHbaseTable op = new CreateHbaseTable(); String tablename = "Acadgild"; String[] familys = {"Emp_name","sal"}; op.createtable(tablename, familys); } } <br>
Created 06-08-2018 08:57 PM
Configuration config = HBaseConfiguration.create();
Either you can add them config.set("zookeeper.znode.parent","/hbase-unsecure") and config.set("hbase.zookeeper.quorum","<server-name>)
Or you can directly include server hbase-site.xml in your application classpath so that HBaseConfiguration.create() will add them automatically.
Created 06-08-2018 09:21 PM
I tried to add it but its giving compilation error.
I showed the command using server based hbase-site.xml. . why its not adding it?
Configuration config = HBaseConfiguration.create(); config.set("zookeeper.znode.parent","/hbase-unsecure");
Created 06-08-2018 09:24 PM
you can't keep statement outside of method or constructor except declaration, static blocks in java.
Created 06-08-2018 09:25 PM
this code is giving me compilation error ,whats wrong?
[root@hadoop1 ~]# javac -classpath /usr/hdp/2.6.4.0-91/hbase/lib/hbase-client-1.1.2.2.6.4.0-91.jar:/usr/hdp/2.6.4.0-91/phoenix/*:/usr/hdp/2.6.4.0-91/hbase/conf/hbase-site.xml:. CreateHbaseTable.java CreateHbaseTable.java:12: error: <identifier> expected config.set("zookeeper.znode.parent","/hbase-unsecure"); ^ CreateHbaseTable.java:12: error: illegal start of type config.set("zookeeper.znode.parent","/hbase-unsecure"); ^ CreateHbaseTable.java:12: error: illegal start of type config.set("zookeeper.znode.parent","/hbase-unsecure"); ^ CreateHbaseTable.java:13: error: <identifier> expected config.set("hbase.zookeeper.quorum", "hadoop1,hadoop2"); ^ CreateHbaseTable.java:13: error: illegal start of type config.set("hbase.zookeeper.quorum", "hadoop1,hadoop2"); ^ CreateHbaseTable.java:13: error: illegal start of type config.set("hbase.zookeeper.quorum", "hadoop1,hadoop2");
[root@hadoop1 ~]# more CreateHbaseTable.java import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.MasterNotRunningException; import org.apache.hadoop.hbase.ZooKeeperConnectionException; import org.apache.hadoop.hbase.client.HBaseAdmin; import org.apache.hadoop.hbase.util.Bytes; public class CreateHbaseTable { Configuration config = HBaseConfiguration.create(); config.set("zookeeper.znode.parent","/hbase-unsecure"); config.set("hbase.zookeeper.quorum", "hadoop1,hadoop2"); config.set("hbase.zookeeper.property.clientPort", "2181"); config.set("hbase.cluster.distributed", "true"); config.set("zookeeper.znode.parent","/hbase-unsecure"); public void createtable(String name,String[] colfamily) throws MasterNotRunningException, ZooKeeperConnectionException, IOException { HBaseAdmin admin = new HBaseAdmin(config); HTableDescriptor des = new HTableDescriptor(Bytes.toBytes(name)); for(int i=0;i<colfamily.length;i++){ des.addFamily(new HColumnDescriptor(colfamily[i])); } if(admin.tableExists(name)){ System.out.println("Table already exist"); } else{ admin.createTable(des); System.out.println("Table: "+name+ " Sucessfully created"); } } public static void main(String args[]) throws MasterNotRunningException, ZooKeeperConnectionException,IOException{ CreateHbaseTable op = new CreateHbaseTable(); String tablename = "Acadgild"; String[] familys = {"Emp_name","sal"}; op.createtable(tablename, familys); } } You have new mail in /var/spool/mail/root
Created 06-09-2018 10:25 PM
You need to add the directory containing hbase-site.xml that you want, not the file itself. This is how Java works. You specify jar files, an asterisk wildcard, or a directory.
Created 06-09-2018 12:44 AM
I made some changes to your code, it should look like following to work properly:
import java.io.IOException; import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.hbase.client.HBaseAdmin; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.ConnectionFactory; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.conf.Configuration; public class CreateHbaseTable { public void createtable(String name, String[] colfamily)throws Exception { Configuration config = HBaseConfiguration.create(); config.set("hbase.zookeeper.quorum", "hadoop1,hadoop2"); config.set("hbase.zookeeper.property.clientPort", "2181"); config.set("hbase.cluster.distributed", "true"); config.set("zookeeper.znode.parent", "/hbase-unsecure"); HBaseAdmin admin = new HBaseAdmin(config); HTableDescriptor des = new HTableDescriptor(Bytes.toBytes(name)); for (int i = 0; i < colfamily.length; i++) { des.addFamily(new HColumnDescriptor(colfamily[i])); } if (admin.tableExists(name)) { System.out.println("Table already exist"); } else { admin.createTable(des); System.out.println("Table: " + name + " Sucessfully created"); } } public static void main(String args[]) throws Exception { CreateHbaseTable op = new CreateHbaseTable(); String tablename = "Acadgild"; String[] familys = { "Emp_name", "sal" }; op.createtable(tablename, familys); } }
.
Now in order to compile and run this code please do this:
# export CLASSPATH=`hbase classpath`:. # javac CreateHbaseTable.java # java CreateHbaseTable OUTPUT: . . 2018-06-09 00:40:18,504 INFO [main] client.HBaseAdmin: Created Acadgild Table: Acadgild Sucessfully created
.
Additionally if you want to use Maven Based Simple HBase client then please refer to:
https://github.com/jaysensharma/MiddlewareMagicDemos/tree/master/HDP_Ambari/HBase/HBase_Client
Created 06-11-2018 03:53 PM