| |
| |
| <!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="Apache Ozone Documentation"> |
| |
| <title>Documentation for Apache 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="../index.html" class="navbar-left ozone-logo"> |
| <img src="../ozone-logo-small.png"/> |
| </a> |
| <a class="navbar-brand hidden-xs" href="../index.html"> |
| Apache Ozone/HDDS documentation |
| </a> |
| <a class="navbar-brand visible-xs-inline" href="#">Apache 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="wrapper"> |
| <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="../concept.html"> |
| |
| <span>Architecture</span> |
| </a> |
| <ul class="nav"> |
| |
| <li class=""> |
| |
| <a href="../concept/overview.html">Overview</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../concept/ozonemanager.html">Ozone Manager</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../concept/storagecontainermanager.html">Storage Container Manager</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../concept/containers.html">Containers</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../concept/datanodes.html">Datanodes</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../concept/recon.html">Recon</a> |
| |
| </li> |
| |
| </ul> |
| </li> |
| |
| |
| |
| <li class=""> |
| <a href="../feature.html"> |
| |
| <span>Features</span> |
| </a> |
| <ul class="nav"> |
| |
| <li class=""> |
| |
| <a href="../feature/ha.html">High Availability</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../feature/topology.html">Topology awareness</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../feature/quota.html">Quota in Ozone</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../feature/recon.html">Recon Server</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../feature/observability.html">Observability</a> |
| |
| </li> |
| |
| </ul> |
| </li> |
| |
| |
| |
| <li class=""> |
| <a href="../interface.html"> |
| |
| <span>Client Interfaces</span> |
| </a> |
| <ul class="nav"> |
| |
| <li class=""> |
| |
| <a href="../interface/ofs.html">Ofs (Hadoop compatible)</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../interface/o3fs.html">O3fs (Hadoop compatible)</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../interface/s3.html">S3 Protocol</a> |
| |
| </li> |
| |
| <li class="active"> |
| |
| <a href="../interface/cli.html">Command Line Interface</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../interface/reconapi.html">Recon API</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../interface/javaapi.html">Java API</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../interface/csi.html">CSI Protocol</a> |
| |
| </li> |
| |
| </ul> |
| </li> |
| |
| |
| |
| <li class=""> |
| <a href="../security.html"> |
| |
| <span>Security</span> |
| </a> |
| <ul class="nav"> |
| |
| <li class=""> |
| |
| <a href="../security/secureozone.html">Securing Ozone</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../security/securingtde.html">Transparent Data Encryption</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../security/gdpr.html">GDPR in Ozone</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../security/securingdatanodes.html">Securing Datanodes</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../security/securingozonehttp.html">Securing HTTP</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../security/securings3.html">Securing S3</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../security/securityacls.html">Ozone ACLs</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="../security/securitywithranger.html">Apache Ranger</a> |
| |
| </li> |
| |
| </ul> |
| </li> |
| |
| |
| |
| <li class=""> |
| |
| <a href="../tools.html"> |
| |
| |
| |
| <span>Tools</span> |
| </a> |
| </li> |
| |
| |
| |
| <li class=""> |
| |
| <a href="../recipe.html"> |
| |
| |
| |
| <span>Recipes</span> |
| </a> |
| </li> |
| |
| |
| <li><a href="../design.html"><span><b>Design docs</b></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"> |
| <nav aria-label="breadcrumb"> |
| <ol class="breadcrumb"> |
| <li class="breadcrumb-item"><a href="../index.html">Home</a></li> |
| <li class="breadcrumb-item" aria-current="page"><a href="../interface.html">Client Interfaces</a></li> |
| <li class="breadcrumb-item active" aria-current="page">Command Line Interface</li> |
| </ol> |
| </nav> |
| |
| |
| |
| <div class="pull-right"> |
| |
| |
| |
| </div> |
| |
| |
| <div class="col-md-9"> |
| <h1>Command Line Interface</h1> |
| |
| <!--- |
| 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 is the primary interface to interact with Ozone from the command line. Behind the scenes it uses the <a href="../interface/javaapi.html">Java API</a>.</p> |
| <p>There are some functionality which couldn’t be accessed without using <code>ozone sh</code> commands. For example:</p> |
| <ol> |
| <li>Creating volumes with quota</li> |
| <li>Managing internal ACLs</li> |
| <li>Creating buckets with encryption key</li> |
| </ol> |
| <p>All of these are one-time, administration tasks. Applications can use Ozone without this CLI using other interface like Hadoop Compatible File System (o3fs or ofs) or S3 interface.</p> |
| <p>Ozone shell help can be invoked at <em>object</em> level or at <em>action</em> level.</p> |
| <p>For example:</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 volume --help |
| </code></pre></div><p>will show all possible actions for volumes.</p> |
| <p>Or it can be invoked to explain a specific action like:</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 volume create --help |
| </code></pre></div><p>which will print the command line options of the <code>create</code> command for volumes.</p> |
| <h2 id="general-command-format">General Command Format</h2> |
| <p>Ozone shell commands take the following form:</p> |
| <blockquote> |
| <p><em>ozone sh object action url</em></p> |
| </blockquote> |
| <p><strong>ozone</strong> script is used to invoke all Ozone sub-commands. The ozone shell is |
| invoked via <code>sh</code> command.</p> |
| <p>Object can be volume, bucket or key. Actions are various verbs like |
| create, list, delete etc.</p> |
| <p>Depending on the action, Ozone URL can point to a volume, bucket or key in the following format:</p> |
| <p><em>[schema][server:port]/volume/bucket/key</em></p> |
| <p>Where,</p> |
| <ol> |
| <li> |
| <p><strong>Schema</strong> - This should be <code>o3</code> which is the native RPC protocol to access |
| Ozone API. The usage of the schema is optional.</p> |
| </li> |
| <li> |
| <p><strong>Server:Port</strong> - This is the address of the Ozone Manager. If the port is |
| omitted the default port from ozone-site.xml will be used.</p> |
| </li> |
| </ol> |
| <p>Please see volume commands, bucket commands, and key commands section for more |
| detail.</p> |
| <h2 id="volume-operations">Volume operations</h2> |
| <p>Volume is the top level element of the hierarchy, managed only by administrators. Optionally, quota and the owner user can be specified.</p> |
| <p>Example commands:</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-shell" data-lang="shell">$ ozone sh volume create /vol1 |
| </code></pre></div><div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">$ ozone sh volume info /vol1 |
| <span style="color:#f92672">{</span> |
| <span style="color:#e6db74">"metadata"</span> : <span style="color:#f92672">{</span> <span style="color:#f92672">}</span>, |
| <span style="color:#e6db74">"name"</span> : <span style="color:#e6db74">"vol1"</span>, |
| <span style="color:#e6db74">"admin"</span> : <span style="color:#e6db74">"hadoop"</span>, |
| <span style="color:#e6db74">"owner"</span> : <span style="color:#e6db74">"hadoop"</span>, |
| <span style="color:#e6db74">"creationTime"</span> : <span style="color:#e6db74">"2020-07-28T12:31:50.112Z"</span>, |
| <span style="color:#e6db74">"modificationTime"</span> : <span style="color:#e6db74">"2020-07-28T12:31:50.112Z"</span>, |
| <span style="color:#e6db74">"acls"</span> : <span style="color:#f92672">[</span> <span style="color:#f92672">{</span> |
| <span style="color:#e6db74">"type"</span> : <span style="color:#e6db74">"USER"</span>, |
| <span style="color:#e6db74">"name"</span> : <span style="color:#e6db74">"hadoop"</span>, |
| <span style="color:#e6db74">"aclScope"</span> : <span style="color:#e6db74">"ACCESS"</span>, |
| <span style="color:#e6db74">"aclList"</span> : <span style="color:#f92672">[</span> <span style="color:#e6db74">"ALL"</span> <span style="color:#f92672">]</span> |
| <span style="color:#f92672">}</span>, <span style="color:#f92672">{</span> |
| <span style="color:#e6db74">"type"</span> : <span style="color:#e6db74">"GROUP"</span>, |
| <span style="color:#e6db74">"name"</span> : <span style="color:#e6db74">"users"</span>, |
| <span style="color:#e6db74">"aclScope"</span> : <span style="color:#e6db74">"ACCESS"</span>, |
| <span style="color:#e6db74">"aclList"</span> : <span style="color:#f92672">[</span> <span style="color:#e6db74">"ALL"</span> <span style="color:#f92672">]</span> |
| <span style="color:#f92672">}</span> <span style="color:#f92672">]</span>, |
| <span style="color:#e6db74">"quota"</span> : <span style="color:#ae81ff">1152921504606846976</span> |
| <span style="color:#f92672">}</span> |
| </code></pre></div><div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">$ ozone sh volume list / |
| <span style="color:#f92672">{</span> |
| <span style="color:#e6db74">"metadata"</span> : <span style="color:#f92672">{</span> <span style="color:#f92672">}</span>, |
| <span style="color:#e6db74">"name"</span> : <span style="color:#e6db74">"s3v"</span>, |
| <span style="color:#e6db74">"admin"</span> : <span style="color:#e6db74">"hadoop"</span>, |
| <span style="color:#e6db74">"owner"</span> : <span style="color:#e6db74">"hadoop"</span>, |
| <span style="color:#e6db74">"creationTime"</span> : <span style="color:#e6db74">"2020-07-27T11:32:22.314Z"</span>, |
| <span style="color:#e6db74">"modificationTime"</span> : <span style="color:#e6db74">"2020-07-27T11:32:22.314Z"</span>, |
| <span style="color:#e6db74">"acls"</span> : <span style="color:#f92672">[</span> <span style="color:#f92672">{</span> |
| <span style="color:#e6db74">"type"</span> : <span style="color:#e6db74">"USER"</span>, |
| <span style="color:#e6db74">"name"</span> : <span style="color:#e6db74">"hadoop"</span>, |
| <span style="color:#e6db74">"aclScope"</span> : <span style="color:#e6db74">"ACCESS"</span>, |
| <span style="color:#e6db74">"aclList"</span> : <span style="color:#f92672">[</span> <span style="color:#e6db74">"ALL"</span> <span style="color:#f92672">]</span> |
| <span style="color:#f92672">}</span>, <span style="color:#f92672">{</span> |
| <span style="color:#e6db74">"type"</span> : <span style="color:#e6db74">"GROUP"</span>, |
| <span style="color:#e6db74">"name"</span> : <span style="color:#e6db74">"users"</span>, |
| <span style="color:#e6db74">"aclScope"</span> : <span style="color:#e6db74">"ACCESS"</span>, |
| <span style="color:#e6db74">"aclList"</span> : <span style="color:#f92672">[</span> <span style="color:#e6db74">"ALL"</span> <span style="color:#f92672">]</span> |
| <span style="color:#f92672">}</span> <span style="color:#f92672">]</span>, |
| <span style="color:#e6db74">"quota"</span> : <span style="color:#ae81ff">1152921504606846976</span> |
| <span style="color:#f92672">}</span> |
| .... |
| </code></pre></div><h2 id="bucket-operations">Bucket operations</h2> |
| <p>Bucket is the second level of the object hierarchy, and is similar to AWS S3 buckets. Users can create buckets in volumes, if they have the necessary permissions.</p> |
| <p>Command examples:</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-shell" data-lang="shell">$ ozone sh bucket create /vol1/bucket1 |
| </code></pre></div><div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">$ ozone sh bucket info /vol1/bucket1 |
| <span style="color:#f92672">{</span> |
| <span style="color:#e6db74">"metadata"</span> : <span style="color:#f92672">{</span> <span style="color:#f92672">}</span>, |
| <span style="color:#e6db74">"volumeName"</span> : <span style="color:#e6db74">"vol1"</span>, |
| <span style="color:#e6db74">"name"</span> : <span style="color:#e6db74">"bucket1"</span>, |
| <span style="color:#e6db74">"storageType"</span> : <span style="color:#e6db74">"DISK"</span>, |
| <span style="color:#e6db74">"versioning"</span> : false, |
| <span style="color:#e6db74">"creationTime"</span> : <span style="color:#e6db74">"2020-07-28T13:14:45.091Z"</span>, |
| <span style="color:#e6db74">"modificationTime"</span> : <span style="color:#e6db74">"2020-07-28T13:14:45.091Z"</span>, |
| <span style="color:#e6db74">"encryptionKeyName"</span> : null, |
| <span style="color:#e6db74">"sourceVolume"</span> : null, |
| <span style="color:#e6db74">"sourceBucket"</span> : null |
| <span style="color:#f92672">}</span> |
| </code></pre></div><p><a href="../security/securingtde.html">Transparent Data Encryption</a> can be enabled at the bucket level.</p> |
| <h2 id="key-operations">Key operations</h2> |
| <p>Key is the object which can store the data.</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-shell" data-lang="shell">$ ozone sh key put /vol1/bucket1/README.md README.md |
| </code></pre></div><div class="alert alert-warning" role="alert"> |
| <p>In this case the standard <code>ozone sh <object_type> <action> <url></code> scheme may be a bit confusing at first, as it results in the syntax <code>ozone sh key put <destination> <source></code> instead of the arguably more natural order of <code><source> <destination></code>.</p> |
| </div> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">$ ozone sh key info /vol1/bucket1/README.md |
| <span style="color:#f92672">{</span> |
| <span style="color:#e6db74">"volumeName"</span> : <span style="color:#e6db74">"vol1"</span>, |
| <span style="color:#e6db74">"bucketName"</span> : <span style="color:#e6db74">"bucket1"</span>, |
| <span style="color:#e6db74">"name"</span> : <span style="color:#e6db74">"README.md"</span>, |
| <span style="color:#e6db74">"dataSize"</span> : 3841, |
| <span style="color:#e6db74">"creationTime"</span> : <span style="color:#e6db74">"2020-07-28T13:17:20.749Z"</span>, |
| <span style="color:#e6db74">"modificationTime"</span> : <span style="color:#e6db74">"2020-07-28T13:17:21.979Z"</span>, |
| <span style="color:#e6db74">"replicationType"</span> : <span style="color:#e6db74">"RATIS"</span>, |
| <span style="color:#e6db74">"replicationFactor"</span> : 1, |
| <span style="color:#e6db74">"ozoneKeyLocations"</span> : <span style="color:#f92672">[</span> <span style="color:#f92672">{</span> |
| <span style="color:#e6db74">"containerID"</span> : 1, |
| <span style="color:#e6db74">"localID"</span> : 104591670688743424, |
| <span style="color:#e6db74">"length"</span> : 3841, |
| <span style="color:#e6db74">"offset"</span> : <span style="color:#ae81ff">0</span> |
| <span style="color:#f92672">}</span> <span style="color:#f92672">]</span>, |
| <span style="color:#e6db74">"metadata"</span> : <span style="color:#f92672">{</span> <span style="color:#f92672">}</span>, |
| <span style="color:#e6db74">"fileEncryptionInfo"</span> : null |
| <span style="color:#f92672">}</span> |
| </code></pre></div><div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">$ ozone sh key get /vol1/bucket1/README.md /tmp/ |
| </code></pre></div> |
| |
| |
| <a class="btn btn-success btn-lg" href="../interface/reconapi.html">Next >></a> |
| |
| </div> |
| |
| </div> |
| </div> |
| </div> |
| </div> |
| <div class="push"></div> |
| </div> |
| |
| |
| |
| <footer class="footer"> |
| <div class="container"> |
| <span class="small text-muted"> |
| Version: 1.1.0, Last Modified: February 7, 2021 <a class="hide-child link primary-color" href="https://github.com/apache/ozone/commit/8585fba44a6ffe22fa2c65cc651acec6b6872e5e">8585fba44</a> |
| </span> |
| </div> |
| </footer> |
| |
| |
| |
| <script src="../js/jquery-3.5.1.min.js"></script> |
| <script src="../js/ozonedoc.js"></script> |
| <script src="../js/bootstrap.min.js"></script> |
| |
| |
| </body> |
| |
| </html> |