Support Questions
Find answers, ask questions, and share your expertise
Announcements
Alert: Welcome to the Unified Cloudera Community. Former HCC members be sure to read and learn how to activate your account here.

HBase : Zookeeper serves Internal IP to Remote client (Java API)

Highlighted

HBase : Zookeeper serves Internal IP to Remote client (Java API)

New Contributor

I am running a very basic HBase connection program from a remote server.
Reading the server logs, I see Zookeeper acknowledge the request, but then serves to the Client the internal IP of HBase Master, which is of no use from the outside world.

I know where the master is and what its public IP is but I do not know how to effectively connect to HBase remotely using the Java API. Any Ideas ?

I've seen some people advice to mess up with the /etc/hosts file but that's an ugly and inelegant solution, and it breaks other parts of the ecosystem.

    String zookeeperHost = "public.ip.address";

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


    HBaseAdmin.available(hconfig);

org.apache.hadoop.hbase.MasterNotRunningException:
com.google.protobuf.ServiceException:
java.net.UnknownHostException: unknown host: ip-xx-xx-xx-xx.eu-west-1.compute.internal