<?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.
-->

<!-- The default settings for Templeton. -->
<!-- Edit templeton-site.xml to change settings for your local -->
<!-- install. -->

<configuration>

  <property>
    <name>templeton.port</name>
    <value>50111</value>
    <description>The HTTP port for the main server.</description>
  </property>

  <property>
    <name>templeton.hadoop.conf.dir</name>
    <value>${env.HADOOP_CONF_DIR}</value>
    <description>The path to the Hadoop configuration.</description>
  </property>

  <property>
    <name>templeton.jar</name>
    <value>${env.TEMPLETON_HOME}/templeton-0.1.0-dev.jar</value>
    <description>The path to the Templeton jar file.</description>
  </property>

  <property>
    <name>templeton.libjars</name>
    <value>${env.TEMPLETON_HOME}/lib/zookeeper-3.3.4.jar</value>
    <description>Jars to add to the classpath.</description>
  </property>

  <property>
    <name>templeton.override.jars</name>
    <value>hdfs:///user/templeton/ugi.jar</value>
    <description>
        Jars to add the the HADOOP_CLASSPATH for all Map Reduce jobs.
        This is a list of jars that must exist on hdfs that are added
        to the Distributed Cache.
    </description>
  </property>

  <property>
    <name>templeton.override.enabled</name>
    <value>true</value>
    <description>
      Enable the override path in templeton.override.jars
    </description>
  </property>

  <property>
    <name>templeton.streaming.jar</name>
    <value>hdfs:///user/templeton/hadoop-streaming.jar</value>
    <description>The hdfs path to the Hadoop streaming jar file.</description>
  </property>

  <property>
    <name>templeton.hadoop</name>
    <value>${env.HADOOP_PREFIX}/bin/hadoop</value>
    <description>The path to the Hadoop executable.</description>
  </property>

  <property>
    <name>templeton.pig.archive</name>
    <value>hdfs:///user/templeton/pig-0.9.2.tar.gz</value>
    <description>The path to the Pig archive.</description>
  </property>

  <property>
    <name>templeton.pig.path</name>
    <value>pig-0.9.2.tar.gz/pig-0.9.2/bin/pig</value>
    <description>The path to the Pig executable.</description>
  </property>

  <property>
    <name>templeton.hcat</name>
    <value>${env.HCAT_PREFIX}/bin/hcat</value>
    <description>The path to the hcatalog executable.</description>
  </property>

  <property>
    <name>templeton.hive.archive</name>
    <value>hdfs:///user/templeton/hcatalog-0.3.0.tar.gz</value>
    <description>The path to the Hive archive.</description>
  </property>

  <property>
    <name>templeton.hive.path</name>
    <value>hcatalog-0.3.0.tar.gz/hcatalog-0.3.0/bin/hive</value>
    <description>The path to the Hive executable.</description>
  </property>

  <property>
    <name>templeton.hive.properties</name>
    <value>hive.metastore.local=false,hive.metastore.uris=thrift://localhost:9933,hive.metastore.sasl.enabled=false</value>
    <description>Properties to set when running hive.</description>
  </property>

  <property>
    <name>templeton.exec.encoding</name>
    <value>UTF-8</value>
    <description>The encoding of the stdout and stderr data.</description>
  </property>

  <property>
    <name>templeton.exec.timeout</name>
    <value>10000</value>
    <description>
      How long in milliseconds a program is allowed to run on the
      Templeton box.
    </description>
  </property>

  <property>
    <name>templeton.exec.max-procs</name>
    <value>16</value>
    <description>The maximum number of processes allowed to run at once.</description>
  </property>

  <property>
    <name>templeton.exec.max-output-bytes</name>
    <value>1048576</value>
    <description>
      The maximum number of bytes from stdout or stderr stored in ram.
    </description>
  </property>

  <property>
    <name>templeton.exec.envs</name>
    <value>HADOOP_PREFIX,HADOOP_HOME,JAVA_HOME</value>
    <description>The environment variables passed through to exec.</description>
  </property>

  <property>
    <name>templeton.zookeeper.hosts</name>
    <value>127.0.0.1:2181</value>
    <description>ZooKeeper servers, as comma separated host:port pairs</description>
  </property>

  <property>
    <name>templeton.zookeeper.session-timeout</name>
    <value>30000</value>
    <description>ZooKeeper session timeout in milliseconds</description>
  </property>

  <property>
    <name>templeton.callback.retry.interval</name>
    <value>10000</value>
    <description>How long to wait between callback retry attempts in milliseconds</description>
  </property>

  <property>
    <name>templeton.callback.retry.attempts</name>
    <value>5</value>
    <description>How many times to retry the callback</description>
  </property>

  <property>
    <name>templeton.storage.class</name>
    <value>org.apache.hcatalog.templeton.tool.HDFSStorage</value>
    <description>The class to use as storage</description>
  </property>

  <property>
    <name>templeton.storage.root</name>
    <value>/templeton-hadoop</value>
    <description>The path to the directory to use for storage</description>
  </property>

  <property>
    <name>templeton.hdfs.cleanup.interval</name>
    <value>43200000</value>
    <description>The maximum delay between a thread's cleanup checks</description>
  </property>

  <property>
    <name>templeton.hdfs.cleanup.maxage</name>
    <value>604800000</value>
    <description>The maximum age of a templeton job</description>
  </property>

  <property>
    <name>templeton.zookeeper.cleanup.interval</name>
    <value>43200000</value>
    <description>The maximum delay between a thread's cleanup checks</description>
  </property>

  <property>
    <name>templeton.zookeeper.cleanup.maxage</name>
    <value>604800000</value>
    <description>The maximum age of a templeton job</description>
  </property>

</configuration>
