

<!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 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-3 col-md-2 sidebar" id="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="./s3.html">S3</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>
        
    
    <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-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>
