<?xml version="1.0"?>
<!--
  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.
-->

<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN" "http://forrest.apache.org/dtd/document-v20.dtd">

<document>
  
  <header>
    <title>Overview</title>
  </header>
  
  <body>
  <p>
  The Hadoop MapReduce Documentation provides the information you need to get started writing MapReduce applications. 
  Begin with the <a href="mapred_tutorial.html">MapReduce Tutorial</a> which shows you how to write MapReduce applications using Java. 
  To write MapReduce applications in languages other than Java see <a href="streaming.html">Hadoop Streaming</a>, a utility that allows you to create
  and run jobs with any executable as the mapper or reducer.
  </p>
  
  <p>
   MapReduce works in tandem with a cluster environment and a distributed file system. 
   For information about Hadoop clusters (single or multi node) see the 
 <a href="http://hadoop.apache.org/common/docs/current/index.html">Hadoop Common Documentation</a>.
   For information about the Hadoop Distributed File System (HDFS) see the 
 <a href="http://hadoop.apache.org/hdfs/docs/current/index.html">HDFS Documentation</a>.
  </p>  
  
  <p>
If you have more questions, you can ask on the <a href="ext:lists">Hadoop MapReduce Mailing Lists</a> or browse the <a href="ext:archive">Mailing List Archives</a>.
    </p>
  </body>
  
</document>
