<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
  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.
-->
<project name="Hadoop">
  <bannerLeft>
    <name>Hadoop</name>
    <src>http://hadoop.apache.org/images/hadoop-logo.jpg</src>
    <href>http://hadoop.apache.org/</href>
  </bannerLeft>
  <bannerRight>
    <src>http://www.apache.org/images/asf_logo_wide.png</src>
    <href>http://www.apache.org/</href>
  </bannerRight>

  <publishDate position="right"/>
  <version position="right"/>

  <skin>
    <groupId>org.apache.maven.skins</groupId>
    <artifactId>maven-stylus-skin</artifactId>
    <version>1.2</version>
  </skin>

  <body>
    <links position="left">
      <item name="Wiki" href="http://wiki.apache.org/hadoop" />
      <item name="SVN" href="https://svn.apache.org/repos/asf/hadoop/" />
    </links>

    <breadcrumbs position="left">
      <item name="Apache" href="http://www.apache.org/" />
      <item name="Hadoop" href="http://hadoop.apache.org/"/>
    </breadcrumbs>

    <menu name="Common" inherit="top">
      <item name="Overview" href="index.html"/>
      <item name="Single Node Setup" href="hadoop-project-dist/hadoop-common/SingleCluster.html"/>
      <item name="Cluster Setup" href="hadoop-project-dist/hadoop-common/ClusterSetup.html"/>
      <item name="CLI Mini Cluster" href="hadoop-project-dist/hadoop-common/CLIMiniCluster.html"/>
      <item name="File System Shell" href="hadoop-project-dist/hadoop-common/FileSystemShell.html"/>
      <item name="Hadoop Commands Reference" href="hadoop-project-dist/hadoop-common/CommandsManual.html"/>
    </menu>
    
    <menu name="HDFS" inherit="top">
      <item name="High Availability With QJM" href="hadoop-yarn/hadoop-yarn-site/HDFSHighAvailabilityWithQJM.html"/>
      <item name="High Availability With NFS" href="hadoop-yarn/hadoop-yarn-site/HDFSHighAvailabilityWithNFS.html"/>
      <item name="Federation" href="hadoop-project-dist/hadoop-hdfs/Federation.html"/>
      <item name="WebHDFS REST API" href="hadoop-project-dist/hadoop-hdfs/WebHDFS.html"/>
      <item name="HttpFS Gateway" href="hadoop-hdfs-httpfs/index.html"/>
    </menu>

    <menu name="MapReduce" inherit="top">
      <item name="Encrypted Shuffle" href="hadoop-mapreduce-client/hadoop-mapreduce-client-core/EncryptedShuffle.html"/>
      <item name="Pluggable Shuffle/Sort" href="hadoop-mapreduce-client/hadoop-mapreduce-client-core/PluggableShuffleAndPluggableSort.html"/>
    </menu>
    
    <menu name="YARN" inherit="top">
      <item name="YARN Architecture" href="hadoop-yarn/hadoop-yarn-site/YARN.html"/>
      <item name="Writing YARN Applications" href="hadoop-yarn/hadoop-yarn-site/WritingYarnApplications.html"/>
      <item name="Capacity Scheduler" href="hadoop-yarn/hadoop-yarn-site/CapacityScheduler.html"/>
      <item name="Web Application Proxy" href="hadoop-yarn/hadoop-yarn-site/WebApplicationProxy.html"/>
      <item name="YARN Commands" href="hadoop-yarn/hadoop-yarn-site/YarnCommands.html"/>
    </menu>

    <menu name="YARN REST APIs" inherit="top">
      <item name="Introduction" href="hadoop-yarn/hadoop-yarn-site/WebServicesIntro.html"/>
      <item name="Resource Manager" href="hadoop-yarn/hadoop-yarn-site/ResourceManagerRest.html"/>
      <item name="Node Manager" href="hadoop-yarn/hadoop-yarn-site/NodeManagerRest.html"/>
      <item name="MR Application Master" href="hadoop-yarn/hadoop-yarn-site/MapredAppMasterRest.html"/>
      <item name="History Server" href="hadoop-yarn/hadoop-yarn-site/HistoryServerRest.html"/>
    </menu>
    
    <menu name="Auth" inherit="top">
      <item name="Overview" href="hadoop-auth/index.html"/>
      <item name="Examples" href="hadoop-auth/Examples.html"/>
      <item name="Configuration" href="hadoop-auth/Configuration.html"/>
      <item name="Building" href="hadoop-auth/BuildingIt.html"/>
    </menu>
    
    <menu name="Reference" inherit="top">
      <item name="Release Notes" href="hadoop-project-dist/hadoop-common/releasenotes.html"/>
      <item name="API docs" href="api/index.html"/>
      <item name="Common CHANGES.txt" href="hadoop-project-dist/hadoop-common/CHANGES.txt"/>
      <item name="HDFS CHANGES.txt" href="hadoop-project-dist/hadoop-hdfs/CHANGES.txt"/>
      <item name="MapReduce CHANGES.txt" href="hadoop-project-dist/hadoop-mapreduce/CHANGES.txt"/>
    </menu>
    
    <menu name="Configuration" inherit="top">
      <item name="core-default.xml" href="hadoop-project-dist/hadoop-common/core-default.xml"/>
      <item name="hdfs-default.xml" href="hadoop-project-dist/hadoop-hdfs/hdfs-default.xml"/>
      <item name="mapred-default.xml" href="hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml"/>
      <item name="yarn-default.xml" href="hadoop-yarn/hadoop-yarn-common/yarn-default.xml"/>
      <item name="Deprecated Properties" href="hadoop-project-dist/hadoop-common/DeprecatedProperties.html"/>
    </menu>

  </body>

</project>
