

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    
    <meta name="description" content="Hadoop Ozone Documentation">

    <title>Documentation for Apache Hadoop Ozone</title>

    
    <link href="css/bootstrap.min.css" rel="stylesheet">

    
    <link href="css/ozonedoc.css" rel="stylesheet">

  </head>


  <body>


<nav class="navbar navbar-inverse navbar-fixed-top">
  <div class="container-fluid">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#sidebar" aria-expanded="false" aria-controls="navbar">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand hidden-xs" href="#">Apache Hadoop Ozone/HDDS documentation</a>
      <a class="navbar-brand visible-xs-inline" href="#">Hadoop Ozone</a>
    </div>
    <div id="navbar" class="navbar-collapse collapse">
      <ul class="nav navbar-nav navbar-right">
        <li><a href="https://github.com/apache/hadoop">Source</a></li>
        <li><a href="https://hadoop.apache.org">Apache Hadoop</a></li>
        <li><a href="https://apache.org">ASF</a></li>
      </ul>
    </div>
  </div>
</nav>


    <div class="container-fluid">
      <div class="row">
        
<div class="col-sm-3 col-md-2 sidebar" id="sidebar">
  <img src="ozone-logo.png" style="max-width: 100%;"/>
  <ul class="nav nav-sidebar">
    
    
        
            <li class="">
                
                   <a href="index.html">
                

                    
                    <span>Ozone Overview</span>
                </a>
            </li>
        
    
        
            <li class="">
                <a href="runningviadocker.html">
                    
                    <span>Getting Started</span>
                </a>
                <ul class="nav">
                    
                        <li class="">
                           
                           <a href="./runningviadocker.html">Alpha Cluster</a>
                           
                        </li>
                    
                        <li class="">
                           
                           <a href="./settings.html">Configuration</a>
                           
                        </li>
                    
                        <li class="">
                           
                           <a href="./realcluster.html">Starting an Ozone Cluster</a>
                           
                        </li>
                    
                        <li class="active">
                           
                           <a href="./ozonefs.html">Ozone File System</a>
                           
                        </li>
                    
                        <li class="">
                           
                           <a href="./runningwithhdfs.html">Running concurrently with HDFS</a>
                           
                        </li>
                    
                        <li class="">
                           
                           <a href="./buildingsources.html">Building from Sources</a>
                           
                        </li>
                    
                </ul>
            </li>
        
    
        
            <li class="">
                <a href="commandshell.html">
                    
                    <span>Client</span>
                </a>
                <ul class="nav">
                    
                        <li class="">
                           
                               <a href="./commandshell.html">
                                 
                                 <span>Ozone CLI</span>
                               </a>
                               <ul class="nav">
                               
                                  <li class="">
                                     <a href="./volumecommands.html">Volume Commands</a>
                                  </li>
                               
                                  <li class="">
                                     <a href="./bucketcommands.html">Bucket Commands</a>
                                  </li>
                               
                                  <li class="">
                                     <a href="./keycommands.html">Key Commands</a>
                                  </li>
                               
                               </ul>
                           
                        </li>
                    
                        <li class="">
                           
                           <a href="./s3.html">S3</a>
                           
                        </li>
                    
                        <li class="">
                           
                           <a href="./javaapi.html">Java API</a>
                           
                        </li>
                    
                </ul>
            </li>
        
    
        
            <li class="">
                <a href="dozone.html">
                    
                    <span>Tools</span>
                </a>
                <ul class="nav">
                    
                        <li class="">
                           
                           <a href="./auditparser.html">Audit Parser</a>
                           
                        </li>
                    
                        <li class="">
                           
                           <a href="./dozone.html">Dozone &amp; Dev Tools</a>
                           
                        </li>
                    
                        <li class="">
                           
                           <a href="./freon.html">Freon</a>
                           
                        </li>
                    
                        <li class="">
                           
                           <a href="./genconf.html">Generate Configurations</a>
                           
                        </li>
                    
                        <li class="">
                           
                           <a href="./scmcli.html">SCMCLI</a>
                           
                        </li>
                    
                </ul>
            </li>
        
    
        
            <li class="">
                <a href="prometheus.html">
                    
                    <span>Recipes</span>
                </a>
                <ul class="nav">
                    
                        <li class="">
                           
                           <a href="./prometheus.html">Monitoring with Prometheus</a>
                           
                        </li>
                    
                        <li class="">
                           
                           <a href="./sparkozonefsk8s.html">Spark in Kubernetes with OzoneFS</a>
                           
                        </li>
                    
                </ul>
            </li>
        
    
        
            <li class="">
                <a href="./concepts.html">
                    
                    <span>Architecture</span>
                </a>
                <ul class="nav">
                    
                        <li class="">
                           
                           <a href="./hdds.html">Hadoop Distributed Data Store</a>
                           
                        </li>
                    
                        <li class="">
                           
                           <a href="./ozonemanager.html">Ozone Manager</a>
                           
                        </li>
                    
                        <li class="">
                           
                           <a href="./ozonesecurityarchitecture.html">Ozone Security Overview</a>
                           
                        </li>
                    
                        <li class="">
                           
                           <a href="./setupsecureozone.html">Setup secure ozone cluster</a>
                           
                        </li>
                    
                </ul>
            </li>
        
    
    <li class="visible-xs"><a href="#">References</a>
    <ul class="nav">
        <li><a href="https://github.com/apache/hadoop"><span class="glyphicon glyphicon-new-window" aria-hidden="true"></span> Source</a></li>
        <li><a href="https://hadoop.apache.org"><span class="glyphicon glyphicon-new-window" aria-hidden="true"></span> Apache Hadoop</a></li>
        <li><a href="https://apache.org"><span class="glyphicon glyphicon-new-window" aria-hidden="true"></span> ASF</a></li>
    </ul></li>
  </ul>

</div>

        <div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
            <h1>Ozone File System</h1>
            <div class="col-md-9">
              

<!---
  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.
-->

<p>There are many Hadoop compatible files systems under Hadoop. Hadoop compatible file systems ensures that storage backends like Ozone can easily be integrated into Hadoop eco-system.</p>

<h2 id="setting-up-the-ozone-file-system">Setting up the Ozone file system</h2>

<p>To create an ozone file system, we have to choose a bucket where the file system would live. This bucket will be used as the backend store for OzoneFileSystem. All the files and directories will be stored as keys in this bucket.</p>

<p>Please run the following commands to create a volume and bucket, if you don&rsquo;t have them already.</p>

<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">ozone sh volume create /volume
ozone sh bucket create /volume/bucket</code></pre></div>

<p>Once this is created, please make sure that bucket exists via the listVolume or listBucket commands.</p>

<p>Please add the following entry to the core-site.xml.</p>

<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-xml" data-lang="xml"><span style="color:#f92672">&lt;property&gt;</span>
  <span style="color:#f92672">&lt;name&gt;</span>fs.o3fs.impl<span style="color:#f92672">&lt;/name&gt;</span>
  <span style="color:#f92672">&lt;value&gt;</span>org.apache.hadoop.fs.ozone.OzoneFileSystem<span style="color:#f92672">&lt;/value&gt;</span>
<span style="color:#f92672">&lt;/property&gt;</span>
<span style="color:#f92672">&lt;property&gt;</span>
  <span style="color:#f92672">&lt;name&gt;</span>fs.defaultFS<span style="color:#f92672">&lt;/name&gt;</span>
  <span style="color:#f92672">&lt;value&gt;</span>o3fs://bucket.volume<span style="color:#f92672">&lt;/value&gt;</span>
<span style="color:#f92672">&lt;/property&gt;</span></code></pre></div>

<p>This will make this bucket to be the default file system for HDFS dfs commands and register the o3fs file system type.</p>

<p>You also need to add the ozone-filesystem.jar file to the classpath:</p>

<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">export HADOOP_CLASSPATH<span style="color:#f92672">=</span>/opt/ozone/share/ozonefs/lib/hadoop-ozone-filesystem-lib-current*.jar:$HADOOP_CLASSPATH</code></pre></div>

<p>Once the default Filesystem has been setup, users can run commands like ls, put, mkdir, etc.
For example,</p>

<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">hdfs dfs -ls /</code></pre></div>

<p>or</p>

<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">hdfs dfs -mkdir /users</code></pre></div>

<p>Or put command etc. In other words, all programs like Hive, Spark, and Distcp will work against this file system.
Please note that any keys created/deleted in the bucket using methods apart from OzoneFileSystem will show up as directories and files in the Ozone File System.</p>

<p>Note: Bucket and volume names are not allowed to have a period in them.
Moreover, the filesystem URI can take a fully qualified form with the OM host and port as a part of the path following the volume name.
For example,</p>

<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">hdfs dfs -ls o3fs://bucket.volume.om-host.example.com:5678/key</code></pre></div>

<h2 id="supporting-older-hadoop-version-legacy-jar-basicozonefilesystem">Supporting older Hadoop version (Legacy jar, BasicOzoneFilesystem)</h2>

<p>There are two ozonefs files, both of them include all the dependencies:</p>

<ul>
<li>share/ozone/lib/hadoop-ozone-filesystem-lib-current-VERSION.jar</li>
<li>share/ozone/lib/hadoop-ozone-filesystem-lib-legacy-VERSION.jar</li>
</ul>

<p>The first one contains all the required dependency to use ozonefs with a
 compatible hadoop version (hadoop 3.2).</p>

<p>The second one contains all the dependency in an internal, separated directory,
 and a special class loader is used to load all the classes from the location.</p>

<p>With this method the hadoop-ozone-filesystem-lib-legacy.jar can be used from
 any older hadoop version (eg. hadoop 3.1, hadoop 2.7 or spark+hadoop 2.7)</p>

<p>Similar to the dependency jar, there are two OzoneFileSystem implementation.</p>

<p>For hadoop 3.0 and newer, you can use <code>org.apache.hadoop.fs.ozone.OzoneFileSystem</code>
 which is a full implementation of the Hadoop compatible File System API.</p>

<p>For Hadoop 2.x you should use the Basic version: <code>org.apache.hadoop.fs.ozone.BasicOzoneFileSystem</code>.</p>

<p>This is the same implementation but doesn&rsquo;t include the features/dependencies which are added with
 Hadoop 3.0. (eg. FS statistics, encryption zones).</p>

<h3 id="summary">Summary</h3>

<p>The following table summarize which jar files and implementation should be used:</p>

<table>
<thead>
<tr>
<th>Hadoop version</th>
<th>Required jar</th>
<th>OzoneFileSystem implementation</th>
</tr>
</thead>

<tbody>
<tr>
<td>3.2</td>
<td>filesystem-lib-current</td>
<td>org.apache.hadoop.fs.ozone.OzoneFileSystem</td>
</tr>

<tr>
<td>3.1</td>
<td>filesystem-lib-legacy</td>
<td>org.apache.hadoop.fs.ozone.OzoneFileSystem</td>
</tr>

<tr>
<td>2.9</td>
<td>filesystem-lib-legacy</td>
<td>org.apache.hadoop.fs.ozone.BasicOzoneFileSystem</td>
</tr>

<tr>
<td>2.7</td>
<td>filesystem-lib-legacy</td>
<td>org.apache.hadoop.fs.ozone.BasicOzoneFileSystem</td>
</tr>
</tbody>
</table>

<p>With this method the hadoop-ozone-filesystem-lib-legacy.jar can be used from
 any older hadoop version (eg. hadoop 2.7 or spark+hadoop 2.7)</p>

            </div>
        </div>
      </div>
    </div>




<script src="./js/jquery.min.js"></script>
<script src="./js/ozonedoc.js"></script>
<script src="./js/bootstrap.min.js"></script>


  </body>
</html>
