| |
| |
| <!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-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="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="../gdpr.html"> |
| |
| |
| |
| <span>GDPR</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=""> |
| |
| <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"> |
| <nav aria-label="breadcrumb"> |
| <ol class="breadcrumb"> |
| <li class="breadcrumb-item"><a href="../">Home</a></li> |
| <li class="breadcrumb-item" aria-current="page"><a href="../start.html">Getting Started</a></li> |
| <li class="breadcrumb-item active" aria-current="page">Ozone On Premise Installation</li> |
| </ol> |
| </nav> |
| |
| |
| |
| <div class="pull-right"> |
| |
| |
| |
| |
| <a href="../zh/start/onprem.html"><span class="label label-success">ä¸æ–‡</span></a> |
| |
| |
| </div> |
| |
| |
| <div class="col-md-9"> |
| <h1>Ozone On Premise Installation</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>If you are feeling adventurous, you can setup ozone in a real cluster. |
| Setting up a real cluster requires us to understand the components of Ozone. |
| Ozone is designed to work concurrently with HDFS. However, Ozone is also |
| capable of running independently. The components of ozone are the same in both approaches.</p> |
| |
| <h2 id="ozone-components">Ozone Components</h2> |
| |
| <ol> |
| <li>Ozone Manager - Is the server that is in charge of the namespace of Ozone. Ozone Manager is responsible for all volume, bucket and key operations.</li> |
| <li>Storage Container Manager - Acts as the block manager. Ozone Manager |
| requests blocks from SCM, to which clients can write data.</li> |
| <li>Datanodes - Ozone data node code runs inside the HDFS datanode or in the independent deployment case runs an ozone datanode daemon.</li> |
| </ol> |
| |
| <h2 id="setting-up-an-ozone-only-cluster">Setting up an Ozone only cluster</h2> |
| |
| <ul> |
| <li><p>Please untar the ozone-<version> to the directory where you are going |
| to run Ozone from. We need Ozone jars on all machines in the cluster. So you |
| need to do this on all machines in the cluster.</p></li> |
| |
| <li><p>Ozone relies on a configuration file called <code>ozone-site.xml</code>. To |
| generate a template that you can replace with proper values, please run the |
| following command. This will generate a template called <code>ozone-site.xml</code> at |
| the specified path (directory).</p></li> |
| </ul> |
| |
| <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 genconf <path></code></pre></div> |
| |
| <p>Let us look at the settings inside the generated file (ozone-site.xml) and |
| how they control ozone. Once the right values are defined, this file |
| needs to be copied to <code>ozone directory/etc/hadoop</code>.</p> |
| |
| <ul> |
| <li><strong>ozone.metadata.dirs</strong> Allows Administrators to specify where the |
| metadata must reside. Usually you pick your fastest disk (SSD if |
| you have them on your nodes). OzoneManager, SCM and datanode will write the |
| metadata to this path. This is a required setting, if this is missing Ozone |
| will fail to come up.</li> |
| </ul> |
| |
| <p>Here is an 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-xml" data-lang="xml"> <span style="color:#f92672"><property></span> |
| <span style="color:#f92672"><name></span>ozone.metadata.dirs<span style="color:#f92672"></name></span> |
| <span style="color:#f92672"><value></span>/data/disk1/meta<span style="color:#f92672"></value></span> |
| <span style="color:#f92672"></property></span></code></pre></div> |
| |
| <ul> |
| <li><strong>ozone.scm.names</strong> Storage container manager(SCM) is a distributed block |
| service which is used by ozone. This property allows data nodes to discover |
| SCM’s address. Data nodes send heartbeat to SCM. |
| Until HA feature is complete, we configure ozone.scm.names to be a |
| single machine.</li> |
| </ul> |
| |
| <p>Here is an 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-xml" data-lang="xml"> <span style="color:#f92672"><property></span> |
| <span style="color:#f92672"><name></span>ozone.scm.names<span style="color:#f92672"></name></span> |
| <span style="color:#f92672"><value></span>scm.hadoop.apache.org<span style="color:#f92672"></value></span> |
| <span style="color:#f92672"></property></span> |
| </code></pre></div> |
| |
| <ul> |
| <li><strong>ozone.scm.datanode.id.dir</strong> Data nodes generate a Unique ID called Datanode |
| ID. This identity is written to the file datanode.id in a directory specified by this path. <em>Data nodes |
| will create this path if it doesn’t exist already.</em></li> |
| </ul> |
| |
| <p>Here is an example, |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-xml" data-lang="xml"> <span style="color:#f92672"><property></span> |
| <span style="color:#f92672"><name></span>ozone.scm.datanode.id.dir<span style="color:#f92672"></name></span> |
| <span style="color:#f92672"><value></span>/data/disk1/meta/node<span style="color:#f92672"></value></span> |
| <span style="color:#f92672"></property></span></code></pre></div></p> |
| |
| <ul> |
| <li><strong>ozone.om.address</strong> OM server address. This is used by OzoneClient and |
| Ozone File System.</li> |
| </ul> |
| |
| <p>Here is an example, |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-xml" data-lang="xml"> <span style="color:#f92672"><property></span> |
| <span style="color:#f92672"><name></span>ozone.om.address<span style="color:#f92672"></name></span> |
| <span style="color:#f92672"><value></span>ozonemanager.hadoop.apache.org<span style="color:#f92672"></value></span> |
| <span style="color:#f92672"></property></span></code></pre></div></p> |
| |
| <h2 id="ozone-settings-summary">Ozone Settings Summary</h2> |
| |
| <table> |
| <thead> |
| <tr> |
| <th>Setting</th> |
| <th>Value</th> |
| <th>Comment</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| <tr> |
| <td>ozone.metadata.dirs</td> |
| <td>file path</td> |
| <td>The metadata will be stored here.</td> |
| </tr> |
| |
| <tr> |
| <td>ozone.scm.names</td> |
| <td>SCM server name</td> |
| <td>Hostname:port or IP:port address of SCM.</td> |
| </tr> |
| |
| <tr> |
| <td>ozone.scm.block.client.address</td> |
| <td>SCM server name and port</td> |
| <td>Used by services like OM</td> |
| </tr> |
| |
| <tr> |
| <td>ozone.scm.client.address</td> |
| <td>SCM server name and port</td> |
| <td>Used by client-side</td> |
| </tr> |
| |
| <tr> |
| <td>ozone.scm.datanode.address</td> |
| <td>SCM server name and port</td> |
| <td>Used by datanode to talk to SCM</td> |
| </tr> |
| |
| <tr> |
| <td>ozone.om.address</td> |
| <td>OM server name</td> |
| <td>Used by Ozone handler and Ozone file system.</td> |
| </tr> |
| </tbody> |
| </table> |
| |
| <h2 id="startup-the-cluster">Startup the cluster</h2> |
| |
| <p>Before we boot up the Ozone cluster, we need to initialize both SCM and Ozone Manager.</p> |
| |
| <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 scm --init</code></pre></div> |
| This allows SCM to create the cluster Identity and initialize its state. |
| The <code>init</code> command is similar to Namenode format. Init command is executed only once, that allows SCM to create all the required on-disk structures to work correctly. |
| <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 --daemon start scm</code></pre></div></p> |
| |
| <p>Once we know SCM is up and running, we can create an Object Store for our use. This is done by running the following command.</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 om --init</code></pre></div> |
| |
| <p>Once Ozone manager is initialized, we are ready to run the name service.</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 --daemon start om</code></pre></div> |
| |
| <p>At this point Ozone’s name services, the Ozone manager, and the block service SCM is both running.<br /> |
| <strong>Please note</strong>: If SCM is not running |
| <code>om --init</code> command will fail. SCM start will fail if on-disk data structures are missing. So please make sure you have done both <code>scm --init</code> and <code>om --init</code> commands.</p> |
| |
| <p>Now we need to start the data nodes. Please run the following command on each datanode. |
| <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 --daemon start datanode</code></pre></div></p> |
| |
| <p>At this point SCM, Ozone Manager and data nodes are up and running.</p> |
| |
| <p><strong><em>Congratulations!, You have set up a functional ozone cluster.</em></strong></p> |
| |
| <h2 id="shortcut">Shortcut</h2> |
| |
| <p>If you want to make your life simpler, you can just run |
| <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 scm --init |
| ozone om --init |
| start-ozone.sh</code></pre></div></p> |
| |
| <p>This assumes that you have set up the slaves file correctly and ssh |
| configuration that allows ssh-ing to all data nodes. This is the same as the |
| HDFS configuration, so please refer to HDFS documentation on how to set this |
| up.</p> |
| |
| |
| |
| <a class="btn btn-success btn-lg" href="../start/minikube.html">Next >></a> |
| |
| </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> |