You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by Apache Wiki <wi...@apache.org> on 2015/10/22 23:03:59 UTC
[Hadoop Wiki] Update of "Hbase/ZookeeperIntegration" by Misty
Dear Wiki user,
You have subscribed to a wiki page or wiki category on "Hadoop Wiki" for change notification.
The "Hbase/ZookeeperIntegration" page has been changed by Misty:
https://wiki.apache.org/hadoop/Hbase/ZookeeperIntegration?action=diff&rev1=5&rev2=6
- = HBase/Zookeeper Integration Documentation =
+ The HBase Wiki is in the process of being decommissioned. The info that used to be on this page has moved to http://hbase.apache.org/book.html#zookeeper. Please update your bookmarks.
- == Introduction ==
-
- [[http://hadoop.apache.org/zookeeper/|Apache ZooKeeper]] is for HBase what Chubby is for Bigtable. The goal of using ZK is that a coordination manager is useful to decentralize the master's job and it improves availability. In Bigtable's paper, Chubby is used to :
-
- * Ensure there is at most 1 active master at any time
- * Store the bootstrap location
- * Discover tablet servers and finalize tablet server death
- * Store the schema information
- * Store access control lists
-
- It has been discussed that, for the moment, only the three first bullets will be implemented. Also, in order to have a lesser impact on current users, ZK will be optional and a basic implementation will be provided in HBase. For those that will use ZK, the overhead will be like using HDFS.
-
- For updates, see [[https://issues.apache.org/jira/browse/HBASE-546|HBASE-546]]
-
- == The Interface ==
-
- The interface must support macro operations so that dirty implementation details are hidden.
-
- The current interface would be :
-
- {{{
- ...
-
- public interface DistributedLockInterface extends VersionedProtocol {
-
- public static final long versionID = 1L;
-
- /**
- * Used to bootstrap. Used to find a tablet location when a client doesn't have
- * META information
- *
- * @return root region information
- */
- public byte[] getRootRegion() throws IOException;
-
- /**
- * Used by regionserver at startup or by master if a regionserver is down
- *
- * @param filename File name of the lock
- */
- public void acquireLock(String filename) throws IOException;
-
- /**
- * Used by regionserver at shutdown or by master if a regionserver is down
- *
- * @param filename File name of the lock
- */
- public void releaseLock(String filename) throws IOException;
-
- /**
- * Used by master at startup
- */
- public void acquireMasterLock() throws IOException;
-
- /**
- * Used by master at startup to discover live servers
- * @return All the addresses of the region servers
- */
- public HServerAddress[] getLiveRegionServers() throws IOException;
-
- }
-
- }}}
-
-
-
- == The HBase Implementation ==
-
- This implementation of the interface would be master-based, this means that it doesn't support master failover and won't provide better availability.
-
- See [[https://issues.apache.org/jira/browse/HBASE-708|HBASE-708]]
-
- == The ZK Integration ==
-
- Not so soon...
-