

<!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-ozone">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="active">
                
                   <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="./gdpr.html">
                

                    
                    <span>GDPR</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="">
                
                   <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">

                

<div class="pull-right">
    
    
    
    
    <a href="./zh/start.html"><span class="label label-success">中文</span></a>
    
    
</div>

                <h1>Getting Started</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">Installing Ozone </h3>
        <p class="lead">
            
There are many ways to install and run Ozone. Starting from simple docker
deployments on
local nodes, to full scale multi-node cluster deployment on
Kubernetes or bare-metal.

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

<section class="row cardgroup">

<span class="label label-warning label-">Easy Start</span>

<h2>Running Ozone from Docker Hub</h2>

You can try out Ozone using docker hub without downloading the official release. This makes it easy to explore Ozone.
<br />
  


<div class="col-sm-6">

    <div class="media">
        
        <div class="media-left media-top">
            <img src="start/docker.png"></img>
        </div>
        
        <div class="media-body">
            <h4 class="media-title">
                
                Starting ozone inside a single container
            </h4>
            
  The simplest and easiest way to start an ozone cluster
      to explore what it can do is to start ozone via docker.
  
            
            <p><a href="./start/startfromdockerhub.html" class=" btn btn-primary btn-lg">Ozone In Docker</a></p>
            
        </div>
    </div>
</div>


</section>

<section class="row cardgroup">

<span class="label label-success">Recommended</span>


<h2>Running Ozone from an Official Release</h2>

 Apache Ozone can also be run from the official release packages. Along with the official source releases, we also release a set of convenience binary packages. It is easy to run these binaries in different configurations.
<br />
  


<div class="col-sm-6">

    <div class="media">
        
        <div class="media-left media-top">
            <img src="start/hadoop.png"></img>
        </div>
        
        <div class="media-body">
            <h4 class="media-title">
                
                Ozone on a physical cluster
            </h4>
            
Ozone is designed to work concurrently with HDFS. The physical cluster instructions explain each component of Ozone and how to deploy with maximum control.
  
            
            <p><a href="./start/onprem.html" class=" btn btn-primary btn-lg">On-Prem Ozone Cluster</a></p>
            
        </div>
    </div>
</div>


  


<div class="col-sm-6">

    <div class="media">
        
        <div class="media-left media-top">
            <img src="start/k8s.png"></img>
        </div>
        
        <div class="media-body">
            <h4 class="media-title">
                
                Ozone on K8s
            </h4>
            
Ozone is designed to work well under Kubernetes. These are instructions to deploy Ozone on K8s. Ozone provides a replicated storage solution for K8s based apps.
  
            
            <p><a href="./start/kubernetes.html" class=" btn btn-primary btn-lg">Kubernetes</a></p>
            
        </div>
    </div>
</div>


  


<div class="col-sm-6">

    <div class="media">
        
        <div class="media-left media-top">
            <img src="start/minikube.png"></img>
        </div>
        
        <div class="media-body">
            <h4 class="media-title">
                
                Ozone using MiniKube
            </h4>
            
Ozone comes with a standard set of K8s resources. You can deploy them to MiniKube and experiment with the K8s based deployments.
  
            
            <p><a href="./start/minikube.html" class=" btn btn-primary btn-lg">Minikube cluster</a></p>
            
        </div>
    </div>
</div>


  


<div class="col-sm-6">

    <div class="media">
        
        <div class="media-left media-top">
            <img src="start/docker.png"></img>
        </div>
        
        <div class="media-body">
            <h4 class="media-title">
                
                Ozone cluster in Local Node
            </h4>
            
 We also ship standard docker files with official release. These are part of official release and not depend upon Docker Hub.
  
            
            <p><a href="./start/runningviadocker.html" class=" btn btn-primary btn-lg">docker-compose</a></p>
            
        </div>
    </div>
</div>


</section>

<section class="row cardgroup">

<span class="label label-danger">Hadoop Ninja</span>

<h2>Building From Sources </h2>

 Instructions to build Ozone from source to create deployment packages.

  


<div class="col-sm-6">

    <div class="media">
        
        <div class="media-left media-top">
            <img src="start/hadoop.png"></img>
        </div>
        
        <div class="media-body">
            <h4 class="media-title">
                
                Building From Sources
            </h4>
            
If you are a Hadoop ninja, and wise in the ways of Apache, you already know that a real Apache release is a source release. We believe that even ninjas need help at times.
  
            
            <p><a href="./start/fromsource.html" class=" btn btn-primary btn-lg">Build ozone from source</a></p>
            
        </div>
    </div>
</div>


</section>

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