

<!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="">
                
                   <a href="./beyond.html">
                

                    
                    <span>Beyond Basics</span>
                </a>
            </li>
        
    
        
            <li class="active">
                
                   <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>Tools</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.
-->

<p>Ozone has a set of command line tools that can be used to manage ozone.</p>

<p>All these commands are invoked via the <code>ozone</code> script.</p>

<p>Daemon commands:</p>

<ul>
<li><strong>scm</strong> -  Storage Container Manager service, via daemon can be started
or stopped.</li>
<li><strong>om</strong> -   Ozone Manager, via daemon command can be started or stopped.</li>
<li><strong>datanode</strong> - Via daemon command, the HDDS data nodes can be started or
stopped.</li>
<li><strong>s3g</strong> -</li>
</ul>

<p>Client commands:</p>

<ul>
<li><strong>sh</strong> -  Primary command line interface for ozone to manage volumes/buckets/keys.</li>
<li><strong>fs</strong> - Runs a command on ozone file system (similar to <code>hdfs dfs</code>)</li>
<li><strong>version</strong> - Prints the version of Ozone and HDDS.</li>
</ul>

<p>Admin commands:</p>

<ul>
<li><strong>classpath</strong> - Prints the class path needed to get the hadoop jar and the
required libraries.</li>
<li><strong>dtutil</strong>    - Operations related to delegation tokens</li>
<li><strong>envvars</strong> - Display computed Hadoop environment variables.</li>
<li><strong>getconf</strong> -  Reads ozone config values from configuration.</li>
<li><strong>jmxget</strong>  - Get JMX exported values from NameNode or DataNode.</li>
<li><strong>scmcli</strong> -  Developer only, Command Line Interface for the Storage
Container Manager.</li>
<li><strong>genconf</strong> -  Generate minimally required ozone configs and output to
ozone-site.xml.</li>
</ul>

<p>Test tools:</p>

<ul>
<li><strong>freon</strong> -  Runs the ozone load generator.</li>
<li><strong>genesis</strong>  - Developer Only, Ozone micro-benchmark application.</li>
</ul>

<p>For more information see the following subpages:</p>

                
                
                

                
                
                <div class="row">
                    
                    <div class="col-sm-6">
                        <div class="card">
                            <div class="card-body">
                                <h2 class="card-title">
                                    
                                    Generate Configurations
                                </h2>
                                <p class="card-text">Genconf tool generates a template ozone-site.xml file at the specified path. This template file can be edited to replace with proper values.
ozone genconf &lt;path&gt;</p>
                                <a href="./tools/genconf.html"
                                   class=" btn btn-primary btn-lg">Generate Configurations</a>
                            </div>
                        </div>
                    </div>

                    
                

                
                
                    <div class="col-sm-6">
                        <div class="card">
                            <div class="card-body">
                                <h2 class="card-title">
                                    
                                    Audit Parser
                                </h2>
                                <p class="card-text">Audit Parser tool can be used for querying the ozone audit logs. This tool creates a sqllite database at the specified path. If the database already exists, it will avoid creating a database.
The database contains only one table called audit defined as:
CREATE TABLE IF NOT EXISTS audit ( datetime text, level varchar(7), logger varchar(7), user text, ip text, op text, params text, result varchar(7), exception text, UNIQUE(datetime,level,logger,user,ip,op,params,result))
Usage: ozone auditparser &lt;path to db file&gt; [COMMAND] [PARAM]</p>
                                <a href="./tools/auditparser.html"
                                   class=" btn btn-primary btn-lg">Audit Parser</a>
                            </div>
                        </div>
                    </div>

                    
                        </div>
                    
                

                
                
                <div class="row">
                    
                    <div class="col-sm-6">
                        <div class="card">
                            <div class="card-body">
                                <h2 class="card-title">
                                    
                                    SCMCLI
                                </h2>
                                <p class="card-text">SCM is the block service for Ozone. It is also the workhorse for ozone. But user process never talks to SCM. However, being able to read the state of SCM is useful.
SCMCLI allows the developer to access SCM directly. Please note: Improper usage of this tool can destroy your cluster. Unless you know exactly what you are doing, Please do not use this tool. In other words, this is a developer only tool.</p>
                                <a href="./tools/scmcli.html"
                                   class=" btn btn-primary btn-lg">SCMCLI</a>
                            </div>
                        </div>
                    </div>

                    
                

                
                
                    <div class="col-sm-6">
                        <div class="card">
                            <div class="card-body">
                                <h2 class="card-title">
                                    
                                    Testing tools
                                </h2>
                                <p class="card-text">Testing is one of the most important part during the development of a distributed system. We have the following type of test.
This page includes our existing test tool which are part of the Ozone source base.
Note: we have more tests (like TCP-DS, TCP-H tests via Spark or Hive) which are not included here because they use external tools only.
Unit test As every almost every java project we have the good old unit tests inside each of our projects.</p>
                                <a href="./tools/testtools.html"
                                   class=" btn btn-primary btn-lg">Testing tools</a>
                            </div>
                        </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>