

<!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="#navbar" 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" href="#">Apache Hadoop Ozone/HDDS documentation</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">
  <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="">
                        <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">Ozone CLI</a>
                        </li>
                    
                        <li class="">
                        <a href="./volumecommands.html">Volume Commands</a>
                        </li>
                    
                        <li class="">
                        <a href="./bucketcommands.html">Bucket Commands</a>
                        </li>
                    
                        <li class="active">
                        <a href="./keycommands.html">Key Commands</a>
                        </li>
                    
                        <li class="">
                        <a href="./javaapi.html">Java API</a>
                        </li>
                    
                        <li class="">
                        <a href="./ozonefs.html">Ozone File System</a>
                        </li>
                    
                        <li class="">
                        <a href="./rest.html">REST API</a>
                        </li>
                    
                </ul>
            </li>
        
    
        
            <li class="">
                <a href="dozone.html">
                    
                    <span>Tools</span>
                </a>
                <ul class="nav">
                    
                        <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="./scmcli.html">SCMCLI</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>
                    
                </ul>
            </li>
        
    
  </ul>

</div>

        <div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
            <h1>Key Commands</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>Ozone shell supports the following key commands.</p>

<ul>
<li><a href="#get">get</a></li>
<li><a href="#put">put</a></li>
<li><a href="#delete">delete</a></li>
<li><a href="#info">info</a></li>
<li><a href="#list">list</a></li>
</ul>

<h3 id="get">Get</h3>

<p>The key get command downloads a key from Ozone cluster to local file system.</p>

<p><strong><em>Params:</em></strong></p>

<table>
<thead>
<tr>
<th>Arguments</th>
<th>Comment</th>
</tr>
</thead>

<tbody>
<tr>
<td>Uri</td>
<td>The name of the key in <strong>/volume/bucket/key</strong> format.</td>
</tr>

<tr>
<td>FileName</td>
<td>Local file to download the key to.</td>
</tr>
</tbody>
</table>

<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 key get /hive/jan/sales.orc sales.orc</code></pre></div>
Downloads the file sales.orc from the <em>/hive/jan</em> bucket and writes to the
local file sales.orc.</p>

<h3 id="put">Put</h3>

<p>Uploads a file from the local file system to the specified bucket.</p>

<p><strong><em>Params:</em></strong></p>

<table>
<thead>
<tr>
<th>Arguments</th>
<th>Comment</th>
</tr>
</thead>

<tbody>
<tr>
<td>Uri</td>
<td>The name of the key in <strong>/volume/bucket/key</strong> format.</td>
</tr>

<tr>
<td>FileName</td>
<td>Local file to upload.</td>
</tr>

<tr>
<td>-r, &ndash;replication</td>
<td>Optional, Number of copies, ONE or THREE are the options. Picks up the default from cluster configuration.</td>
</tr>
</tbody>
</table>

<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 key put /hive/jan/corrected-sales.orc sales.orc</code></pre></div>
The above command will put the sales.orc as a new key into <em>/hive/jan/corrected-sales.orc</em>.</p>

<h3 id="delete">Delete</h3>

<p>The delete key command removes the key from the bucket.</p>

<p><strong><em>Params:</em></strong></p>

<table>
<thead>
<tr>
<th>Arguments</th>
<th>Comment</th>
</tr>
</thead>

<tbody>
<tr>
<td>Uri</td>
<td>The name of the key.</td>
</tr>
</tbody>
</table>

<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 key delete /hive/jan/corrected-sales.orc</code></pre></div>

<p>The above command deletes the key <em>/hive/jan/corrected-sales.orc</em>.</p>

<h3 id="info">Info</h3>

<p>The key info commands returns the information about the key.
<strong><em>Params:</em></strong></p>

<table>
<thead>
<tr>
<th>Arguments</th>
<th>Comment</th>
</tr>
</thead>

<tbody>
<tr>
<td>Uri</td>
<td>The name of the key.</td>
</tr>
</tbody>
</table>

<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 key info /hive/jan/sales.orc</code></pre></div>

<p>The above command will print out the information about <em>/hive/jan/sales.orc</em>
key.</p>

<h3 id="list">List</h3>

<p>The key list commands allows user to list all keys in a bucket.</p>

<p><strong><em>Params:</em></strong></p>

<table>
<thead>
<tr>
<th>Arguments</th>
<th>Comment</th>
</tr>
</thead>

<tbody>
<tr>
<td>-l, &ndash;length</td>
<td>Maximum number of results to return. Default: 1000</td>
</tr>

<tr>
<td>-p, &ndash;prefix</td>
<td>Optional, Only buckets that match this prefix will be returned.</td>
</tr>

<tr>
<td>-s, &ndash;start</td>
<td>The listing will start from key after the start key.</td>
</tr>

<tr>
<td>Uri</td>
<td>The name of the <em>volume</em>.</td>
</tr>
</tbody>
</table>

<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 key list /hive/jan</code></pre></div>

<p>This command will  list all key in the bucket <em>/hive/jan</em>.</p>

<p>You can try out these commands from the docker instance of the <a href="runningviadocker.html">Alpha
Cluster</a>.</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>
