[ https://issues.apache.org/jira/browse/HBASE-1606?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Work on HBASE-1606 started by Nitay Joffe. > Remove zoo.cfg, put config options into hbase-site.xml > ------------------------------------------------------ > > Key: HBASE-1606 > URL: https://issues.apache.org/jira/browse/HBASE-1606 > Project: Hadoop HBase > Issue Type: Sub-task > Affects Versions: 0.20.0 > Reporter: Nitay Joffe > Assignee: Nitay Joffe > Fix For: 0.20.0 > > > From HBASE-1551: > Here's my current thinking: > * Move all of the ZooKeeper config paraments into hbase-*.xml using > zookeeper.property.KEY = VALUE. > * Add a special property for the list of quorum servers, say > zookeeper.quorum. This option can default to "localhost". > * If there is a zoo.cfg present in the classpath, use its data above the > zookeeper.property.KEY options. > * When we need to instantiate something to talk to ZooKeeper, we simply > create a new HBaseConfiguration and call some method on it e.g. > toZooKeeperProperties(). > This method will iterate through the zookeeper.property.KEY and turn > each into the appropriate ZooKeeper configurations (i.e. KEY=VALUE). It will > generate > the server.X property from the zookeeper.quorum configuration option. > As mentioned above, if there is a zoo.cfg in the classpath, overwrite the > data with its configuration. > This will return a Properties object that can be used to construct the > appropriate ZooKeeper config and start/talk to their servers. > * For start/stop management of full ZK quorum cluster, use something like > my ZKServerTool in the patch (modified of course) to do the parsing mentioned > above and turn it > into a simple line-by-line list of quorum servers. As I do in this > patch, the bin/zookeepers.sh can then simply call bin/hbase > o.a.h.h.z.ZKServerTool to get the list of hosts. > If you want something like a conf/zookeepers you can simply run > ZKServerTool yourself. > The benefits from all this are: > * One place for all ZK configuration. No duplicate setting of parameters. > * No more nasty zoo.cfg. Give the user what they're already used to, a > single XML config file. > * New user only need edit zookeeper.quorum to get full cluster. > * Programmable control of what ZK one is talking to. > And some of Stack's comments: > @nitay, I think you need to keep the hbase zookeeper config inside of an > hbase namespace. The Hadoop Configuation system is a floozy. It will go with > anyone who calls load resource on it pulling in their properties. I could see > that out on a MR task, the Configuration could have all kinds of pollution in > it. Would suggest an hbase prefix - hbase.zookeeper prefix? > @nitay on "if zoo.cfg in the CLASSPATH", that might work. We might want to > try narrow the places we look on the CLASSPATH. But lets start open and > narrow later (we probably want this to be open as possible at mo. until we > learn more about the cloudera config.) > @nitay on toZooKeeperProperties, do we have to expose that? Can't we just > pass a HBaseConfiguation to the HBase ZK Wrapper (I'm not up on latest dev > here so this might be an off suggestion) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.