<!--
 ! Copyright 2009-2013 by The Regents of the University of California
 ! Licensed under the Apache License, Version 2.0 (the "License");
 ! you may not use this file except in compliance with the License.
 ! you may obtain a copy of the License from
 ! 
 !     http://www.apache.org/licenses/LICENSE-2.0
 ! 
 ! Unless required by applicable law or agreed to in writing, software
 ! distributed under the License is distributed on an "AS IS" BASIS,
 ! WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 ! See the License for the specific language governing permissions and
 ! limitations under the License.
 !-->
<configuration xmlns="installer">
  <backup>
    <hdfs>
      <version>0.20.2</version>
      <url></url>
      <backupDir></backupDir>
    </hdfs>
  </backup>
  <zookeeper>
    <homeDir>/tmp/zookeeper</homeDir>
    <clientPort>2900</clientPort>
    <servers>
      <server>127.0.0.1</server>
    </servers>
  </zookeeper>
</configuration>
