

<!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 href="#" class="navbar-left" style="height: 50px; padding: 5px 5px 5px 0;">
        <img src="./ozone-logo-small.png" width="40"/>
      </a>
      <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-2 col-md-2 sidebar" id="sidebar">
  <ul class="nav nav-sidebar">
    
    
        
            <li class="">
                
                   <a href="./index.html">
                

                    
                    <span>Overview</span>
                </a>
            </li>
        
    
        
            <li class="">
                
                   <a href="./start.html">
                

                    
                    <span>Getting Started</span>
                </a>
            </li>
        
    
        
            <li class="">
                
                   <a href="./shell.html">
                

                    
                    <span>Command Line Interface</span>
                </a>
            </li>
        
    
        
            <li class="">
                
                   <a href="./interface.html">
                

                    
                    <span>Programming Interfaces</span>
                </a>
            </li>
        
    
        
            <li class="">
                
                   <a href="./security.html">
                

                    
                    <span>Security</span>
                </a>
            </li>
        
    
        
            <li class="">
                
                   <a href="./concept.html">
                

                    
                    <span>Concepts</span>
                </a>
            </li>
        
    
        
            <li class="active">
                
                   <a href="./beyond.html">
                

                    
                    <span>Beyond Basics</span>
                </a>
            </li>
        
    
        
            <li class="">
                
                   <a href="./tools.html">
                

                    
                    <span>Tools</span>
                </a>
            </li>
        
    
        
            <li class="">
                
                   <a href="./recipe.html">
                

                    
                    <span>Recipes</span>
                </a>
            </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-10 col-sm-offset-2 col-md-10 col-md-offset-2 main">
            <div class="col-md-9">
                <h1>Beyond Basics</h1>
            </div>
            <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.
-->



<div class="jumbotron jumbotron-fluid">
    <div class="container">
        <h3 class="display-4">Beyond Basics </h3>
        <p class="lead">
            
  Beyond Basics pages go into custom configurations of Ozone, including how
  to run Ozone concurrently with an existing HDFS cluster. These pages also
  take deep into how to run profilers and leverage tracing support built into
  Ozone.

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

                
                
                

                
                
                <div class="row">
                    
                    <div class="col-sm-6">
                        <div class="card">
                            <div class="card-body">
                                <h2 class="card-title">
                                    
                                    Runing with HDFS
                                </h2>
                                <p class="card-text">Ozone is designed to work with HDFS. So it is easy to deploy ozone in an existing HDFS cluster.
The container manager part of Ozone can run inside DataNodes as a pluggable module or as a standalone component. This document describe how can it be started as a HDFS datanode plugin.
To activate ozone you should define the service plugin implementation class.
Important: It should be added to the hdfs-site.xml as the plugin should be activated as part of the normal HDFS Datanode bootstrap.</p>
                                <a href="./beyond/runningwithhdfs.html"
                                   class=" btn btn-primary btn-lg">Runing with HDFS</a>
                            </div>
                        </div>
                    </div>

                    
                

                
                
                    <div class="col-sm-6">
                        <div class="card">
                            <div class="card-body">
                                <h2 class="card-title">
                                    
                                    Ozone Containers
                                </h2>
                                <p class="card-text">Docker heavily is used at the ozone development with three principal use-cases:
 dev:  We use docker to start local pseudo-clusters (docker provides unified environment, but no image creation is required)  test:  We create docker images from the dev branches to test ozone in kubernetes and other container orchestrator system We provide apache/ozone images for each release to make it easier for evaluation of Ozone. These images are not created for production usage.</p>
                                <a href="./beyond/containers.html"
                                   class=" btn btn-primary btn-lg">Ozone Containers</a>
                            </div>
                        </div>
                    </div>

                    
                        </div>
                    
                

                
                
                <div class="row">
                    
                    <div class="col-sm-6">
                        <div class="card">
                            <div class="card-body">
                                <h2 class="card-title">
                                    
                                    Docker Cheat Sheet
                                </h2>
                                <p class="card-text">In the compose directory of the ozone distribution there are multiple pseudo-cluster setup which can be used to run Ozone in different way (for example: secure cluster, with tracing enabled, with prometheus etc.).
If the usage is not document in a specific directory the default usage is the following:
cd compose/ozone docker-compose up -d The data of the container is ephemeral and deleted together with the docker volumes.
docker-compose down Useful Docker &amp; Ozone Commands If you make any modifications to ozone, the simplest way to test it is to run freon and unit tests.</p>
                                <a href="./beyond/dockercheatsheet.html"
                                   class=" btn btn-primary btn-lg">Docker Cheat Sheet</a>
                            </div>
                        </div>
                    </div>

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




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


</body>

</html>