<?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"/>
    </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>
