Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-22019

Ability to remotely connect to hbase when hbase/zook is hosted on dynamic IP addresses

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Resolved
    • Major
    • Resolution: Invalid
    • None
    • None
    • IPC/RPC, Zookeeper
    • None

    Description

      Our team's need for this is purely for remote connections (ie personal laptops) to HBASE (hosted on EC2) to work as hbase connections under the cover connect to zookeeper (also running on EC2) and attempt to resolve the hostname (not DNS!) of the machine running zookeeper. From what I've read othersĀ  re facing the issue:
      https://forums.aws.amazon.com/thread.jspa?threadID=119915
      https://stackoverflow.com/questions/30751187/unable-to-connect-to-hbase-stand-alone-server-from-windows-remote-client
      https://sematext.com/opensee/m/HBase/YGbbw6MGk1B9nCv?subj=Re:+Remote+Java+client+connection+into+EC2+instance
      https://community.cloudera.com/t5/Storage-Random-Access-HDFS/Problem-in-connectivity-between-HBase-amp-JAVA/td-p/1693
      https://stackoverflow.com/questions/9413481/hbase-node-could-not-be-reached-from-hbase-java-api-client
      https://groups.google.com/forum/#!topic/opentsdb/3w4FCnPYRDg

      Between ec2s I don't get the below error because I can edit /etc/hosts to add the host name below but don't have root/admin access on other machines to do the same. Problem is if we have 100s of users wanting to connect to hbase data then they would all face this /etc/hosts issue.

      Example of the error:
      19/03/01 17:02:14 WARN client.ConnectionUtils: Can not resolve ip-10xxxxx.com, please check your network
      java.net.UnknownHostException: ip-10xxxxx.com: Name or service not known
      at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method)
      at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:929)
      at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1324)
      at java.net.InetAddress.getAllByName0(InetAddress.java:1277)
      at java.net.InetAddress.getAllByName(InetAddress.java:1193)
      at java.net.InetAddress.getAllByName(InetAddress.java:1127)
      at java.net.InetAddress.getByName(InetAddress.java:1077)
      at org.apache.hadoop.hbase.client.ConnectionUtils.getStubKey(ConnectionUtils.java:233)
      at org.apache.hadoop.hbase.client.ConnectionImplementation.getClient(ConnectionImplementation.java:1189)
      at org.apache.hadoop.hbase.client.ClientServiceCallable.setStubByServiceName(ClientServiceCallable.java:44)
      at org.apache.hadoop.hbase.client.RegionServerCallable.prepare(RegionServerCallable.java:229)
      at org.apache.hadoop.hbase.client.RpcRetryingCallerImpl.callWithRetries(RpcRetryingCallerImpl.java:105)
      at org.apache.hadoop.hbase.client.HTable.get(HTable.java:386)
      at org.apache.hadoop.hbase.client.HTable.get(HTable.java:360)
      at org.apache.hadoop.hbase.MetaTableAccessor.getTableState(MetaTableAccessor.java:1066)
      at org.apache.hadoop.hbase.MetaTableAccessor.tableExists(MetaTableAccessor.java:389)
      at org.apache.hadoop.hbase.client.HBaseAdmin$6.rpcCall(HBaseAdmin.java:437)
      at org.apache.hadoop.hbase.client.HBaseAdmin$6.rpcCall(HBaseAdmin.java:434)
      at org.apache.hadoop.hbase.client.RpcRetryingCallable.call(RpcRetryingCallable.java:58)
      at org.apache.hadoop.hbase.client.RpcRetryingCallerImpl.callWithRetries(RpcRetryingCallerImpl.java:107)
      at org.apache.hadoop.hbase.client.HBaseAdmin.executeCallable(HBaseAdmin.java:3055)
      at org.apache.hadoop.hbase.client.HBaseAdmin.executeCallable(HBaseAdmin.java:3047)
      at org.apache.hadoop.hbase.client.HBaseAdmin.tableExists(HBaseAdmin.java:434)

      Attachments

        Activity

          People

            Unassigned Unassigned
            toopt4 t oo
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: