<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--
 | Generated by Apache Maven Doxia at 2021-06-15
 | Rendered using Apache Maven Stylus Skin 1.5
-->
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Apache Hadoop 3.3.1 &#x2013; </title>
    <style type="text/css" media="all">
      @import url("./css/maven-base.css");
      @import url("./css/maven-theme.css");
      @import url("./css/site.css");
    </style>
    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
        <meta name="Date-Revision-yyyymmdd" content="20210615" />
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
                </head>
  <body class="composite">
    <div id="banner">
                        <a href="http://hadoop.apache.org/" id="bannerLeft">
                                        <img src="http://hadoop.apache.org/images/hadoop-logo.jpg" alt="" />
                </a>
                              <a href="http://www.apache.org/" id="bannerRight">
                                        <img src="http://www.apache.org/images/asf_logo_wide.png" alt="" />
                </a>
            <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="breadcrumbs">
            
                                   <div class="xleft">
                          <a href="http://www.apache.org/" class="externalLink">Apache</a>
        &gt;
                  <a href="http://hadoop.apache.org/" class="externalLink">Hadoop</a>
        &gt;
                  <a href="index.html">Apache Hadoop 3.3.1</a>
        &gt;
        
        </div>
            <div class="xright">            <a href="http://wiki.apache.org/hadoop" class="externalLink">Wiki</a>
            |
                <a href="https://gitbox.apache.org/repos/asf/hadoop.git" class="externalLink">git</a>
            |
                <a href="http://hadoop.apache.org/" class="externalLink">Apache Hadoop</a>
              
                                   &nbsp;| Last Published: 2021-06-15
              &nbsp;| Version: 3.3.1
            </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="leftColumn">
      <div id="navcolumn">
             
                                                   <h5>General</h5>
                  <ul>
                  <li class="none">
                  <a href="../index.html">Overview</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-common/SingleCluster.html">Single Node Setup</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-common/ClusterSetup.html">Cluster Setup</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-common/CommandsManual.html">Commands Reference</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-common/FileSystemShell.html">FileSystem Shell</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-common/Compatibility.html">Compatibility Specification</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-common/DownstreamDev.html">Downstream Developer's Guide</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-common/AdminCompatibilityGuide.html">Admin Compatibility Guide</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-common/InterfaceClassification.html">Interface Classification</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-common/filesystem/index.html">FileSystem Specification</a>
            </li>
          </ul>
                       <h5>Common</h5>
                  <ul>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-common/CLIMiniCluster.html">CLI Mini Cluster</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-common/FairCallQueue.html">Fair Call Queue</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-common/NativeLibraries.html">Native Libraries</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-common/Superusers.html">Proxy User</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-common/RackAwareness.html">Rack Awareness</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-common/SecureMode.html">Secure Mode</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-common/ServiceLevelAuth.html">Service Level Authorization</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-common/HttpAuthentication.html">HTTP Authentication</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-common/CredentialProviderAPI.html">Credential Provider API</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-kms/index.html">Hadoop KMS</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-common/Tracing.html">Tracing</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-common/UnixShellGuide.html">Unix Shell Guide</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-common/registry/index.html">Registry</a>
            </li>
          </ul>
                       <h5>HDFS</h5>
                  <ul>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-hdfs/HdfsDesign.html">Architecture</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-hdfs/HdfsUserGuide.html">User Guide</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-hdfs/HDFSCommands.html">Commands Reference</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html">NameNode HA With QJM</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithNFS.html">NameNode HA With NFS</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-hdfs/ObserverNameNode.html">Observer NameNode</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-hdfs/Federation.html">Federation</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-hdfs/ViewFs.html">ViewFs</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-hdfs/ViewFsOverloadScheme.html">ViewFsOverloadScheme</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-hdfs/HdfsSnapshots.html">Snapshots</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-hdfs/HdfsEditsViewer.html">Edits Viewer</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-hdfs/HdfsImageViewer.html">Image Viewer</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-hdfs/HdfsPermissionsGuide.html">Permissions and HDFS</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-hdfs/HdfsQuotaAdminGuide.html">Quotas and HDFS</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-hdfs/LibHdfs.html">libhdfs (C API)</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-hdfs/WebHDFS.html">WebHDFS (REST API)</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-hdfs-httpfs/index.html">HttpFS</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-hdfs/ShortCircuitLocalReads.html">Short Circuit Local Reads</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-hdfs/CentralizedCacheManagement.html">Centralized Cache Management</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-hdfs/HdfsNfsGateway.html">NFS Gateway</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-hdfs/HdfsRollingUpgrade.html">Rolling Upgrade</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-hdfs/ExtendedAttributes.html">Extended Attributes</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-hdfs/TransparentEncryption.html">Transparent Encryption</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-hdfs/HdfsMultihoming.html">Multihoming</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-hdfs/ArchivalStorage.html">Storage Policies</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-hdfs/MemoryStorage.html">Memory Storage Support</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-hdfs/SLGUserGuide.html">Synthetic Load Generator</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-hdfs/HDFSErasureCoding.html">Erasure Coding</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-hdfs/HDFSDiskbalancer.html">Disk Balancer</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-hdfs/HdfsUpgradeDomain.html">Upgrade Domain</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-hdfs/HdfsDataNodeAdminGuide.html">DataNode Admin</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-hdfs-rbf/HDFSRouterFederation.html">Router Federation</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-hdfs/HdfsProvidedStorage.html">Provided Storage</a>
            </li>
          </ul>
                       <h5>MapReduce</h5>
                  <ul>
                  <li class="none">
                  <a href="../hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html">Tutorial</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapredCommands.html">Commands Reference</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduce_Compatibility_Hadoop1_Hadoop2.html">Compatibility with 1.x</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-mapreduce-client/hadoop-mapreduce-client-core/EncryptedShuffle.html">Encrypted Shuffle</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-mapreduce-client/hadoop-mapreduce-client-core/PluggableShuffleAndPluggableSort.html">Pluggable Shuffle/Sort</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-mapreduce-client/hadoop-mapreduce-client-core/DistributedCacheDeploy.html">Distributed Cache Deploy</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-mapreduce-client/hadoop-mapreduce-client-core/SharedCacheSupport.html">Support for YARN Shared Cache</a>
            </li>
          </ul>
                       <h5>MapReduce REST APIs</h5>
                  <ul>
                  <li class="none">
                  <a href="../hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapredAppMasterRest.html">MR Application Master</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-mapreduce-client/hadoop-mapreduce-client-hs/HistoryServerRest.html">MR History Server</a>
            </li>
          </ul>
                       <h5>YARN</h5>
                  <ul>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/YARN.html">Architecture</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/YarnCommands.html">Commands Reference</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/CapacityScheduler.html">Capacity Scheduler</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/FairScheduler.html">Fair Scheduler</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/ResourceManagerRestart.html">ResourceManager Restart</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/ResourceManagerHA.html">ResourceManager HA</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/ResourceModel.html">Resource Model</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/NodeLabel.html">Node Labels</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/NodeAttributes.html">Node Attributes</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/WebApplicationProxy.html">Web Application Proxy</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/TimelineServer.html">Timeline Server</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/TimelineServiceV2.html">Timeline Service V.2</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/WritingYarnApplications.html">Writing YARN Applications</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/YarnApplicationSecurity.html">YARN Application Security</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/NodeManager.html">NodeManager</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/DockerContainers.html">Running Applications in Docker Containers</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/RuncContainers.html">Running Applications in runC Containers</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/NodeManagerCgroups.html">Using CGroups</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/SecureContainer.html">Secure Containers</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/ReservationSystem.html">Reservation System</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/GracefulDecommission.html">Graceful Decommission</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/OpportunisticContainers.html">Opportunistic Containers</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/Federation.html">YARN Federation</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/SharedCache.html">Shared Cache</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/UsingGpus.html">Using GPU</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/UsingFPGA.html">Using FPGA</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/PlacementConstraints.html">Placement Constraints</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/YarnUI2.html">YARN UI2</a>
            </li>
          </ul>
                       <h5>YARN REST APIs</h5>
                  <ul>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/WebServicesIntro.html">Introduction</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/ResourceManagerRest.html">Resource Manager</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/NodeManagerRest.html">Node Manager</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/TimelineServer.html#Timeline_Server_REST_API_v1">Timeline Server</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/TimelineServiceV2.html#Timeline_Service_v.2_REST_API">Timeline Service V.2</a>
            </li>
          </ul>
                       <h5>YARN Service</h5>
                  <ul>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/yarn-service/Overview.html">Overview</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/yarn-service/QuickStart.html">QuickStart</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/yarn-service/Concepts.html">Concepts</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/yarn-service/YarnServiceAPI.html">Yarn Service API</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/yarn-service/ServiceDiscovery.html">Service Discovery</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-site/yarn-service/SystemServices.html">System Services</a>
            </li>
          </ul>
                       <h5>Hadoop Compatible File Systems</h5>
                  <ul>
                  <li class="none">
                  <a href="../hadoop-aliyun/tools/hadoop-aliyun/index.html">Aliyun OSS</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-aws/tools/hadoop-aws/index.html">Amazon S3</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-azure/index.html">Azure Blob Storage</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-azure-datalake/index.html">Azure Data Lake Storage</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-openstack/index.html">OpenStack Swift</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-cos/cloud-storage/index.html">Tencent COS</a>
            </li>
          </ul>
                       <h5>Auth</h5>
                  <ul>
                  <li class="none">
                  <a href="../hadoop-auth/index.html">Overview</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-auth/Examples.html">Examples</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-auth/Configuration.html">Configuration</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-auth/BuildingIt.html">Building</a>
            </li>
          </ul>
                       <h5>Tools</h5>
                  <ul>
                  <li class="none">
                  <a href="../hadoop-streaming/HadoopStreaming.html">Hadoop Streaming</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-archives/HadoopArchives.html">Hadoop Archives</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-archive-logs/HadoopArchiveLogs.html">Hadoop Archive Logs</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-distcp/DistCp.html">DistCp</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-gridmix/GridMix.html">GridMix</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-rumen/Rumen.html">Rumen</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-resourceestimator/ResourceEstimator.html">Resource Estimator Service</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-sls/SchedulerLoadSimulator.html">Scheduler Load Simulator</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-common/Benchmarking.html">Hadoop Benchmarking</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-dynamometer/Dynamometer.html">Dynamometer</a>
            </li>
          </ul>
                       <h5>Reference</h5>
                  <ul>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-common/release/">Changelog and Release Notes</a>
            </li>
                  <li class="none">
                  <a href="../api/index.html">Java API docs</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-common/UnixShellAPI.html">Unix Shell API</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-common/Metrics.html">Metrics</a>
            </li>
          </ul>
                       <h5>Configuration</h5>
                  <ul>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-common/core-default.xml">core-default.xml</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-hdfs/hdfs-default.xml">hdfs-default.xml</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-hdfs-rbf/hdfs-rbf-default.xml">hdfs-rbf-default.xml</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml">mapred-default.xml</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-yarn/hadoop-yarn-common/yarn-default.xml">yarn-default.xml</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-kms/kms-default.html">kms-default.xml</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-hdfs-httpfs/httpfs-default.html">httpfs-default.xml</a>
            </li>
                  <li class="none">
                  <a href="../hadoop-project-dist/hadoop-common/DeprecatedProperties.html">Deprecated Properties</a>
            </li>
          </ul>
                                 <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
          <img alt="Built by Maven" src="./images/logos/maven-feather.png"/>
        </a>
                       
                               </div>
    </div>
    <div id="bodyColumn">
      <div id="contentBox">
        <!---
  Licensed 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. See accompanying LICENSE file.
-->
<ul>

<li><a href="#Hadoop_OpenStack_Support:_Swift_Object_Store">Hadoop OpenStack Support: Swift Object Store</a>
<ul>

<li><a href="#Introduction">Introduction</a></li>
<li><a href="#Features">Features</a></li>
<li><a href="#Using_the_Hadoop_Swift_Filesystem_Client">Using the Hadoop Swift Filesystem Client</a>
<ul>

<li><a href="#Concepts:_services_and_containers">Concepts: services and containers</a></li>
<li><a href="#Containers_and_Objects">Containers and Objects</a></li>
<li><a href="#Eventual_Consistency">Eventual Consistency</a></li>
<li><a href="#Non-atomic_directory_operations.">Non-atomic &#x201c;directory&#x201d; operations.</a></li>
</ul>
</li>
<li><a href="#Working_with_Swift_Object_Stores_in_Hadoop">Working with Swift Object Stores in Hadoop</a>
<ul>

<li><a href="#Swift_Filesystem_URIs">Swift Filesystem URIs</a></li>
<li><a href="#Installing">Installing</a></li>
<li><a href="#Configuring">Configuring</a>
<ul>

<li><a href="#Example:_Rackspace_US_in-cluster_access_using_API_key">Example: Rackspace US, in-cluster access using API key</a></li>
<li><a href="#Example:_Rackspace_UK:_remote_access_with_password_authentication">Example: Rackspace UK: remote access with password authentication</a></li>
<li><a href="#Example:_HP_cloud_service_definition">Example: HP cloud service definition</a></li>
</ul>
</li>
<li><a href="#General_Swift_Filesystem_configuration_options">General Swift Filesystem configuration options</a>
<ul>

<li><a href="#Blocksize_fs.swift.blocksize">Blocksize fs.swift.blocksize</a></li>
<li><a href="#Partition_size_fs.swift.partsize">Partition size fs.swift.partsize</a></li>
<li><a href="#Request_size_fs.swift.requestsize">Request size fs.swift.requestsize</a></li>
<li><a href="#Connection_timeout_fs.swift.connect.timeout">Connection timeout fs.swift.connect.timeout</a></li>
<li><a href="#Connection_timeout_fs.swift.socket.timeout">Connection timeout fs.swift.socket.timeout</a></li>
<li><a href="#Connection_Retry_Count_fs.swift.connect.retry.count">Connection Retry Count fs.swift.connect.retry.count</a></li>
<li><a href="#Connection_Throttle_Delay_fs.swift.connect.throttle.delay">Connection Throttle Delay fs.swift.connect.throttle.delay</a></li>
<li><a href="#HTTP_Proxy">HTTP Proxy</a></li>
</ul>
</li>
<li><a href="#Troubleshooting">Troubleshooting</a>
<ul>

<li><a href="#ClassNotFoundException">ClassNotFoundException</a></li>
<li><a href="#Failure_to_Authenticate">Failure to Authenticate</a></li>
<li><a href="#Timeout_connecting_to_the_Swift_Service">Timeout connecting to the Swift Service</a></li>
</ul>
</li>
<li><a href="#Warnings">Warnings</a></li>
<li><a href="#Limits">Limits</a></li>
<li><a href="#Testing_the_hadoop-openstack_module">Testing the hadoop-openstack module</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<h1>Hadoop OpenStack Support: Swift Object Store</h1>
<div class="section">
<h2><a name="Introduction"></a>Introduction</h2>
<p><a class="externalLink" href="http://www.openstack.org/">OpenStack</a> is an open source cloud infrastructure which can be accessed from multiple public IaaS providers, and deployed privately. It offers infrastructure services such as VM hosting (Nova), authentication (Keystone) and storage of binary objects (Swift).</p>
<p>This module enables Apache Hadoop applications -including MapReduce jobs, read and write data to and from instances of the <a class="externalLink" href="http://www.openstack.org/software/openstack-storage/">OpenStack Swift object store</a>.</p>
<p>To make it part of Apache Hadoop&#x2019;s default classpath, simply make sure that HADOOP_OPTIONAL_TOOLS in hadoop-env.sh has &#x2018;hadoop-openstack&#x2019; in the list.</p></div>
<div class="section">
<h2><a name="Features"></a>Features</h2>
<ul>

<li>

<p>Read and write of data stored in a Swift object store</p>
</li>
<li>

<p>Support of a pseudo-hierachical file system (directories, subdirectories and files)</p>
</li>
<li>

<p>Standard filesystem operations: <tt>create</tt>, <tt>delete</tt>, <tt>mkdir</tt>, <tt>ls</tt>, <tt>mv</tt>, <tt>stat</tt>.</p>
</li>
<li>

<p>Can act as a source of data in a MapReduce job, or a sink.</p>
</li>
<li>

<p>Support for multiple OpenStack services, and multiple containers from a single service.</p>
</li>
<li>

<p>Supports in-cluster and remote access to Swift data.</p>
</li>
<li>

<p>Supports OpenStack Keystone authentication with password or token.</p>
</li>
<li>

<p>Released under the Apache Software License</p>
</li>
<li>

<p>Tested against the Hadoop 3.x and 1.x branches, against multiple public OpenStack clusters: Rackspace US, Rackspace UK, HP Cloud.</p>
</li>
<li>

<p>Tested against private OpenStack clusters, including scalability tests of large file uploads.</p>
</li>
</ul></div>
<div class="section">
<h2><a name="Using_the_Hadoop_Swift_Filesystem_Client"></a>Using the Hadoop Swift Filesystem Client</h2>
<div class="section">
<h3><a name="Concepts:_services_and_containers"></a>Concepts: services and containers</h3>
<p>OpenStack swift is an <i>Object Store</i>; also known as a <i>blobstore</i>. It stores arbitrary binary objects by name in a <i>container</i>.</p>
<p>The Hadoop Swift filesystem library adds another concept, the <i>service</i>, which defines which Swift blobstore hosts a container -and how to connect to it.</p></div>
<div class="section">
<h3><a name="Containers_and_Objects"></a>Containers and Objects</h3>
<ul>

<li>

<p>Containers are created by users with accounts on the Swift filestore, and hold <i>objects</i>.</p>
</li>
<li>

<p>Objects can be zero bytes long, or they can contain data.</p>
</li>
<li>

<p>Objects in the container can be up to 5GB; there is a special support for larger files than this, which merges multiple objects in to one.</p>
</li>
<li>

<p>Each object is referenced by it&#x2019;s <i>name</i>; there is no notion of directories.</p>
</li>
<li>

<p>You can use any characters in an object name that can be &#x2018;URL-encoded&#x2019;; the maximum length of a name is 1034 characters -after URL encoding.</p>
</li>
<li>

<p>Names can have <tt>/</tt> characters in them, which are used to create the illusion of a directory structure. For example <tt>dir/dir2/name</tt>. Even though this looks like a directory, <i>it is still just a name</i>. There is no requirement to have any entries in the container called <tt>dir</tt> or <tt>dir/dir2</tt></p>
</li>
<li>

<p>That said. if the container has zero-byte objects that look like directory names above other objects, they can pretend to be directories. Continuing the example, a 0-byte object called <tt>dir</tt> would tell clients that it is a directory while <tt>dir/dir2</tt> or <tt>dir/dir2/name</tt> were present. This creates an illusion of containers holding a filesystem.</p>
</li>
</ul>
<p>Client applications talk to Swift over HTTP or HTTPS, reading, writing and deleting objects using standard HTTP operations (GET, PUT and DELETE, respectively). There is also a COPY operation, that creates a new object in the container, with a new name, containing the old data. There is no rename operation itself, objects need to be copied -then the original entry deleted.</p></div>
<div class="section">
<h3><a name="Eventual_Consistency"></a>Eventual Consistency</h3>
<p>The Swift Filesystem is *eventually consistent*: an operation on an object may not be immediately visible to that client, or other clients. This is a consequence of the goal of the filesystem: to span a set of machines, across multiple datacenters, in such a way that the data can still be available when many of them fail. (In contrast, the Hadoop HDFS filesystem is *immediately consistent*, but it does not span datacenters.)</p>
<p>Eventual consistency can cause surprises for client applications that expect immediate consistency: after an object is deleted or overwritten, the object may still be visible -or the old data still retrievable. The Swift Filesystem client for Apache Hadoop attempts to handle this, in conjunction with the MapReduce engine, but there may be still be occasions when eventual consistency causes surprises.</p></div>
<div class="section">
<h3><a name="Non-atomic_.E2.80.9Cdirectory.E2.80.9D_operations."></a>Non-atomic &#x201c;directory&#x201d; operations.</h3>
<p>Hadoop expects some operations to be atomic, especially <tt>rename()</tt>, which is something the MapReduce layer relies on to commit the output of a job, renaming data from a temp directory to the final path. Because a rename is implemented as a copy of every blob under the directory&#x2019;s path, followed by a delete of the originals, the intermediate state of the operation will be visible to other clients. If two Reducer tasks to rename their temp directory to the final path, both operations may succeed, with the result that output directory contains mixed data. This can happen if MapReduce jobs are being run with <i>speculation</i> enabled and Swift used as the direct output of the MR job (it can also happen against Amazon S3).</p>
<p>Other consequences of the non-atomic operations are:</p>
<ol style="list-style-type: decimal">

<li>

<p>If a program is looking for the presence of the directory before acting on the data -it may start prematurely. This can be avoided by using other mechanisms to co-ordinate the programs, such as the presence of a file that is written <i>after</i> any bulk directory operations.</p>
</li>
<li>

<p>A <tt>rename()</tt> or <tt>delete()</tt> operation may include files added under the source directory tree during the operation, may unintentionally delete it, or delete the 0-byte swift entries that mimic directories and act as parents for the files. Try to avoid doing this.</p>
</li>
</ol>
<p>The best ways to avoid all these problems is not using Swift as the filesystem between MapReduce jobs or other Hadoop workflows. It can act as a source of data, and a final destination, but it doesn&#x2019;t meet all of Hadoop&#x2019;s expectations of what a filesystem is -it&#x2019;s a <i>blobstore</i>.</p></div></div>
<div class="section">
<h2><a name="Working_with_Swift_Object_Stores_in_Hadoop"></a>Working with Swift Object Stores in Hadoop</h2>
<p>Once installed, the Swift FileSystem client can be used by any Hadoop application to read from or write to data stored in a Swift container.</p>
<p>Data stored in Swift can be used as the direct input to a MapReduce job -simply use the <tt>swift:</tt> URL (see below) to declare the source of the data.</p>
<p>This Swift Filesystem client is designed to work with multiple Swift object stores, both public and private. This allows the client to work with different clusters, reading and writing data to and from either of them.</p>
<p>It can also work with the same object stores using multiple login details.</p>
<p>These features are achieved by one basic concept: using a service name in the URI referring to a swift filesystem, and looking up all the connection and login details for that specific service. Different service names can be defined in the Hadoop XML configuration file, so defining different clusters, or providing different login details for the same object store(s).</p>
<div class="section">
<h3><a name="Swift_Filesystem_URIs"></a>Swift Filesystem URIs</h3>
<p>Hadoop uses URIs to refer to files within a filesystem. Some common examples are:</p>

<div>
<div>
<pre class="source">    local://etc/hosts
    hdfs://cluster1/users/example/data/set1
    hdfs://cluster2.example.org:8020/users/example/data/set1
</pre></div></div>

<p>The Swift Filesystem Client adds a new URL type <tt>swift</tt>. In a Swift Filesystem URL, the hostname part of a URL identifies the container and the service to work with; the path the name of the object. Here are some examples</p>

<div>
<div>
<pre class="source">    swift://container.rackspace/my-object.csv
    swift://data.hpcloud/data/set1
    swift://dmitry.privatecloud/out/results
</pre></div></div>

<p>In the last two examples, the paths look like directories: it is not, they are simply the objects named <tt>data/set1</tt> and <tt>out/results</tt> respectively.</p></div>
<div class="section">
<h3><a name="Installing"></a>Installing</h3>
<p>The <tt>hadoop-openstack</tt> JAR must be on the classpath of the Hadoop program trying to talk to the Swift service. If installed in the classpath of the Hadoop MapReduce service, then all programs started by the MR engine will pick up the JAR automatically. This is the easiest way to give all Hadoop jobs access to Swift.</p>
<p>Alternatively, the JAR can be included as one of the JAR files that an application uses. This lets the Hadoop jobs work with a Swift object store even if the Hadoop cluster is not pre-configured for this.</p>
<p>The library also depends upon the Apache HttpComponents library, which must also be on the classpath.</p></div>
<div class="section">
<h3><a name="Configuring"></a>Configuring</h3>
<p>To talk to a swift service, the user must must provide:</p>
<ol style="list-style-type: decimal">

<li>

<p>The URL defining the container and the service.</p>
</li>
<li>

<p>In the cluster/job configuration, the login details of that service.</p>
</li>
</ol>
<p>Multiple service definitions can co-exist in the same configuration file: just use different names for them.</p>
<div class="section">
<h4><a name="Example:_Rackspace_US.2C_in-cluster_access_using_API_key"></a>Example: Rackspace US, in-cluster access using API key</h4>
<p>This service definition is for use in a Hadoop cluster deployed within Rackspace&#x2019;s US infrastructure.</p>

<div>
<div>
<pre class="source">    &lt;property&gt;
      &lt;name&gt;fs.swift.service.rackspace.auth.url&lt;/name&gt;
      &lt;value&gt;https://auth.api.rackspacecloud.com/v2.0/tokens&lt;/value&gt;
      &lt;description&gt;Rackspace US (multiregion)&lt;/description&gt;
    &lt;/property&gt;

    &lt;property&gt;
      &lt;name&gt;fs.swift.service.rackspace.username&lt;/name&gt;
      &lt;value&gt;user4&lt;/value&gt;
    &lt;/property&gt;

    &lt;property&gt;
      &lt;name&gt;fs.swift.service.rackspace.region&lt;/name&gt;
      &lt;value&gt;DFW&lt;/value&gt;
    &lt;/property&gt;

    &lt;property&gt;
      &lt;name&gt;fs.swift.service.rackspace.apikey&lt;/name&gt;
      &lt;value&gt;fe806aa86dfffe2f6ed8&lt;/value&gt;
    &lt;/property&gt;
</pre></div></div>

<p>Here the API key visible in the account settings API keys page is used to log in. No property for public/private access -the default is to use the private endpoint for Swift operations.</p>
<p>This configuration also selects one of the regions, DFW, for its data.</p>
<p>A reference to this service would use the <tt>rackspace</tt> service name:</p>

<div>
<div>
<pre class="source">    swift://hadoop-container.rackspace/
</pre></div></div>
</div>
<div class="section">
<h4><a name="Example:_Rackspace_UK:_remote_access_with_password_authentication"></a>Example: Rackspace UK: remote access with password authentication</h4>
<p>This connects to Rackspace&#x2019;s UK (&#x201c;LON&#x201d;) datacenter.</p>

<div>
<div>
<pre class="source">    &lt;property&gt;
      &lt;name&gt;fs.swift.service.rackspaceuk.auth.url&lt;/name&gt;
      &lt;value&gt;https://lon.identity.api.rackspacecloud.com/v2.0/tokens&lt;/value&gt;
      &lt;description&gt;Rackspace UK&lt;/description&gt;
    &lt;/property&gt;

    &lt;property&gt;
      &lt;name&gt;fs.swift.service.rackspaceuk.username&lt;/name&gt;
      &lt;value&gt;user4&lt;/value&gt;
    &lt;/property&gt;

    &lt;property&gt;
      &lt;name&gt;fs.swift.service.rackspaceuk.password&lt;/name&gt;
      &lt;value&gt;insert-password-here/value&gt;
    &lt;/property&gt;

    &lt;property&gt;
      &lt;name&gt;fs.swift.service.rackspace.public&lt;/name&gt;
      &lt;value&gt;true&lt;/value&gt;
    &lt;/property&gt;
</pre></div></div>

<p>This is a public access point connection, using a password over an API key.</p>
<p>A reference to this service would use the <tt>rackspaceuk</tt> service name:</p>

<div>
<div>
<pre class="source">    swift://hadoop-container.rackspaceuk/
</pre></div></div>

<p>Because the public endpoint is used, if this service definition is used within the London datacenter, all accesses will be billed at the public upload/download rates, <i>irrespective of where the Hadoop cluster is</i>.</p></div>
<div class="section">
<h4><a name="Example:_HP_cloud_service_definition"></a>Example: HP cloud service definition</h4>
<p>Here is an example that connects to the HP Cloud object store.</p>

<div>
<div>
<pre class="source">    &lt;property&gt;
      &lt;name&gt;fs.swift.service.hpcloud.auth.url&lt;/name&gt;
      &lt;value&gt;https://region-a.geo-1.identity.hpcloudsvc.com:35357/v2.0/tokens
      &lt;/value&gt;
      &lt;description&gt;HP Cloud&lt;/description&gt;
    &lt;/property&gt;

    &lt;property&gt;
      &lt;name&gt;fs.swift.service.hpcloud.tenant&lt;/name&gt;
      &lt;value&gt;FE806AA86&lt;/value&gt;
    &lt;/property&gt;

    &lt;property&gt;
      &lt;name&gt;fs.swift.service.hpcloud.username&lt;/name&gt;
      &lt;value&gt;FE806AA86DFFFE2F6ED8&lt;/value&gt;
    &lt;/property&gt;

    &lt;property&gt;
      &lt;name&gt;fs.swift.service.hpcloud.password&lt;/name&gt;
      &lt;value&gt;secret-password-goes-here&lt;/value&gt;
    &lt;/property&gt;

    &lt;property&gt;
      &lt;name&gt;fs.swift.service.hpcloud.public&lt;/name&gt;
      &lt;value&gt;true&lt;/value&gt;
    &lt;/property&gt;
</pre></div></div>

<p>A reference to this service would use the <tt>hpcloud</tt> service name:</p>

<div>
<div>
<pre class="source">    swift://hadoop-container.hpcloud/
</pre></div></div>
</div></div>
<div class="section">
<h3><a name="General_Swift_Filesystem_configuration_options"></a>General Swift Filesystem configuration options</h3>
<p>Some configuration options apply to the Swift client, independent of the specific Swift filesystem chosen.</p>
<div class="section">
<h4><a name="Blocksize_fs.swift.blocksize"></a>Blocksize fs.swift.blocksize</h4>
<p>Swift does not break up files into blocks, except in the special case of files over 5GB in length. Accordingly, there isn&#x2019;t a notion of a &#x201c;block size&#x201d; to define where the data is kept.</p>
<p>Hadoop&#x2019;s MapReduce layer depends on files declaring their block size, so that it knows how to partition work. Too small a blocksize means that many mappers work on small pieces of data; too large a block size means that only a few mappers get started.</p>
<p>The block size value reported by Swift, therefore, controls the basic workload partioning of the MapReduce engine -and can be an important parameter to tune for performance of the cluster.</p>
<p>The property has a unit of kilobytes; the default value is <tt>32*1024</tt>: 32 MB</p>

<div>
<div>
<pre class="source">    &lt;property&gt;
      &lt;name&gt;fs.swift.blocksize&lt;/name&gt;
      &lt;value&gt;32768&lt;/value&gt;
    &lt;/property&gt;
</pre></div></div>

<p>This blocksize has no influence on how files are stored in Swift; it only controls what the reported size of blocks are - a value used in Hadoop MapReduce to divide work.</p>
<p>Note that the MapReduce engine&#x2019;s split logic can be tuned independently by setting the <tt>mapred.min.split.size</tt> and <tt>mapred.max.split.size</tt> properties, which can be done in specific job configurations.</p>

<div>
<div>
<pre class="source">    &lt;property&gt;
      &lt;name&gt;mapred.min.split.size&lt;/name&gt;
      &lt;value&gt;524288&lt;/value&gt;
    &lt;/property&gt;

    &lt;property&gt;
      &lt;name&gt;mapred.max.split.size&lt;/name&gt;
      &lt;value&gt;1048576&lt;/value&gt;
    &lt;/property&gt;
</pre></div></div>

<p>In an Apache Pig script, these properties would be set as:</p>

<div>
<div>
<pre class="source">    mapred.min.split.size 524288
    mapred.max.split.size 1048576
</pre></div></div>
</div>
<div class="section">
<h4><a name="Partition_size_fs.swift.partsize"></a>Partition size fs.swift.partsize</h4>
<p>The Swift filesystem client breaks very large files into partitioned files, uploading each as it progresses, and writing any remaning data and an XML manifest when a partitioned file is closed.</p>
<p>The partition size defaults to 4608 MB; 4.5GB, the maximum filesize that Swift can support.</p>
<p>It is possible to set a smaller partition size, in the <tt>fs.swift.partsize</tt> option. This takes a value in KB.</p>

<div>
<div>
<pre class="source">    &lt;property&gt;
      &lt;name&gt;fs.swift.partsize&lt;/name&gt;
      &lt;value&gt;1024&lt;/value&gt;
      &lt;description&gt;upload every MB&lt;/description&gt;
    &lt;/property&gt;
</pre></div></div>

<p>When should this value be changed from its default?</p>
<p>While there is no need to ever change it for basic operation of the Swift filesystem client, it can be tuned</p>
<ul>

<li>

<p>If a Swift filesystem is location aware, then breaking a file up into smaller partitions scatters the data round the cluster. For best performance, the property <tt>fs.swift.blocksize</tt> should be set to a smaller value than the partition size of files.</p>
</li>
<li>

<p>When writing to an unpartitioned file, the entire write is done in the <tt>close()</tt> operation. When a file is partitioned, the outstanding data to be written whenever the outstanding amount of data is greater than the partition size. This means that data will be written more incrementally</p>
</li>
</ul></div>
<div class="section">
<h4><a name="Request_size_fs.swift.requestsize"></a>Request size fs.swift.requestsize</h4>
<p>The Swift filesystem client reads files in HTTP GET operations, asking for a block of data at a time.</p>
<p>The default value is 64KB. A larger value may be more efficient over faster networks, as it reduces the overhead of setting up the HTTP operation.</p>
<p>However, if the file is read with many random accesses, requests for data will be made from different parts of the file -discarding some of the previously requested data. The benefits of larger request sizes may be wasted.</p>
<p>The property <tt>fs.swift.requestsize</tt> sets the request size in KB.</p>

<div>
<div>
<pre class="source">    &lt;property&gt;
      &lt;name&gt;fs.swift.requestsize&lt;/name&gt;
      &lt;value&gt;128&lt;/value&gt;
    &lt;/property&gt;
</pre></div></div>
</div>
<div class="section">
<h4><a name="Connection_timeout_fs.swift.connect.timeout"></a>Connection timeout fs.swift.connect.timeout</h4>
<p>This sets the timeout in milliseconds to connect to a Swift service.</p>

<div>
<div>
<pre class="source">    &lt;property&gt;
      &lt;name&gt;fs.swift.connect.timeout&lt;/name&gt;
      &lt;value&gt;15000&lt;/value&gt;
    &lt;/property&gt;
</pre></div></div>

<p>A shorter timeout means that connection failures are raised faster -but may trigger more false alarms. A longer timeout is more resilient to network problems -and may be needed when talking to remote filesystems.</p></div>
<div class="section">
<h4><a name="Connection_timeout_fs.swift.socket.timeout"></a>Connection timeout fs.swift.socket.timeout</h4>
<p>This sets the timeout in milliseconds to wait for data from a connected socket.</p>

<div>
<div>
<pre class="source">    &lt;property&gt;
      &lt;name&gt;fs.swift.socket.timeout&lt;/name&gt;
      &lt;value&gt;60000&lt;/value&gt;
    &lt;/property&gt;
</pre></div></div>

<p>A shorter timeout means that connection failures are raised faster -but may trigger more false alarms. A longer timeout is more resilient to network problems -and may be needed when talking to remote filesystems.</p></div>
<div class="section">
<h4><a name="Connection_Retry_Count_fs.swift.connect.retry.count"></a>Connection Retry Count fs.swift.connect.retry.count</h4>
<p>This sets the number of times to try to connect to a service whenever an HTTP request is made.</p>

<div>
<div>
<pre class="source">    &lt;property&gt;
      &lt;name&gt;fs.swift.connect.retry.count&lt;/name&gt;
      &lt;value&gt;3&lt;/value&gt;
    &lt;/property&gt;
</pre></div></div>

<p>The more retries, the more resilient it is to transient outages -and the less rapid it is at detecting and reporting server connectivity problems.</p></div>
<div class="section">
<h4><a name="Connection_Throttle_Delay_fs.swift.connect.throttle.delay"></a>Connection Throttle Delay fs.swift.connect.throttle.delay</h4>
<p>This property adds a delay between bulk file copy and delete operations, to prevent requests being throttled or blocked by the remote service</p>

<div>
<div>
<pre class="source">    &lt;property&gt;
      &lt;name&gt;fs.swift.connect.throttle.delay&lt;/name&gt;
      &lt;value&gt;0&lt;/value&gt;
    &lt;/property&gt;
</pre></div></div>

<p>It is measured in milliseconds; &#x201c;0&#x201d; means do not add any delay.</p>
<p>Throttling is enabled on the public endpoints of some Swift services. If <tt>rename()</tt> or <tt>delete()</tt> operations fail with <tt>SwiftThrottledRequestException</tt> exceptions, try setting this property.</p></div>
<div class="section">
<h4><a name="HTTP_Proxy"></a>HTTP Proxy</h4>
<p>If the client can only access the Swift filesystem via a web proxy server, the client configuration must specify the proxy via the <tt>fs.swift.connect.proxy.host</tt> and <tt>fs.swift.connect.proxy.port</tt> properties.</p>

<div>
<div>
<pre class="source">    &lt;property&gt;
      &lt;name&gt;fs.swift.proxy.host&lt;/name&gt;
      &lt;value&gt;web-proxy&lt;/value&gt;
    &lt;/property&gt;

    &lt;property&gt;
      &lt;name&gt;fs.swift.proxy.port&lt;/name&gt;
      &lt;value&gt;8088&lt;/value&gt;
    &lt;/property&gt;
</pre></div></div>

<p>If the host is declared, the proxy port must be set to a valid integer value.</p></div></div>
<div class="section">
<h3><a name="Troubleshooting"></a>Troubleshooting</h3>
<div class="section">
<h4><a name="ClassNotFoundException"></a>ClassNotFoundException</h4>
<p>The <tt>hadoop-openstack</tt> JAR -or any dependencies- may not be on your classpath.</p>
<p>Make sure that the: * JAR is installed on the servers in the cluster. * &#x2018;hadoop-openstack&#x2019; is on the HADOOP_OPTIONAL_TOOLS entry in hadoop-env.sh or that the job submission process uploads the JAR file to the distributed cache.</p></div>
<div class="section">
<h4><a name="Failure_to_Authenticate"></a>Failure to Authenticate</h4>
<p>A <tt>SwiftAuthenticationFailedException</tt> is thrown when the client cannot authenticate with the OpenStack keystone server. This could be because the URL in the service definition is wrong, or because the supplied credentials are invalid.</p>
<ol style="list-style-type: decimal">

<li>

<p>Check the authentication URL through <tt>curl</tt> or your browser</p>
</li>
<li>

<p>Use a Swift client such as CyberDuck to validate your credentials</p>
</li>
<li>

<p>If you have included a tenant ID, try leaving it out. Similarly, try adding it if you had not included it.</p>
</li>
<li>

<p>Try switching from API key authentication to password-based authentication, by setting the password.</p>
</li>
<li>

<p>Change your credentials. As with Amazon AWS clients, some credentials don&#x2019;t seem to like going over the network.</p>
</li>
</ol></div>
<div class="section">
<h4><a name="Timeout_connecting_to_the_Swift_Service"></a>Timeout connecting to the Swift Service</h4>
<p>This happens if the client application is running outside an OpenStack cluster, where it does not have access to the private hostname/IP address for filesystem operations. Set the <tt>public</tt> flag to true -but remember to set it to false for use in-cluster.</p></div></div>
<div class="section">
<h3><a name="Warnings"></a>Warnings</h3>
<ol style="list-style-type: decimal">

<li>

<p>Do not share your login details with anyone, which means do not log the details, or check the XML configuration files into any revision control system to which you do not have exclusive access.</p>
</li>
<li>

<p>Similarly, do not use your real account details in any documentation *or any bug reports submitted online*</p>
</li>
<li>

<p>Prefer the apikey authentication over passwords as it is easier to revoke a key -and some service providers allow you to set an automatic expiry date on a key when issued.</p>
</li>
<li>

<p>Do not use the public service endpoint from within a public OpenStack cluster, as it will run up large bills.</p>
</li>
<li>

<p>Remember: it&#x2019;s not a real filesystem or hierarchical directory structure. Some operations (directory rename and delete) take time and are not atomic or isolated from other operations taking place.</p>
</li>
<li>

<p>Append is not supported.</p>
</li>
<li>

<p>Unix-style permissions are not supported. All accounts with write access to a repository have unlimited access; the same goes for those with read access.</p>
</li>
<li>

<p>In the public clouds, do not make the containers public unless you are happy with anyone reading your data, and are prepared to pay the costs of their downloads.</p>
</li>
</ol></div>
<div class="section">
<h3><a name="Limits"></a>Limits</h3>
<ul>

<li>

<p>Maximum length of an object path: 1024 characters</p>
</li>
<li>

<p>Maximum size of a binary object: no absolute limit. Files &gt; 5GB are partitioned into separate files in the native filesystem, and merged during retrieval. <i>Warning:</i> the partitioned/large file support is the most complex part of the Hadoop/Swift FS integration, and, along with authentication, the most troublesome to support.</p>
</li>
</ul></div>
<div class="section">
<h3><a name="Testing_the_hadoop-openstack_module"></a>Testing the hadoop-openstack module</h3>
<p>The <tt>hadoop-openstack</tt> can be remotely tested against any public or private cloud infrastructure which supports the OpenStack Keystone authentication mechanism. It can also be tested against private OpenStack clusters. OpenStack Development teams are strongly encouraged to test the Hadoop swift filesystem client against any version of Swift that they are developing or deploying, to stress their cluster and to identify bugs early.</p>
<p>The module comes with a large suite of JUnit tests -tests that are only executed if the source tree includes credentials to test against a specific cluster.</p>
<p>After checking out the Hadoop source tree, create the file:</p>

<div>
<div>
<pre class="source">  hadoop-tools/hadoop-openstack/src/test/resources/auth-keys.xml
</pre></div></div>

<p>Into this file, insert the credentials needed to bond to the test filesystem, as decribed above.</p>
<p>Next set the property <tt>test.fs.swift.name</tt> to the URL of a swift container to test against. The tests expect exclusive access to this container -do not keep any other data on it, or expect it to be preserved.</p>

<div>
<div>
<pre class="source">    &lt;property&gt;
      &lt;name&gt;test.fs.swift.name&lt;/name&gt;
      &lt;value&gt;swift://test.myswift/&lt;/value&gt;
    &lt;/property&gt;
</pre></div></div>

<p>In the base hadoop directory, run:</p>

<div>
<div>
<pre class="source">   mvn clean install -DskipTests
</pre></div></div>

<p>This builds a set of Hadoop JARs consistent with the <tt>hadoop-openstack</tt> module that is about to be tested.</p>
<p>In the <tt>hadoop-tools/hadoop-openstack</tt> directory run</p>

<div>
<div>
<pre class="source">   mvn test -Dtest=TestSwiftRestClient
</pre></div></div>

<p>This runs some simple tests which include authenticating against the remote swift service. If these tests fail, so will all the rest. If it does fail: check your authentication.</p>
<p>Once this test succeeds, you can run the full test suite</p>

<div>
<div>
<pre class="source">    mvn test
</pre></div></div>

<p>Be advised that these tests can take an hour or more, especially against a remote Swift service -or one that throttles bulk operations.</p>
<p>Once the <tt>auth-keys.xml</tt> file is in place, the <tt>mvn test</tt> runs from the Hadoop source base directory will automatically run these OpenStack tests While this ensures that no regressions have occurred, it can also add significant time to test runs, and may run up bills, depending on who is providingthe Swift storage service. We recommend having a separate source tree set up purely for the Swift tests, and running it manually or by the CI tooling at a lower frequency than normal test runs.</p>
<p>Finally: Apache Hadoop is an open source project. Contributions of code -including more tests- are very welcome.</p></div></div>
      </div>
    </div>
    <div class="clear">
      <hr/>
    </div>
    <div id="footer">
      <div class="xright">
        &#169;            2008-2021
              Apache Software Foundation
            
                          - <a href="http://maven.apache.org/privacy-policy.html">Privacy Policy</a>.
        Apache Maven, Maven, Apache, the Apache feather logo, and the Apache Maven project logos are trademarks of The Apache Software Foundation.
      </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
  </body>
</html>
