<?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="Native Libraries" href="hadoop-project-dist/hadoop-common/NativeLibraries.html"/>
      <item name="Superusers" href="hadoop-project-dist/hadoop-common/Superusers.html"/>
      <item name="Hadoop Commands Reference" href="hadoop-project-dist/hadoop-common/CommandsManual.html"/>
      <item name="Service Level Authorization" href="hadoop-project-dist/hadoop-common/ServiceLevelAuth.html"/>
      <item name="HTTP Authentication" href="hadoop-project-dist/hadoop-common/HttpAuthentication.html"/>
    </menu>
    
    <menu name="HDFS" inherit="top">
      <item name="HDFS User Guide" href="hadoop-project-dist/hadoop-hdfs/HdfsUserGuide.html"/>
      <item name="High Availability With QJM" href="hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html"/>
      <item name="High Availability With NFS" href="hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithNFS.html"/>
      <item name="Federation" href="hadoop-project-dist/hadoop-hdfs/Federation.html"/>
      <item name="HDFS Architecture" href="hadoop-project-dist/hadoop-hdfs/HdfsDesign.html"/>
      <item name="Edits Viewer" href="hadoop-project-dist/hadoop-hdfs/HdfsEditsViewer.html"/>
      <item name="Image Viewer" href="hadoop-project-dist/hadoop-hdfs/HdfsImageViewer.html"/>
      <item name="Permissions and HDFS" href="hadoop-project-dist/hadoop-hdfs/HdfsPermissionsGuide.html"/>
      <item name="Quotas and HDFS" href="hadoop-project-dist/hadoop-hdfs/HdfsQuotaAdminGuide.html"/>
      <item name="HFTP" href="hadoop-project-dist/hadoop-hdfs/Hftp.html"/>
      <item name="C API libhdfs" href="hadoop-project-dist/hadoop-hdfs/LibHdfs.html"/>
      <item name="WebHDFS REST API" href="hadoop-project-dist/hadoop-hdfs/WebHDFS.html"/>
      <item name="HttpFS Gateway" href="hadoop-hdfs-httpfs/index.html"/>
      <item name="Short Circuit Local Reads" 
          href="hadoop-project-dist/hadoop-hdfs/ShortCircuitLocalReads.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="Fair Scheduler" href="hadoop-yarn/hadoop-yarn-site/FairScheduler.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>
