blob: 25911f8de924e6835f9526bebfb6a791dd114340 [file] [log] [blame]
<!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">
<link href="../swagger-resources/swagger-ui.css" rel="stylesheet">
<script>
var _paq = window._paq = window._paq || [];
_paq.push(['disableCookies']);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//analytics.apache.org/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '34']);
var d=document, g=d.createElement('script'),
s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
</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/ozone">Source</a></li>
<li><a href="https://ozone.apache.org">Apache Ozone</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/decommission.html">Decommissioning</a>
</li>
<li class="">
<a href="../feature/om-ha.html">OM High Availability</a>
</li>
<li class="">
<a href="../feature/erasurecoding.html">Ozone Erasure Coding</a>
</li>
<li class="">
<a href="../feature/snapshot.html">Ozone Snapshot</a>
</li>
<li class="">
<a href="../feature/scm-ha.html">SCM High Availability</a>
</li>
<li class="">
<a href="../feature/streaming-write-pipeline.html">Streaming Write Pipeline</a>
</li>
<li class="">
<a href="../feature/dn-merge-rocksdb.html">Merge Container RocksDB in DN</a>
</li>
<li class="">
<a href="../feature/prefixfso.html">Prefix based File System Optimization</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>
<li class="">
<a href="../feature/nonrolling-upgrade.html">Non-Rolling Upgrades and Downgrades</a>
</li>
<li class="">
<a href="../feature/s3-multi-tenancy.html">
<span>S3 Multi-Tenancy</span>
</a>
<ul class="nav">
<li class="">
<a href="../feature/s3-multi-tenancy-setup.html">Setup</a>
</li>
<li class="">
<a href="../feature/s3-tenant-commands.html">Tenant commands</a>
</li>
<li class="">
<a href="../feature/s3-multi-tenancy-access-control.html">Access Control</a>
</li>
</ul>
</li>
<li class="active">
<a href="../feature/reconfigurability.html">Reconfigurability</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="">
<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>
<li class="">
<a href="../interface/httpfs.html">HttpFS Gateway</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/ozone"><span class="glyphicon glyphicon-new-window" aria-hidden="true"></span> Source</a></li>
<li><a href="https://ozone.apache.org"><span class="glyphicon glyphicon-new-window" aria-hidden="true"></span> Apache Ozone</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-content">
<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="../feature.html">Features</a></li>
<li class="breadcrumb-item active" aria-current="page">Reconfigurability</li>
</ol>
</nav>
<div class="pull-right">
<a href="../zh/feature/reconfigurability.html"><span class="label label-success">中文</span></a>
</div>
<div class="col-md-9">
<h1>Reconfigurability</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 supports dynamic loading of certain properties without restarting the service.
If a property is reconfigurable, you can modify it in the configuration file (<code>ozone-site.xml</code>) and then invoke the command to flush it to memory.</p>
<p>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-shell" data-lang="shell">ozone admin reconfig --service<span style="color:#f92672">=[</span>OM|SCM|DATANODE<span style="color:#f92672">]</span> --address<span style="color:#f92672">=</span>&lt;ip:port&gt; start|status|properties
</code></pre></div><p>The meaning of command options:</p>
<ul>
<li><strong>&ndash;service</strong>: The node type of the server specified with &ndash;address</li>
<li><strong>&ndash;address</strong>: RPC address for one server</li>
<li>Three operations are provided:
<ul>
<li><strong>start</strong>: Execute the reconfig operation asynchronously</li>
<li><strong>status</strong>: Check reconfig status</li>
<li><strong>properties</strong>: List reconfigurable properties</li>
</ul>
</li>
</ul>
<h2 id="retrieve-the-reconfigurable-properties-list">Retrieve the reconfigurable properties list</h2>
<p>To retrieve all the reconfigurable properties list for a specific component in Ozone,
you can use the command: <code>ozone admin reconfig --service=[OM|SCM|DATANODE] --address=&lt;ip:port&gt; properties</code>.
This command will list all the properties that can be dynamically reconfigured at runtime for specific component.<br></p>
<blockquote>
<p>For example, get the Ozone OM reconfigurable properties list.</p>
<p>$ <code>ozone admin reconfig --service=OM --address=hadoop1:9862 properties</code><br>
OM: Node [hadoop1:9862] Reconfigurable properties:<br>
ozone.administrators</p>
</blockquote>
<h2 id="om-reconfigurability">OM Reconfigurability</h2>
<blockquote>
<p>For example, modify <code>ozone.administrators</code> in ozone-site.xml and execute:</p>
<p>$ <code>ozone admin reconfig --service=OM --address=hadoop1:9862 start</code><br>
OM: Started OM reconfiguration task on node [hadoop1:9862].</p>
<p>$ <code>ozone admin reconfig --service=OM --address=hadoop1:9862 status</code><br>
OM: Reconfiguring status for node [hadoop1:9862]: started at Wed Dec 28 19:04:44 CST 2022 and finished at Wed Dec 28 19:04:44 CST 2022.<br>
SUCCESS: Changed property ozone.administrators<br>
From: &ldquo;hadoop&rdquo;<br>
To: &ldquo;hadoop,bigdata&rdquo;</p>
<p>$ <code>ozone admin reconfig --service=OM -address=hadoop1:9862 properties</code><br>
OM: Node [hadoop1:9862] Reconfigurable properties:<br>
ozone.administrators</p>
</blockquote>
<h2 id="scm-reconfigurability">SCM Reconfigurability</h2>
<blockquote>
<p>For example, modify <code>ozone.administrators</code> in ozone-site.xml and execute:</p>
<p>$ <code>ozone admin reconfig --service=SCM --address=hadoop1:9860 start</code><br>
SCM: Started OM reconfiguration task on node [hadoop1:9860].</p>
<p>$ <code>ozone admin reconfig --service=SCM --address=hadoop1:9860 status</code><br>
SCM: Reconfiguring status for node [hadoop1:9860]: started at Wed Dec 28 19:04:44 CST 2022 and finished at Wed Dec 28 19:04:44 CST 2022.<br>
SUCCESS: Changed property ozone.administrators<br>
From: &ldquo;hadoop&rdquo;<br>
To: &ldquo;hadoop,bigdata&rdquo;</p>
<p>$ <code>ozone admin reconfig --service=SCM -address=hadoop1:9860 properties</code><br>
SCM: Node [hadoop1:9860] Reconfigurable properties:<br>
ozone.administrators</p>
</blockquote>
<h2 id="datanode-reconfigurability">Datanode Reconfigurability</h2>
<blockquote>
<p>For example, modify <code>ozone.example.config</code> in ozone-site.xml and execute:</p>
<p>$ <code>ozone admin reconfig --service=DATANODE --address=hadoop1:19864 start</code><br>
Datanode: Started reconfiguration task on node [hadoop1:19864].</p>
<p>$ <code>ozone admin reconfig --service=DATANODE --address=hadoop1:19864 status</code><br>
Datanode: Reconfiguring status for node [hadoop1:19864]: started at Wed Dec 28 19:04:44 CST 2022 and finished at Wed Dec 28 19:04:44 CST 2022.<br>
SUCCESS: Changed property ozone.example.config<br>
From: &ldquo;old&rdquo;<br>
To: &ldquo;new&rdquo;</p>
<p>$ <code>ozone admin reconfig --service=DATANODE -address=hadoop1:19864 properties</code><br>
Datanode: Node [hadoop1:19864] Reconfigurable properties:<br>
ozone.example.config</p>
</blockquote>
<h3 id="batch-operation">Batch operation</h3>
<p>If you want to perform a batch operations on the Datanode, you can set the <code>--in-service-datanodes</code> flag.
This will send reconfiguration requests to all available DataNodes in the <code>IN_SERVICE</code>operational state.<br>
Currently, only Datanode supports batch operations<br></p>
<blockquote>
<p>For example, to list the reconfigurable properties of all Datanodes:<br>
$ <code>ozone admin reconfig --service=DATANODE --in-service-datanodes properties</code><br>
Datanode: Node [hadoop1:19864] Reconfigurable properties:<br>
ozone.example.config<br>
Datanode: Node [hadoop2:19864] Reconfigurable properties:<br>
ozone.example.config<br>
Datanode: Node [hadoop3:19864] Reconfigurable properties:<br>
ozone.example.config<br>
Reconfig successfully 3 nodes, failure 0 nodes.<br></p>
</blockquote>
<a class="btn btn-success btn-lg" href="../feature/s3-multi-tenancy-setup.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.5.0-SNAPSHOT, Last Modified: February 26, 2024 <a class="hide-child link primary-color" href="https://github.com/apache/ozone/commit/1b48186a0107711235abcd2636977ae0242f6be8">1b48186</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>