| |
| |
| <!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="./ozonefs.html">Ozone File System</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"> |
| |
| <span>Ozone CLI</span> |
| </a> |
| <ul class="nav"> |
| |
| <li class=""> |
| <a href="./volumecommands.html">Volume Commands</a> |
| </li> |
| |
| <li class=""> |
| <a href="./bucketcommands.html">Bucket Commands</a> |
| </li> |
| |
| <li class=""> |
| <a href="./keycommands.html">Key Commands</a> |
| </li> |
| |
| </ul> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="./s3.html">S3</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="./javaapi.html">Java API</a> |
| |
| </li> |
| |
| </ul> |
| </li> |
| |
| |
| |
| <li class=""> |
| <a href="dozone.html"> |
| |
| <span>Tools</span> |
| </a> |
| <ul class="nav"> |
| |
| <li class=""> |
| |
| <a href="./auditparser.html">Audit Parser</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="./dozone.html">Dozone & Dev Tools</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="./freon.html">Freon</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="./genconf.html">Generate Configurations</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="./scmcli.html">SCMCLI</a> |
| |
| </li> |
| |
| </ul> |
| </li> |
| |
| |
| |
| <li class=""> |
| <a href="prometheus.html"> |
| |
| <span>Recipes</span> |
| </a> |
| <ul class="nav"> |
| |
| <li class=""> |
| |
| <a href="./prometheus.html">Monitoring with Prometheus</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="./sparkozonefsk8s.html">Spark in Kubernetes with OzoneFS</a> |
| |
| </li> |
| |
| </ul> |
| </li> |
| |
| |
| |
| <li class=""> |
| <a href="./concepts.html"> |
| |
| <span>Architecture</span> |
| </a> |
| <ul class="nav"> |
| |
| <li class="active"> |
| |
| <a href="./hdds.html">Hadoop Distributed Data Store</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="./ozonemanager.html">Ozone Manager</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="./ozonesecurityarchitecture.html">Ozone Security Overview</a> |
| |
| </li> |
| |
| <li class=""> |
| |
| <a href="./setupsecureozone.html">Setup secure ozone cluster</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>Hadoop Distributed Data Store</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. |
| --> |
| |
| <h2 id="scm-overview">SCM Overview</h2> |
| |
| <p>Storage Container Manager or SCM is a very important component of ozone. SCM |
| offers block and container-based services to Ozone Manager. A container is a |
| collection of unrelated blocks under ozone. SCM and data nodes work together |
| to maintain the replication levels needed by the cluster.</p> |
| |
| <p>It is easier to look at a putKey operation to understand the role that SCM plays.</p> |
| |
| <p>To put a key, a client makes a call to OM with the following arguments.</p> |
| |
| <p>– putKey(keyName, data, pipeline type, replication count)</p> |
| |
| <ol> |
| <li>keyName - refers to the file name.</li> |
| <li>data - The data that the client wants to write.</li> |
| <li>pipeline type - Allows the client to select the pipeline type. A pipeline |
| refers to the replication strategy used for replicating a block. Ozone |
| currently supports Stand Alone and Ratis as two different pipeline types.</li> |
| <li>replication count - This specifies how many copies of the block replica should be maintained.</li> |
| </ol> |
| |
| <p>In most cases, the client does not specify the pipeline type and replication |
| count. The default pipeline type and replication count are used.</p> |
| |
| <p>Ozone Manager when it receives the putKey call, makes a call to SCM asking |
| for a pipeline instance with the specified property. So if the client asked |
| for RATIS replication strategy and a replication count of three, then OM |
| requests SCM to return a set of data nodes that meet this capability.</p> |
| |
| <p>If SCM can find this a pipeline ( that is a set of data nodes) that can meet |
| the requirement from the client, then those nodes are returned to OM. OM will |
| persist this info and return a tuple consisting of {BlockID, ContainerName, and Pipeline}.</p> |
| |
| <p>If SCM is not able to find a pipeline, then SCM creates a logical pipeline and then returns it.</p> |
| |
| <p>SCM manages blocks, containers, and pipelines. To return healthy pipelines, |
| SCM also needs to understand the node health. So SCM listens to heartbeats |
| from data nodes and acts as the node manager too.</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> |