Skip to content

Commit 4230091

Browse files
Merge pull request #2 from lfyzjck/master
support custom hbase zookeeper root path
2 parents d3f87b8 + 76fee47 commit 4230091

File tree

3 files changed

+19
-11
lines changed

3 files changed

+19
-11
lines changed

hbase/client/client.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ def in_memory(self, value):
127127

128128
class Client(object):
129129

130-
def __init__(self, zkquorum):
130+
def __init__(self, zkquorum, zk_master_path=None, zk_region_path=None):
131131
"""HBase client.
132132
133133
Args:
@@ -142,8 +142,8 @@ def __init__(self, zkquorum):
142142
"""
143143
self._zkquorum = zkquorum
144144

145-
self._master_service = services.MasterService(zkquorum)
146-
self._region_manager = _region.RegionManager(zkquorum)
145+
self._master_service = services.MasterService(zkquorum, zk_master_path)
146+
self._region_manager = _region.RegionManager(zkquorum, zk_region_path)
147147

148148
def __enter__(self):
149149
return self

hbase/services/services.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ def request(self, pb_req):
6969

7070
class MasterService(Service):
7171

72-
def __init__(self, zkquorum):
72+
def __init__(self, zkquorum, zkpath=None):
7373
"""Master service.
7474
7575
Args:
@@ -83,16 +83,17 @@ def __init__(self, zkquorum):
8383
8484
"""
8585
self._zkquorum = zkquorum
86+
self._zkpath = zkpath
8687
super(MasterService, self).__init__(None, None)
8788

8889
def _rebuild_request(self):
89-
self._host, self._port = zookeeper.get_master(self._zkquorum)
90+
self._host, self._port = zookeeper.get_master(self._zkquorum, self._zkpath)
9091
self._request = request.Request(self._host, self._port, 'MasterService')
9192

9293

9394
class MetaService(Service):
9495

95-
def __init__(self, zkquorum):
96+
def __init__(self, zkquorum, zkpath):
9697
"""Meta region service.
9798
9899
Args:
@@ -106,10 +107,11 @@ def __init__(self, zkquorum):
106107
107108
"""
108109
self._zkquorum = zkquorum
110+
self._zkpath = zkpath
109111
super(MetaService, self).__init__(None, None)
110112

111113
def _rebuild_request(self):
112-
self._host, self._port = zookeeper.get_region(self._zkquorum)
114+
self._host, self._port = zookeeper.get_region(self._zkquorum, self._zkpath)
113115
self._request = request.Request(self._host, self._port, 'ClientService')
114116

115117

hbase/services/zookeeper.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,14 @@
2020
PATH_META_REGION = '/hbase/meta-region-server'
2121

2222

23-
def get_master(zkquorum, timeout=9, retries=3):
23+
def get_master(zkquorum, timeout=9, retries=3, zkpath=None):
2424
"""Get master server address.
2525
2626
Args:
2727
zkquorum (str):
2828
timeout (int):
2929
retries (int):
30+
zkpath (str): root path for hbase
3031
3132
Returns:
3233
tuple: (hostname, port)
@@ -37,16 +38,19 @@ def get_master(zkquorum, timeout=9, retries=3):
3738
exceptions.ZookeeperProtocolError: Invalid response.
3839
3940
"""
40-
return _get_address(zkquorum, PATH_MASTER, timeout, retries)
41+
if zkpath is None:
42+
zkpath = PATH_MASTER
43+
return _get_address(zkquorum, zkpath, timeout, retries)
4144

4245

43-
def get_region(zkquorum, timeout=9, retries=3):
46+
def get_region(zkquorum, timeout=9, retries=3, zkpath=None):
4447
"""Get meta region server address.
4548
4649
Args:
4750
zkquorum (str):
4851
timeout (int):
4952
retries (int):
53+
zkpath (str): root path for hbase
5054
5155
Returns:
5256
tuple: (hostname, port)
@@ -57,7 +61,9 @@ def get_region(zkquorum, timeout=9, retries=3):
5761
exceptions.ZookeeperProtocolError: Invalid response.
5862
5963
"""
60-
return _get_address(zkquorum, PATH_META_REGION, timeout, retries)
64+
if zkpath is None:
65+
zkpath = PATH_META_REGION
66+
return _get_address(zkquorum, zkpath, timeout, retries)
6167

6268

6369
def _get_address(zkquorum, path, timeout=9, retries=3):

0 commit comments

Comments
 (0)