<?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 Common Documentation describes the common utilities and libraries that support the other Hadoop subprojects.  
  </p>
  <p>
The Hadoop Common Documentation also includes the information you need to get started using Hadoop. 
Begin with the Hadoop <a href="single_node_setup.html">Single Node Setup</a> which shows you how to set up a single-node Hadoop installation. 
Then move on to the Hadoop <a href="cluster_setup.html">Cluster Setup</a> to learn how to set up a multi-node Hadoop installation. 
</p>
 <p>
   Cluster environments commonly work in tandem with MapReduce applications and distributed file systems. 
   For information about MapReduce see the 
 <a href="http://hadoop.apache.org/mapreduce/docs/current/index.html">MapReduce 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 Common Mailing Lists</a> or browse the <a href="ext:archive">Mailing List Archives</a>.
</p>
  </body>
  
</document>
