[
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)