<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--
/**
 * 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.
 */
-->
<configuration>
<!--
New mapreduce config properties
-->
   <property>
      <name>mapreduce.job.queuename</name><value>TheQueue</value>
   </property>
   <property>
      <name>mapreduce.job.name</name><value>MyMRJob</value>
   </property>
   <property>
      <name>maproduce.uninteresting.property</name><value>abcdef</value>
   </property>
   <property><name>mapreduce.map.java.opts</name><value>-server -Xmx640m -Djava.net.preferIPv4Stack=true</value></property>
   <property><name>mapreduce.reduce.java.opts</name><value>-server -Xmx650m -Djava.net.preferIPv4Stack=true</value></property>
</configuration>
