
<!DOCTYPE html>

<html>

<head>
	<meta name="generator" content="Hugo 0.76.5" />
    <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="Object store for Hadoop">
    <meta name="keywords" content="hadoop, ozone, hdds, objectstore, scale"/>
    <meta name="robots" content="index,follow"/>
    <meta name="language" content="en"/>

    <title>Apache Ozone</title>

    <base href="https://ozone.apache.org/">

    <link rel="canonical" href="https://ozone.apache.org">

    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"
          integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
    <link rel="stylesheet" href="style.css">

</head>

<body>


<div class="topnav">
    <div class="container">
        <ul class="breadcrumb col-md-6">
            <li>
                <img class="asf-logo" src="asf_feather.png"/>
                <a  href="https://www.apache.org">Apache Software Foundation</span></a>
            </li>
            <li><a href="https://ozone.apache.org/">Ozone&trade;</a></li>
        </ul>
        <div class="col-md-6">
            <ul class="pull-right breadcrumb">
                <li><a href="https://www.apache.org/licenses/">License</a></li>
                <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
                <li><a href="https://www.apache.org/events/current-event">Events</a></li>
                <li><a href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
                <li><a href="https://www.apache.org/security/">Security</a></li>
        </ul>
        </div>
    </div>

    <nav class="navbar navbar-default navbar-static-top" role="navigation">
        <div class="container">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle collapsed" data-toggle="collapse"
                        data-target="#ratis-menu" aria-expanded="false">
                    <span class="sr-only">Toggle navigation</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
            </div>

            <div id="ratis-menu" class="collapse navbar-collapse">
                <ul class="nav navbar-nav navbar-right">
                    <li><a href="faq">FAQ</a></li>
                    <li><a href="downloads">Download</a></li>
                    <li><a href="docs">Documentation</a></li>
                    <li><a href="community">Community</a></li>
                    <li><a href="https://github.com/apache/ozone">Source</a></li>
                    <li><a href="https://cwiki.apache.org/confluence/display/OZONE">Wiki</a></li>
                </ul>
            </div>

    </nav>

    <div style="max-height: 200px; overflow: hidden;">
      <img src="sunrise-ozone.jpg" style="width: 100%; left:0px;"/>
    </div>

</div>

</div>

<div class="main-section">

</div>

<div class="whatis">
    <div class="container">
        <div class="row header">
            <p class="lead">
                Ozone is a scalable, redundant, and distributed object store for Hadoop. Apart from scaling to billions of objects of varying sizes, Ozone can function effectively in containerized environments such as Kubernetes and YARN. </p> <p class="lead">Applications using frameworks like Apache Spark, YARN and Hive work natively without any modifications.</p>
            <p class="lead">Ozone is built on a highly available, replicated block storage layer called Hadoop Distributed Data Store (HDDS).
            </p>
            </p>
            <p></p>
            <p class="lead">Ozone is now Generally Available(GA) with <a href="release/1.1.0/">1.1.0</a> release.
            </p>
            <p></p>
        </div>
    </div>
</div>


<div class="main-section feature-list-group" style="padding: 80px;">
    <div class="container">
        <div class="row feature-list">
            <div class="col-md-4 col-sm-4 feature-item">

                <h4><span class="glyphicon glyphicon-signal" aria-hidden="true"></span> Scalable</h4>
                <p>
                 Ozone is designed to scale to tens of billions of files and
                 blocks and, in the future, even more.
                </p>
      
                <p></p>
            </div>
            <div class="col-md-4 col-sm-4 feature-item">
                <h4><span class="glyphicon glyphicon-link" aria-hidden="true"></span>
                   Consistent</h4>
                <p>
                    Ozone is a strongly consistent object store. This consistency is achieved by using protocols like RAFT.
                </p>
            </div>
            <div class="col-md-4 col-sm-4 feature-item">
                <h4><span class="glyphicon glyphicon-cloud" aria-hidden="true"></span>Cloud-native</h4>
                <p>Ozone is designed to work well in containerized environments like YARN and Kubernetes.
                </p>
            </div>

                 <div class="col-md-4 col-sm-4 feature-item">
                <h4><span class="glyphicon glyphicon-tower" aria-hidden="true"></span>Secure</h4>
                <p>Ozone integrates with kerberos infrastructure for access control and supports TDE and on-wire encryption.
                </p>
            </div>

 <div class="col-md-4 col-sm-4 feature-item">
                <h4><span class="glyphicon glyphicon-asterisk
" aria-hidden="true"></span>Multi-Protocol Support</h4>
                <p>Ozone supports different protocols like S3 
                and Hadoop File System APIs.

                </p>
            </div>


 <div class="col-md-4 col-sm-4 feature-item">
                <h4><span class="glyphicon glyphicon-random
" aria-hidden="true"></span>Highly Available</h4>
                <p>Ozone is a fully replicated system that is designed to survive multiple failures.
                </p>
            </div>

        </div>


    </div>
</div>




<footer>
    <div class="container">

        <div class="col-md-12 trademark">
            <p>&copy; 2021 <a href="http://apache.org">The Apache Software Foundation</a>,<br/>
                Apache, Apache Hadoop, the Apache feather logo, are trademarks of The Apache Software Foundation.
            <p>
        </div>
    </div>
</footer>


<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"
        integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS"
        crossorigin="anonymous"></script>


</body>
</html>

