<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You 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 at

      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.
-->
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- This is the main configuration file for Apache Accumulo. Available configuration properties can be
     found in the Accumulo documentation on the Accumulo project website (https://accumulo.apache.org/) -->
<configuration>
  <!-- Set location in HDFS where Accumulo will store data -->
  <property>
    <name>instance.volumes</name>
    <value>hdfs://localhost:8020/accumulo</value>
  </property>
  <!-- Set location of Zookeepers -->
  <property>
    <name>instance.zookeeper.host</name>
    <value>localhost:2181</value>
  </property>
  <!-- Change secret before initialization. All servers must have same secret -->
  <property>
    <name>instance.secret</name>
    <value>DEFAULT</value>
  </property>
  <!-- Set to false if 'accumulo-util build-native' fails -->
  <property>
    <name>tserver.memory.maps.native.enabled</name>
    <value>true</value>
  </property>
  <!-- Set a correct user/password below -->
  <property>
    <name>trace.user</name>
    <value>root</value>
  </property>
  <property>
    <name>trace.password</name>
    <value>secret</value>
  </property>
  <property>
    <name>tserver.port.search</name>
    <value>true</value>
  </property>
</configuration>
