java client
package com.example.hbaseconnect.HBaseConnect;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Scan;
public class HBaseConnect {
public static void main(String[] args) throws IOException {
Configuration conf = HBaseConfiguration.create();
conf.clear();
conf.addResource("hbase-site.xml");
conf.set("hbase.zookeeper.quorum","10.255.1.61");
conf.set("hbase.zookeeper.property.clientPort","2181");
conf.set("hbase.master", "10.255.1.61:60010");
HBaseAdmin.checkHBaseAvailable(conf);
System.out.println("connected to hbase");
HTable table = new HTable(conf, "bunty");
Scan scan = new Scan();
}
}
client side hbase-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--Autogenerated by Cloudera CM on 2014-08-28T02:35:59.408Z-->
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://10.255.1.61:8020/hbase</value>
</property>
<property>
<name>hbase.client.write.buffer</name>
<value>2097152</value>
</property>
<property>
<name>hbase.client.pause</name>
<value>1000</value>
</property>
<property>
<name>hbase.client.retries.number</name>
<value>10</value>
</property>
<property>
<name>hbase.client.scanner.caching</name>
<value>1</value>
</property>
<property>
<name>hbase.client.keyvalue.maxsize</name>
<value>10485760</value>
</property>
<property>
<name>hbase.rpc.timeout</name>
<value>60000</value>
</property>
<property>
<name>hbase.security.authentication</name>
<value>simple</value>
</property>
<property>
<name>zookeeper.session.timeout</name>
<value>60000</value>
</property>
<property>
<name>zookeeper.znode.parent</name>
<value>/hbase</value>
</property>
<property>
<name>zookeeper.znode.rootserver</name>
<value>root-region-server</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>10.255.1.61</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
</configuration>
On Monday 29 September 2014 06:35 PM, Wellington Chevreuil wrote:
Hi,
You should not do this, as localhost should resolve to the own host. This is
probably some missing property on the clients hbase configuration (make sure
you have a proper hbase-site.xml on client's classpath or set configuration
programatically). As a start, check if you had set the properties below on your
client's hbase config.
<property>
<name>hbase.zookeeper.quorum</name>
<value>ZK_HOSTS</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
On 29 Sep 2014, at 13:43, SACHINGUPTA <[email protected]> wrote:
Hello guys
I am using the hbase java api to connect to hbase remotely, but when I executed
the java code, got |MasterNotRunningException|. When I debugged the code, I
came to know that zookeeper was returning the address of hmaster as
localhost.localdomain, so the client was trying to search for the hmaster
locally. When I changed the |/etc/hosts| file of my local machine from where i
am running the java client as:
|<ip of the master> localhost.localdomain|
then it worked fine.
However, I think that this is not the right way. I think I have to change the
addresses somewhere in the configuration of zookeeper, but I did not get it.
please help
thanks
--
Thanks
Sachin Gupta
--
Thanks
Sachin Gupta