[ 
https://issues.apache.org/jira/browse/HBASE-18124?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

liubangchen updated HBASE-18124:
--------------------------------
    Status: Open  (was: Patch Available)

> Make Hbase Communication Support Virtual Network
> ------------------------------------------------
>
>                 Key: HBASE-18124
>                 URL: https://issues.apache.org/jira/browse/HBASE-18124
>             Project: HBase
>          Issue Type: New Feature
>          Components: Client, hbase, master
>            Reporter: liubangchen
>            Assignee: liubangchen
>         Attachments: 1.jpg, HBASE-18124.patch, HBASE-18124.pdf
>
>
> Hbase only have one way to locate hmaster or hregionserver not like hdfs has 
> two way to locate datanode used by name or hostname.
> I'm a engineer of cloud computing , and I'm in charge of to make Hbase as a 
> cloud service.
> Our Hbase cloud service architecture shown as follows:  1.jpg
> 1.VM
>     User’s Hbase client work in vm and use virtual ip address to access hbase 
> cluster.
> 2.NAT
>     Network Address Translation, vip(Virtual Network Address) to pip 
> (Physical Network Address)
> 3. HbaseCluster Service
>      HbaseCluster Service work in physical network
> Problem
>      Vm use vip to communicate with hbase cluster, but hbase have only one 
> way to communicate with each server using host which is setting by parameters 
> hbase.regionserver.hostname or hbase.master.hostname. When HMaster startup 
> will publish master address and meta region server address  in zookeeper, 
> then the address is pip(Physical Network Address) . Because hbase cluster 
> work in physical network. But the problem is that when vm get  the address 
> from zookeeper is pip, not vip. If I set host as vip, it will has problems 
> for hbase cluster communication inside. so it needs two ways for 
> communication setting by parameters.
> Solution
>     1.   protocol extend 
>       change strcut ServerName as
>       {code}
>           message ServerName {
>               required string host_name = 1;
>              optional uint32 port = 2;
>              optional uint64 start_code = 3;
>               optional string name=4;  //new field 
>          }
>       {code}
>      It will be publish in zookeeper. We can choose host_name or name 
> configured by parameters hbase.client.use.hostname
> 2.   metatable extend 
>        Add a column to hbase:meta named info:namelocation . So the original 
> column info:server configured with hbase.regionserver.hostname, and the new 
> column info:namelocation  configured with hbase.regionserver.servername
> 3.   hbase-server
>        When regionserver startup, configured  hbase.regionserver.hostname as 
> pip and configured hbase.regionserver.servername as vip. Then 
> hbase.regionserver.hostname will be writed in ServerName's host_name, and 
> hbase.regionserver.servername will be writed in ServerName's name.When 
> hmaster startup, configured hbase.hmaster.hostname as pip and configured  
> hbase.hmaster.servername as vip. Then hbase.hmaster.hostname will be writed 
> in ServerName's host_name, and hbase.hmaster.servername will be writed in 
> ServerName's name.
> 4.   hbase-client
>       Add a parameters named hbase.client.use.hostname to use vip or pip.
> This patch is base on Hbase-1.3.0



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to