blob: a03804773d6ad0321cdf3a75d410ff32dd2e4a3d [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
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.
-->
<!-- Do not modify this file directly. Instead, copy entries that you -->
<!-- wish to modify from this file into ozone-site.xml and change them -->
<!-- there. If ozone-site.xml does not already exist, create it. -->
<!--Tags supported are OZONE, CBLOCK, MANAGEMENT, SECURITY, PERFORMANCE, -->
<!--DEBUG, CLIENT, SERVER, OM, SCM, CRITICAL, RATIS, CONTAINER, REQUIRED, -->
<!--REST, STORAGE, PIPELINE, STANDALONE -->
<configuration>
<!--Container Settings used by Datanode-->
<property>
<name>ozone.container.cache.size</name>
<value>1024</value>
<tag>PERFORMANCE, CONTAINER, STORAGE</tag>
<description>The open container is cached on the data node side. We maintain
an LRU
cache for caching the recently used containers. This setting controls the
size of that cache.
</description>
</property>
<property>
<name>dfs.container.ipc</name>
<value>9859</value>
<tag>OZONE, CONTAINER, MANAGEMENT</tag>
<description>The ipc port number of container.</description>
</property>
<property>
<name>dfs.container.ipc.random.port</name>
<value>false</value>
<tag>OZONE, DEBUG, CONTAINER</tag>
<description>Allocates a random free port for ozone container. This is used
only while
running unit tests.
</description>
</property>
<property>
<name>dfs.container.chunk.write.sync</name>
<value>false</value>
<tag>OZONE, CONTAINER, MANAGEMENT</tag>
<description>Determines whether the chunk writes in the container happen as
sync I/0 or buffered I/O operation.
</description>
</property>
<property>
<name>dfs.container.ratis.statemachinedata.sync.timeout</name>
<value>10s</value>
<tag>OZONE, DEBUG, CONTAINER, RATIS</tag>
<description>Timeout for StateMachine data writes by Ratis.
</description>
</property>
<property>
<name>dfs.container.ratis.statemachinedata.sync.retries</name>
<value>-1</value>
<tag>OZONE, DEBUG, CONTAINER, RATIS</tag>
<description>Number of times the WriteStateMachineData op will be tried
before failing, if this value is -1, then this retries indefinitely.
</description>
</property>
<property>
<name>dfs.container.ratis.log.queue.num-elements</name>
<value>1024</value>
<tag>OZONE, DEBUG, CONTAINER, RATIS</tag>
<description>Limit for the number of operations in Ratis Log Worker.
</description>
</property>
<property>
<name>dfs.container.ratis.log.queue.byte-limit</name>
<value>4GB</value>
<tag>OZONE, DEBUG, CONTAINER, RATIS</tag>
<description>Byte limit for Ratis Log Worker queue.
</description>
</property>
<property>
<name>dfs.container.ratis.log.appender.queue.num-elements</name>
<value>1</value>
<tag>OZONE, DEBUG, CONTAINER, RATIS</tag>
<description>Limit for number of append entries in ratis leader's
log appender queue.
</description>
</property>
<property>
<name>dfs.container.ratis.log.appender.queue.byte-limit</name>
<value>32MB</value>
<tag>OZONE, DEBUG, CONTAINER, RATIS</tag>
<description>Byte limit for ratis leader's log appender queue.
</description>
</property>
<property>
<name>dfs.container.ratis.log.purge.gap</name>
<value>1000000</value>
<tag>OZONE, DEBUG, CONTAINER, RATIS</tag>
<description>Purge gap between the last purged commit index
and the current index, when the leader decides to purge its log.
</description>
</property>
<property>
<name>dfs.container.ratis.datanode.storage.dir</name>
<value/>
<tag>OZONE, CONTAINER, STORAGE, MANAGEMENT, RATIS</tag>
<description>This directory is used for storing Ratis metadata like logs. If
this is
not set then default metadata dirs is used. A warning will be logged if
this not set. Ideally, this should be mapped to a fast disk like an SSD.
</description>
</property>
<property>
<name>hdds.datanode.dir</name>
<value/>
<tag>OZONE, CONTAINER, STORAGE, MANAGEMENT</tag>
<description>Determines where on the local filesystem HDDS data will be
stored. Defaults to dfs.datanode.data.dir if not specified.
The directories should be tagged with corresponding storage types
([SSD]/[DISK]/[ARCHIVE]/[RAM_DISK]) for storage policies. The default
storage type will be DISK if the directory does not have a storage type
tagged explicitly.
</description>
</property>
<property>
<name>hdds.datanode.volume.choosing.policy</name>
<value/>
<tag>OZONE, CONTAINER, STORAGE, MANAGEMENT</tag>
<description>
The class name of the policy for choosing volumes in the list of
directories. Defaults to
org.apache.hadoop.ozone.container.common.volume.RoundRobinVolumeChoosingPolicy.
This volume choosing policy selects volumes in a round-robin order.
</description>
</property>
<property>
<name>dfs.container.ratis.enabled</name>
<value>false</value>
<tag>OZONE, MANAGEMENT, PIPELINE, RATIS</tag>
<description>Ozone supports different kinds of replication pipelines. Ratis
is one of
the replication pipeline supported by ozone.
</description>
</property>
<property>
<name>dfs.container.ratis.ipc</name>
<value>9858</value>
<tag>OZONE, CONTAINER, PIPELINE, RATIS, MANAGEMENT</tag>
<description>The ipc port number of container.</description>
</property>
<property>
<name>dfs.container.ratis.ipc.random.port</name>
<value>false</value>
<tag>OZONE,DEBUG</tag>
<description>Allocates a random free port for ozone ratis port for the
container. This
is used only while running unit tests.
</description>
</property>
<property>
<name>dfs.container.ratis.rpc.type</name>
<value>GRPC</value>
<tag>OZONE, RATIS, MANAGEMENT</tag>
<description>Ratis supports different kinds of transports like netty, GRPC,
Hadoop RPC
etc. This picks one of those for this cluster.
</description>
</property>
<property>
<name>dfs.ratis.snapshot.threshold</name>
<value>10000</value>
<tag>OZONE, RATIS</tag>
<description>Number of transactions after which a ratis snapshot should be
taken.
</description>
</property>
<property>
<name>dfs.container.ratis.statemachine.max.pending.apply-transactions</name>
<value>10000</value>
<tag>OZONE, RATIS</tag>
<description>Maximum number of pending apply transactions in a data
pipeline. The default value is kept same as default snapshot threshold
dfs.ratis.snapshot.threshold.
</description>
</property>
<property>
<name>dfs.container.ratis.num.write.chunk.threads</name>
<value>60</value>
<tag>OZONE, RATIS, PERFORMANCE</tag>
<description>Maximum number of threads in the thread pool that Ratis
will use for writing chunks (60 by default).
</description>
</property>
<property>
<name>dfs.container.ratis.replication.level</name>
<value>MAJORITY</value>
<tag>OZONE, RATIS</tag>
<description>Replication level to be used by datanode for submitting a
container command to ratis. Available replication levels are ALL and
MAJORTIY, MAJORITY is used as the default replication level.
</description>
</property>
<property>
<name>dfs.container.ratis.num.container.op.executors</name>
<value>10</value>
<tag>OZONE, RATIS, PERFORMANCE</tag>
<description>Number of executors that will be used by Ratis to execute
container ops.(10 by default).
</description>
</property>
<property>
<name>dfs.container.ratis.segment.size</name>
<value>1MB</value>
<tag>OZONE, RATIS, PERFORMANCE</tag>
<description>The size of the raft segment used by Apache Ratis on datanodes.
(1 MB by default)
</description>
</property>
<property>
<name>dfs.container.ratis.segment.preallocated.size</name>
<value>16KB</value>
<tag>OZONE, RATIS, PERFORMANCE</tag>
<description>The size of the buffer which is preallocated for raft segment
used by Apache Ratis on datanodes.(16 KB by default)
</description>
</property>
<property>
<name>dfs.container.ratis.statemachine.cache.expiry.interval</name>
<value>10s</value>
<tag>OZONE, RATIS, PERFORMANCE</tag>
<description>The interval till which the stateMachine data in ratis
will be cached inside the ContainerStateMachine.
</description>
</property>
<property>
<name>dfs.ratis.client.request.timeout.duration</name>
<value>3s</value>
<tag>OZONE, RATIS, MANAGEMENT</tag>
<description>The timeout duration for ratis client request.It should be
set greater than leader election timeout in Ratis.
</description>
</property>
<property>
<name>dfs.ratis.client.request.max.retries</name>
<value>180</value>
<tag>OZONE, RATIS, MANAGEMENT</tag>
<description>Number of retries for ratis client request.</description>
</property>
<property>
<name>dfs.ratis.client.request.retry.interval</name>
<value>1000ms</value>
<tag>OZONE, RATIS, MANAGEMENT</tag>
<description>Interval between successive retries for a ratis client request.
</description>
</property>
<property>
<name>dfs.ratis.server.retry-cache.timeout.duration</name>
<value>600000ms</value>
<tag>OZONE, RATIS, MANAGEMENT</tag>
<description>Retry Cache entry timeout for ratis server.</description>
</property>
<property>
<name>dfs.ratis.server.request.timeout.duration</name>
<value>3s</value>
<tag>OZONE, RATIS, MANAGEMENT</tag>
<description>The timeout duration for ratis server request.</description>
</property>
<property>
<name>dfs.ratis.leader.election.minimum.timeout.duration</name>
<value>5s</value>
<tag>OZONE, RATIS, MANAGEMENT</tag>
<description>The minimum timeout duration for ratis leader election.
Default is 5s.
</description>
</property>
<property>
<name>dfs.ratis.server.failure.duration</name>
<value>120s</value>
<tag>OZONE, RATIS, MANAGEMENT</tag>
<description>The timeout duration for ratis server failure detection,
once the threshold has reached, the ratis state machine will be informed
about the failure in the ratis ring
</description>
</property>
<property>
<name>hdds.node.report.interval</name>
<value>60000ms</value>
<tag>OZONE, CONTAINER, MANAGEMENT</tag>
<description>Time interval of the datanode to send node report. Each
datanode periodically send node report to SCM. Unit could be
defined with postfix (ns,ms,s,m,h,d)</description>
</property>
<property>
<name>hdds.container.report.interval</name>
<value>60000ms</value>
<tag>OZONE, CONTAINER, MANAGEMENT</tag>
<description>Time interval of the datanode to send container report. Each
datanode periodically send container report to SCM. Unit could be
defined with postfix (ns,ms,s,m,h,d)</description>
</property>
<property>
<name>hdds.command.status.report.interval</name>
<value>60000ms</value>
<tag>OZONE, CONTAINER, MANAGEMENT</tag>
<description>Time interval of the datanode to send status of command
execution. Each datanode periodically the execution status of commands
received from SCM to SCM. Unit could be defined with postfix
(ns,ms,s,m,h,d)</description>
</property>
<property>
<name>hdds.pipeline.report.interval</name>
<value>60000ms</value>
<tag>OZONE, PIPELINE, MANAGEMENT</tag>
<description>Time interval of the datanode to send pipeline report. Each
datanode periodically send pipeline report to SCM. Unit could be
defined with postfix (ns,ms,s,m,h,d)</description>
</property>
<property>
<name>hdds.prometheus.endpoint.enabled</name>
<value>true</value>
<tag>OZONE, MANAGEMENT</tag>
<description>Enable prometheus compatible metric page on the HTTP
servers.
</description>
</property>
<property>
<name>hdds.profiler.endpoint.enabled</name>
<value>false</value>
<tag>OZONE, MANAGEMENT</tag>
<description>Enable /prof java profiler servlet page on HTTP server.
</description>
</property>
<!--Ozone Settings-->
<property>
<name>ozone.administrators</name>
<value/>
<tag>OZONE, SECURITY</tag>
<description>Ozone administrator users delimited by the comma.
If not set, only the user who launches an ozone service will be the admin
user. This property must be set if ozone services are started by different
users. Otherwise, the RPC layer will reject calls from other servers which
are started by users not in the list.
</description>
</property>
<property>
<name>ozone.block.deleting.container.limit.per.interval</name>
<value>10</value>
<tag>OZONE, PERFORMANCE, SCM</tag>
<description>A maximum number of containers to be scanned by block deleting
service per
time interval. The block deleting service spawns a thread to handle block
deletions in a container. This property is used to throttle the number of
threads spawned for block deletions.
</description>
</property>
<property>
<name>ozone.block.deleting.limit.per.task</name>
<value>1000</value>
<tag>OZONE, PERFORMANCE, SCM</tag>
<description>A maximum number of blocks to be deleted by block deleting
service per
time interval. This property is used to throttle the actual number of
block deletions on a data node per container.
</description>
</property>
<property>
<name>ozone.block.deleting.service.interval</name>
<value>1m</value>
<tag>OZONE, PERFORMANCE, SCM</tag>
<description>Time interval of the block deleting service.
The block deleting service runs on each datanode periodically and
deletes blocks queued for deletion. Unit could be defined with
postfix (ns,ms,s,m,h,d)
</description>
</property>
<property>
<name>ozone.block.deleting.service.timeout</name>
<value>300000ms</value>
<tag>OZONE, PERFORMANCE, SCM</tag>
<description>A timeout value of block deletion service. If this is set
greater than 0,
the service will stop waiting for the block deleting completion after this
time. If timeout happens to a large proportion of block deletion, this
needs to be increased with ozone.block.deleting.limit.per.task. This
setting supports multiple time unit suffixes as described in
dfs.heartbeat.interval. If no suffix is specified, then milliseconds is
assumed.
</description>
</property>
<property>
<name>ozone.UnsafeByteOperations.enabled</name>
<value>true</value>
<tag>OZONE, PERFORMANCE, CLIENT</tag>
<description>It specifies whether to use unsafe or safe buffer to byteString
copy.
</description>
</property>
<property>
<name>ozone.client.connection.timeout</name>
<value>5000ms</value>
<tag>OZONE, PERFORMANCE, CLIENT</tag>
<description>Connection timeout for Ozone client in milliseconds.
</description>
</property>
<property>
<name>ozone.client.stream.buffer.flush.size</name>
<value>64MB</value>
<tag>OZONE, CLIENT</tag>
<description>Size which determines at what buffer position , a partial
flush will be initiated during write. It should be ideally a multiple
of chunkSize.
</description>
</property>
<property>
<name>ozone.client.stream.buffer.max.size</name>
<value>128MB</value>
<tag>OZONE, CLIENT</tag>
<description>Size which determines at what buffer position,
write call be blocked till acknowledgement of the first partial flush
happens by all servers.
</description>
</property>
<property>
<name>ozone.client.watch.request.timeout</name>
<value>30s</value>
<tag>OZONE, CLIENT</tag>
<description>Timeout for the watch API in Ratis client to acknowledge
a particular request getting replayed to all servers.
</description>
</property>
<property>
<name>ozone.client.max.retries</name>
<value>100</value>
<tag>OZONE, CLIENT</tag>
<description>Maximum number of retries by Ozone Client on encountering
exception while writing a key.
</description>
</property>
<property>
<name>ozone.client.retry.interval</name>
<value>0ms</value>
<tag>OZONE, CLIENT</tag>
<description>Indicates the time duration a client will wait before
retrying a write key request on encountering an exception. By default
there is no wait.
</description>
</property>
<property>
<name>ozone.client.socket.timeout</name>
<value>5000ms</value>
<tag>OZONE, CLIENT</tag>
<description>Socket timeout for Ozone client. Unit could be defined with
postfix (ns,ms,s,m,h,d)</description>
</property>
<property>
<name>ozone.enabled</name>
<value>false</value>
<tag>OZONE, REQUIRED</tag>
<description>
Status of the Ozone Object Storage service is enabled.
Set to true to enable Ozone.
Set to false to disable Ozone.
Unless this value is set to true, Ozone services will not be started in
the cluster.
Please note: By default ozone is disabled on a hadoop cluster.
</description>
</property>
<property>
<name>ozone.key.deleting.limit.per.task</name>
<value>1000</value>
<tag>OM, PERFORMANCE</tag>
<description>
A maximum number of keys to be scanned by key deleting service
per time interval in OM. Those keys are sent to delete metadata and
generate transactions in SCM for next async deletion between SCM
and DataNode.
</description>
</property>
<property>
<name>ozone.om.service.ids</name>
<value></value>
<tag>OM, HA</tag>
<description>
Comma-separated list of OM service Ids.
If not set, the default value of "om-service-value" is assigned as the
OM service ID.
</description>
</property>
<property>
<name>ozone.om.nodes.EXAMPLEOMSERVICEID</name>
<value></value>
<tag>OM, HA</tag>
<description>
Comma-separated list of OM node Ids for a given OM service ID (eg.
EXAMPLEOMSERVICEID). The OM service ID should be the value (one of the
values if there are multiple) set for the parameter ozone.om.service.ids.
Unique identifiers for each OM Node, delimited by commas. This will be
used by OzoneManagers in HA setup to determine all the OzoneManagers
belonging to the same OMservice in the cluster. For example, if you
used “omService1” as the OM service ID previously, and you wanted to
use “om1”, “om2” and "om3" as the individual IDs of the OzoneManagers,
you would configure a property ozone.om.nodes.omService1, and its value
"om1,om2,om3".
</description>
</property>
<property>
<name>ozone.om.node.id</name>
<value></value>
<tag>OM, HA</tag>
<description>
The ID of this OM node. If the OM node ID is not configured it
is determined automatically by matching the local node's address
with the configured address.
If node ID is not deterministic from the configuration, then it is set
to the OmId from the OM version file.
</description>
</property>
<property>
<name>ozone.om.address</name>
<value>0.0.0.0:9862</value>
<tag>OM, REQUIRED</tag>
<description>
The address of the Ozone OM service. This allows clients to discover
the address of the OM.
</description>
</property>
<property>
<name>ozone.om.handler.count.key</name>
<value>20</value>
<tag>OM, PERFORMANCE</tag>
<description>
The number of RPC handler threads for OM service endpoints.
</description>
</property>
<property>
<name>ozone.om.http-address</name>
<value>0.0.0.0:9874</value>
<tag>OM, MANAGEMENT</tag>
<description>
The address and the base port where the OM web UI will listen on.
If the port is 0, then the server will start on a free port. However, it
is best to specify a well-known port, so it is easy to connect and see
the OM management UI.
</description>
</property>
<property>
<name>ozone.om.http-bind-host</name>
<value>0.0.0.0</value>
<tag>OM, MANAGEMENT</tag>
<description>
The actual address the OM web server will bind to. If this optional
the address is set, it overrides only the hostname portion of
ozone.om.http-address.
</description>
</property>
<property>
<name>ozone.om.http.enabled</name>
<value>true</value>
<tag>OM, MANAGEMENT</tag>
<description>
Property to enable or disable OM web user interface.
</description>
</property>
<property>
<name>ozone.om.https-address</name>
<value>0.0.0.0:9875</value>
<tag>OM, MANAGEMENT, SECURITY</tag>
<description>
The address and the base port where the OM web UI will listen
on using HTTPS.
If the port is 0 then the server will start on a free port.
</description>
</property>
<property>
<name>ozone.om.https-bind-host</name>
<value>0.0.0.0</value>
<tag>OM, MANAGEMENT, SECURITY</tag>
<description>
The actual address the OM web server will bind to using HTTPS.
If this optional address is set, it overrides only the hostname portion of
ozone.om.https-address.
</description>
</property>
<property>
<name>ozone.om.keytab.file</name>
<value/>
<tag>OM, SECURITY</tag>
<description>
The keytab file for Kerberos authentication in OM.
</description>
</property>
<property>
<name>ozone.om.db.cache.size.mb</name>
<value>128</value>
<tag>OM, PERFORMANCE</tag>
<description>
The size of OM DB cache in MB that used for caching files.
This value is set to an abnormally low value in the default configuration.
That is to make unit testing easy. Generally, this value should be set to
something like 16GB or more, if you intend to use Ozone at scale.
A large value for this key allows a proportionally larger amount of OM
metadata to be cached in memory. This makes OM operations faster.
</description>
</property>
<property>
<name>ozone.om.user.max.volume</name>
<value>1024</value>
<tag>OM, MANAGEMENT</tag>
<description>
The maximum number of volumes a user can have on a cluster.Increasing or
decreasing this number has no real impact on ozone cluster. This is
defined only for operational purposes. Only an administrator can create a
volume, once a volume is created there are no restrictions on the number
of buckets or keys inside each bucket a user can create.
</description>
</property>
<property>
<name>ozone.om.db.dirs</name>
<value/>
<tag>OZONE, OM, STORAGE, PERFORMANCE</tag>
<description>
Directory where the OzoneManager stores its metadata. This should
be specified as a single directory. If the directory does not
exist then the OM will attempt to create it.
If undefined, then the OM will log a warning and fallback to
ozone.metadata.dirs. This fallback approach is not recommended for
production environments.
</description>
</property>
<property>
<name>ozone.metadata.dirs</name>
<value/>
<tag>OZONE, OM, SCM, CONTAINER, STORAGE, REQUIRED</tag>
<description>
This setting is the fallback location for SCM, OM, Recon and DataNodes
to store their metadata. This setting may be used only in test/PoC
clusters to simplify configuration.
For production clusters or any time you care about performance, it is
recommended that ozone.om.db.dirs, ozone.scm.db.dirs and
dfs.container.ratis.datanode.storage.dir be configured separately.
</description>
</property>
<property>
<name>ozone.metastore.impl</name>
<value>RocksDB</value>
<tag>OZONE, OM, SCM, CONTAINER, STORAGE</tag>
<description>
Ozone metadata store implementation. Ozone metadata are well
distributed to multiple services such as ozoneManager, scm. They are stored in
some local key-value databases. This property determines which database
library to use. Supported value is either LevelDB or RocksDB.
</description>
</property>
<property>
<name>ozone.metastore.rocksdb.statistics</name>
<value>OFF</value>
<tag>OZONE, OM, SCM, STORAGE, PERFORMANCE</tag>
<description>
The statistics level of the rocksdb store. If you use any value from
org.rocksdb.StatsLevel (eg. ALL or EXCEPT_DETAILED_TIMERS), the rocksdb
statistics will be exposed over JMX bean with the choosed setting. Set
it to OFF to not initialize rocksdb statistics at all. Please note that
collection of statistics could have 5-10% performance penalty.
Check the rocksdb documentation for more details.
</description>
</property>
<property>
<name>ozone.scm.db.dirs</name>
<value/>
<tag>OZONE, SCM, STORAGE, PERFORMANCE</tag>
<description>
Directory where the StorageContainerManager stores its metadata.
This should be specified as a single directory. If the directory
does not exist then the SCM will attempt to create it.
If undefined, then the SCM will log a warning and fallback to
ozone.metadata.dirs. This fallback approach is not recommended for
production environments.
</description>
</property>
<property>
<name>ozone.scm.block.client.address</name>
<value/>
<tag>OZONE, SCM</tag>
<description>The address of the Ozone SCM block client service. If not
defined value of ozone.scm.client.address is used.
</description>
</property>
<property>
<name>ozone.scm.block.client.bind.host</name>
<value>0.0.0.0</value>
<tag>OZONE, SCM</tag>
<description>
The hostname or IP address used by the SCM block client
endpoint to bind.
</description>
</property>
<property>
<name>ozone.scm.block.client.port</name>
<value>9863</value>
<tag>OZONE, SCM</tag>
<description>
The port number of the Ozone SCM block client service.
</description>
</property>
<property>
<name>ozone.scm.block.deletion.max.retry</name>
<value>4096</value>
<tag>OZONE, SCM</tag>
<description>
SCM wraps up many blocks in a deletion transaction and sends that to data
node for physical deletion periodically. This property determines how many
times SCM is going to retry sending a deletion operation to the data node.
</description>
</property>
<property>
<name>ozone.scm.block.size</name>
<value>256MB</value>
<tag>OZONE, SCM</tag>
<description>
The default size of a scm block. This is maps to the default
Ozone block size.
</description>
</property>
<property>
<name>ozone.scm.chunk.size</name>
<value>16MB</value>
<tag>OZONE, SCM, CONTAINER, PERFORMANCE</tag>
<description>
The chunk size for reading/writing chunk operations in bytes.
The chunk size defaults to 8MB. If the value configured is more than the
maximum size (16MB), it will be reset to the maximum size. This maps to
the network packet sizes and file write operations in the client to
datanode protocol.
</description>
</property>
<property>
<name>ozone.scm.client.address</name>
<value/>
<tag>OZONE, SCM, REQUIRED</tag>
<description>
The address of the Ozone SCM client service. This is a required setting.
It is a string in the host:port format. The port number is optional
and defaults to 9860.
</description>
</property>
<property>
<name>ozone.scm.client.bind.host</name>
<value>0.0.0.0</value>
<tag>OZONE, SCM, MANAGEMENT</tag>
<description>The hostname or IP address used by the SCM client endpoint to
bind.
This setting is used by the SCM only and never used by clients.
The setting can be useful in multi-homed setups to restrict the
availability of the SCM client service to a specific interface.
The default is appropriate for most clusters.
</description>
</property>
<property>
<name>ozone.scm.client.port</name>
<value>9860</value>
<tag>OZONE, SCM, MANAGEMENT</tag>
<description>The port number of the Ozone SCM client service.</description>
</property>
<property>
<name>ozone.scm.keyvalue.container.deletion-choosing.policy</name>
<value>
org.apache.hadoop.ozone.container.common.impl.TopNOrderedContainerDeletionChoosingPolicy
</value>
<tag>OZONE, MANAGEMENT</tag>
<description>
The policy used for choosing desired keyvalue containers for block deletion.
Datanode selects some containers to process block deletion
in a certain interval defined by ozone.block.deleting.service.interval.
The number of containers to process in each interval is defined
by ozone.block.deleting.container.limit.per.interval. This property is
used to configure the policy applied while selecting containers.
There are two policies supporting now:
RandomContainerDeletionChoosingPolicy and
TopNOrderedContainerDeletionChoosingPolicy.
org.apache.hadoop.ozone.container.common.impl.RandomContainerDeletionChoosingPolicy
implements a simply random policy that to return a random list of
containers.
org.apache.hadoop.ozone.container.common.impl.TopNOrderedContainerDeletionChoosingPolicy
implements a policy that choosing top count number of containers in a
pending-deletion-blocks's num
based descending order.
</description>
</property>
<property>
<name>ozone.scm.container.placement.impl</name>
<value>
org.apache.hadoop.hdds.scm.container.placement.algorithms.SCMContainerPlacementRandom
</value>
<tag>OZONE, MANAGEMENT</tag>
<description>
The full name of class which implements
org.apache.hadoop.hdds.scm.PlacementPolicy.
The class decides which datanode will be used to host the container replica. If not set,
org.apache.hadoop.hdds.scm.container.placement.algorithms.SCMContainerPlacementRandom will be used as default
value.
</description>
</property>
<property>
<name>ozone.scm.pipeline.owner.container.count</name>
<value>3</value>
<tag>OZONE, SCM, PIPELINE</tag>
<description>Number of containers per owner in a pipeline.
</description>
</property>
<property>
<name>ozone.scm.datanode.max.pipeline.engagement</name>
<value>5</value>
<tag>OZONE, SCM, PIPELINE</tag>
<description>Max number of pipelines per datanode can be engaged in.
</description>
</property>
<property>
<name>ozone.scm.container.size</name>
<value>5GB</value>
<tag>OZONE, PERFORMANCE, MANAGEMENT</tag>
<description>
Default container size used by Ozone.
There are two considerations while picking this number. The speed at which
a container can be replicated, determined by the network speed and the
metadata that each container generates. So selecting a large number
creates less SCM metadata, but recovery time will be more. 5GB is a number
that maps to quick replication times in gigabit networks, but still
balances the amount of metadata.
</description>
</property>
<property>
<name>ozone.scm.datanode.address</name>
<value/>
<tag>OZONE, MANAGEMENT</tag>
<description>
The address of the Ozone SCM service used for internal
communication between the DataNodes and the SCM.
It is a string in the host:port format. The port number is optional
and defaults to 9861.
This setting is optional. If unspecified then the hostname portion
is picked from the ozone.scm.client.address setting and the
default service port of 9861 is chosen.
</description>
</property>
<property>
<name>ozone.scm.datanode.bind.host</name>
<value/>
<tag>OZONE, MANAGEMENT</tag>
<description>
The hostname or IP address used by the SCM service endpoint to
bind.
</description>
</property>
<property>
<name>ozone.scm.datanode.id.dir</name>
<value/>
<tag>OZONE, MANAGEMENT</tag>
<description>The path that datanodes will use to store the datanode ID.
If this value is not set, then datanode ID is created under the
metadata directory.
</description>
</property>
<property>
<name>ozone.scm.datanode.port</name>
<value>9861</value>
<tag>OZONE, MANAGEMENT</tag>
<description>
The port number of the Ozone SCM service.
</description>
</property>
<property>
<name>ozone.scm.db.cache.size.mb</name>
<value>128</value>
<tag>OZONE, PERFORMANCE</tag>
<description>SCM keeps track of the Containers in the cluster. This DB holds
the container metadata. This value is set to a small value to make the
unit
testing runs smooth. In production, we recommend a value of 16GB or
higher. This allows SCM to avoid disk I/O's while looking up the container
location.
</description>
</property>
<property>
<name>ozone.scm.dead.node.interval</name>
<value>10m</value>
<tag>OZONE, MANAGEMENT</tag>
<description>
The interval between heartbeats before a node is tagged as dead.
</description>
</property>
<property>
<name>ozone.scm.handler.count.key</name>
<value>10</value>
<tag>OZONE, MANAGEMENT, PERFORMANCE</tag>
<description>
The number of RPC handler threads for each SCM service
endpoint.
The default is appropriate for small clusters (tens of nodes).
Set a value that is appropriate for the cluster size. Generally, HDFS
recommends RPC handler count is set to 20 * log2(Cluster Size) with an
upper limit of 200. However, SCM will not have the same amount of
traffic as Namenode, so a value much smaller than that will work well too.
</description>
</property>
<property>
<name>hdds.heartbeat.interval</name>
<value>30s</value>
<tag>OZONE, MANAGEMENT</tag>
<description>
The heartbeat interval from a data node to SCM. Yes,
it is not three but 30, since most data nodes will heart beating via Ratis
heartbeats. If a client is not able to talk to a data node, it will notify
OM/SCM eventually. So a 30 second HB seems to work. This assumes that
replication strategy used is Ratis if not, this value should be set to
something smaller like 3 seconds.
ozone.scm.pipeline.close.timeout should also be adjusted accordingly,
if the default value for this config is not used.
</description>
</property>
<property>
<name>ozone.scm.heartbeat.log.warn.interval.count</name>
<value>10</value>
<tag>OZONE, MANAGEMENT</tag>
<description>
Defines how frequently we will log the missing of a heartbeat to SCM.
For example in the default case, we will write a warning message for each
ten consecutive heartbeats that we miss to SCM. This helps in reducing
clutter in a data node log, but trade off is that logs will have less of
this statement.
</description>
</property>
<property>
<name>ozone.scm.heartbeat.rpc-timeout</name>
<value>1s</value>
<tag>OZONE, MANAGEMENT</tag>
<description>
Timeout value for the RPC from Datanode to SCM.
</description>
</property>
<property>
<name>ozone.scm.heartbeat.thread.interval</name>
<value>3s</value>
<tag>OZONE, MANAGEMENT</tag>
<description>
When a heartbeat from the data node arrives on SCM, It is queued for
processing with the time stamp of when the heartbeat arrived. There is a
heartbeat processing thread inside SCM that runs at a specified interval.
This value controls how frequently this thread is run.
There are some assumptions build into SCM such as this value should allow
the heartbeat processing thread to run at least three times more
frequently than heartbeats and at least five times more than stale node
detection time. If you specify a wrong value, SCM will gracefully refuse
to run. For more info look at the node manager tests in SCM.
In short, you don't need to change this.
</description>
</property>
<property>
<name>ozone.scm.http-address</name>
<value>0.0.0.0:9876</value>
<tag>OZONE, MANAGEMENT</tag>
<description>
The address and the base port where the SCM web ui will listen on.
If the port is 0 then the server will start on a free port.
</description>
</property>
<property>
<name>ozone.scm.http-bind-host</name>
<value>0.0.0.0</value>
<tag>OZONE, MANAGEMENT</tag>
<description>
The actual address the SCM web server will bind to. If this
optional address is set, it overrides only the hostname portion of
ozone.scm.http-address.
</description>
</property>
<property>
<name>ozone.scm.http.enabled</name>
<value>true</value>
<tag>OZONE, MANAGEMENT</tag>
<description>
Property to enable or disable SCM web ui.
</description>
</property>
<property>
<name>ozone.scm.https-address</name>
<value>0.0.0.0:9877</value>
<tag>OZONE, MANAGEMENT</tag>
<description>
The address and the base port where the SCM web UI will listen
on using HTTPS.
If the port is 0 then the server will start on a free port.
</description>
</property>
<property>
<name>ozone.scm.https-bind-host</name>
<value>0.0.0.0</value>
<tag>OZONE, MANAGEMENT</tag>
<description>
The actual address the SCM web server will bind to using HTTPS.
If this optional address is set, it overrides only the hostname portion of
ozone.scm.https-address.
</description>
</property>
<property>
<name>ozone.scm.names</name>
<value/>
<tag>OZONE, REQUIRED</tag>
<description>
The value of this property is a set of DNS | DNS:PORT | IP
Address | IP:PORT. Written as a comma separated string. e.g. scm1,
scm2:8020, 7.7.7.7:7777.
This property allows datanodes to discover where SCM is, so that
datanodes can send heartbeat to SCM.
</description>
</property>
<property>
<name>ozone.scm.stale.node.interval</name>
<value>5m</value>
<tag>OZONE, MANAGEMENT</tag>
<description>
The interval for stale node flagging. Please
see ozone.scm.heartbeat.thread.interval before changing this value.
</description>
</property>
<property>
<name>ozone.trace.enabled</name>
<value>false</value>
<tag>OZONE, DEBUG</tag>
<description>
Setting this flag to true dumps the HTTP request/ response in
the logs. Very useful when debugging REST protocol.
</description>
</property>
<property>
<name>ozone.scm.container.creation.lease.timeout</name>
<value>60s</value>
<tag>OZONE, SCM</tag>
<description>
Container creation timeout in milliseconds to be used by SCM. When
BEGIN_CREATE event happens the container is moved from ALLOCATED to
CREATING state, SCM will now wait for the configured amount of time
to get COMPLETE_CREATE event if it doesn't receive it will move the
container to DELETING.
</description>
</property>
<property>
<name>ozone.key.preallocation.max.blocks</name>
<value>64</value>
<tag>OZONE, OM, PERFORMANCE</tag>
<description>
While allocating blocks from OM, this configuration limits the maximum
number of blocks being allocated. This configuration ensures that the
allocated block response do not exceed rpc payload limit. If client needs
more space for the write, separate block allocation requests will be made.
</description>
</property>
<property>
<name>ozone.client.list.cache</name>
<value>1000</value>
<tag>OZONE, PERFORMANCE</tag>
<description>
Configuration property to configure the cache size of client list calls.
</description>
</property>
<property>
<name>ozone.replication</name>
<value>3</value>
<tag>OZONE, CLIENT</tag>
<description>
Default replication value. The actual number of replications can be
specified when writing the key. The default is used if replication
is not specified. Supported values: 1 and 3.
</description>
</property>
<property>
<name>ozone.replication.type</name>
<value>RATIS</value>
<tag>OZONE, CLIENT</tag>
<description>
Default replication type to be used while writing key into ozone. The
value can be specified when writing the key, default is used when
nothing is specified. Supported values: RATIS, STAND_ALONE and CHAINED.
</description>
</property>
<property>
<name>hdds.container.close.threshold</name>
<value>0.9f</value>
<tag>OZONE, DATANODE</tag>
<description>
This determines the threshold to be used for closing a container.
When the container used percentage reaches this threshold,
the container will be closed. Value should be a positive, non-zero
percentage in float notation (X.Yf), with 1.0f meaning 100%.
</description>
</property>
<property>
<name>ozone.rest.client.http.connection.max</name>
<value>100</value>
<tag>OZONE, CLIENT</tag>
<description>
This defines the overall connection limit for the connection pool used in
RestClient.
</description>
</property>
<property>
<name>ozone.rest.client.http.connection.per-route.max</name>
<value>20</value>
<tag>OZONE, CLIENT</tag>
<description>
This defines the connection limit per one HTTP route/host. Total max
connection is limited by ozone.rest.client.http.connection.max property.
</description>
</property>
<property>
<name>ozone.open.key.cleanup.service.interval.seconds</name>
<value>86400</value>
<tag>OZONE, OM, PERFORMANCE</tag>
<description>
A background job periodically checks open key entries and delete the expired ones. This entry controls the
interval of this cleanup check.
</description>
</property>
<property>
<name>ozone.open.key.expire.threshold</name>
<value>86400</value>
<tag>OZONE, OM, PERFORMANCE</tag>
<description>
Controls how long an open key operation is considered active. Specifically, if a key
has been open longer than the value of this config entry, that open key is considered as
expired (e.g. due to client crash). Default to 24 hours.
</description>
</property>
<property>
<name>hadoop.tags.custom</name>
<value>OZONE,MANAGEMENT,SECURITY,PERFORMANCE,DEBUG,CLIENT,SERVER,OM,SCM,
CRITICAL,RATIS,CONTAINER,REQUIRED,REST,STORAGE,PIPELINE,STANDALONE,S3GATEWAY,RECON</value>
</property>
<property>
<name>ozone.tags.system</name>
<value>OZONE,MANAGEMENT,SECURITY,PERFORMANCE,DEBUG,CLIENT,SERVER,OM,SCM,
CRITICAL,RATIS,CONTAINER,REQUIRED,REST,STORAGE,PIPELINE,STANDALONE,S3GATEWAY,TOKEN,TLS,RECON</value>
</property>
<property>
<name>hdds.rest.rest-csrf.enabled</name>
<value>false</value>
<description>
If true, then enables Object Store REST server protection against
cross-site request forgery (CSRF).
</description>
</property>
<property>
<name>hdds.rest.http-address</name>
<value>0.0.0.0:9880</value>
<description>The http address of Object Store REST server inside the
datanode.</description>
</property>
<property>
<name>hdds.rest.netty.high.watermark</name>
<value>65535</value>
<description>
High watermark configuration to Netty for Object Store REST server.
</description>
</property>
<property>
<name>hdds.rest.netty.low.watermark</name>
<value>32768</value>
<description>
Low watermark configuration to Netty for Object Store REST server.
</description>
</property>
<property>
<name>hdds.datanode.plugins</name>
<value></value>
<description>
Comma-separated list of HDDS datanode plug-ins to be activated when
HDDS service starts as part of datanode.
</description>
</property>
<property>
<name>hdds.datanode.storage.utilization.warning.threshold</name>
<value>0.75</value>
<tag>OZONE, SCM, MANAGEMENT</tag>
<description>
If a datanode overall storage utilization exceeds more than this
value, a warning will be logged while processing the nodeReport in SCM.
</description>
</property>
<property>
<name>hdds.datanode.storage.utilization.critical.threshold</name>
<value>0.95</value>
<tag>OZONE, SCM, MANAGEMENT</tag>
<description>
If a datanode overall storage utilization exceeds more than this
value, the datanode will be marked out of space.
</description>
</property>
<property>
<name>hdds.command.status.report.interval</name>
<value>30s</value>
<tag>OZONE, DATANODE, MANAGEMENT</tag>
<description>Time interval of the datanode to send status of commands
executed since last report. Unit could be defined with
postfix (ns,ms,s,m,h,d)</description>
</property>
<property>
<name>ozone.scm.pipeline.destroy.timeout</name>
<value>66s</value>
<tag>OZONE, SCM, PIPELINE</tag>
<description>
Once a pipeline is closed, SCM should wait for the above configured time
before destroying a pipeline.
</description>
</property>
<property>
<name>ozone.scm.pipeline.creation.interval</name>
<value>120s</value>
<tag>OZONE, SCM, PIPELINE</tag>
<description>
SCM schedules a fixed interval job using the configured interval to
create pipelines.
</description>
</property>
<property>
<name>hdds.scm.safemode.threshold.pct</name>
<value>0.99</value>
<tag>HDDS,SCM,OPERATION</tag>
<description> % of containers which should have at least one
reported replica before SCM comes out of safe mode.
</description>
</property>
<property>
<name>hdds.scm.wait.time.after.safemode.exit</name>
<value>5m</value>
<tag>HDDS,SCM,OPERATION</tag>
<description> After exiting safemode, wait for configured interval of
time to start replication monitor and cleanup activities of unhealthy
pipelines.
</description>
</property>
<property>
<name>hdds.scm.safemode.enabled</name>
<value>true</value>
<tag>HDDS,SCM,OPERATION</tag>
<description>Boolean value to enable or disable SCM safe mode.
</description>
</property>
<property>
<name>hdds.scm.safemode.min.datanode</name>
<value>1</value>
<tag>HDDS,SCM,OPERATION</tag>
<description>Minimum DataNodes which should be registered to get SCM out of
safe mode.
</description>
</property>
<property>
<name>hdds.scm.safemode.pipeline-availability.check</name>
<value>false</value>
<tag>HDDS,SCM,OPERATION</tag>
<description>
Boolean value to enable pipeline availability check during SCM safe mode.
</description>
</property>
<property>
<name>hdds.scm.safemode.healthy.pipelie.pct</name>
<value>0.10</value>
<tag>HDDS,SCM,OPERATION</tag>
<description>
Percentage of healthy pipelines, where all 3 datanodes are reported in the
pipeline.
</description>
</property>
<property>
<name>hdds.scm.safemode.atleast.one.node.reported.pipeline.pct</name>
<value>0.90</value>
<tag>HDDS,SCM,OPERATION</tag>
<description>
Percentage of pipelines, where at least one datanode is reported in the
pipeline.
</description>
</property>
<property>
<name>hdds.container.scrub.enabled</name>
<value>false</value>
<tag>DATANODE</tag>
<description>
Boolean value to enable data and metadata scrubbing in the containers
running on each datanode.
</description>
</property>
<property>
<name>hdds.container.action.max.limit</name>
<value>20</value>
<tag>DATANODE</tag>
<description>
Maximum number of Container Actions sent by the datanode to SCM in a
single heartbeat.
</description>
</property>
<property>
<name>hdds.pipeline.action.max.limit</name>
<value>20</value>
<tag>DATANODE</tag>
<description>
Maximum number of Pipeline Actions sent by the datanode to SCM in a
single heartbeat.
</description>
</property>
<property>
<name>hdds.scm.watcher.timeout</name>
<value>10m</value>
<tag>OZONE, SCM, MANAGEMENT</tag>
<description>
Timeout for the watchers of the HDDS SCM CommandWatchers. After this
duration the Copy/Delete container commands will be sent again to the
datanode unless the datanode confirms the completion.
</description>
</property>
<property>
<name>hdds.db.profile</name>
<value>DISK</value>
<tag>OZONE, OM, PERFORMANCE</tag>
<description>This property allows user to pick a configuration
that tunes the RocksDB settings for the hardware it is running
on. Right now, we have SSD and DISK as profile options.</description>
</property>
<property>
<name>hdds.datanode.replication.work.dir</name>
<tag>DATANODE</tag>
<description>Temporary which is used during the container replication
betweeen datanodes. Should have enough space to store multiple container
(in compressed format), but doesn't require fast io access such as SSD.
</description>
</property>
<property>
<name>hdds.lock.max.concurrency</name>
<value>100</value>
<tag>HDDS</tag>
<description>Locks in HDDS/Ozone uses object pool to maintain active locks
in the system, this property defines the max limit for the locks that
will be maintained in the pool.
</description>
</property>
<property>
<name>ozone.s3g.authentication.kerberos.principal</name>
<value/>
<tag>OZONE, S3GATEWAY</tag>
<description>The server principal used by Ozone S3Gateway server. This is
typically set to
HTTP/_HOST@REALM.TLD The SPNEGO server principal begins with the prefix
HTTP/ by convention.</description>
</property>
<property>
<name>ozone.s3g.domain.name</name>
<value/>
<tag>OZONE, S3GATEWAY</tag>
<description>List of Ozone S3Gateway domain names. If multiple
domain names to be provided, they should be a "," seperated.
This parameter is only required when virtual host style pattern is
followed.</description>
</property>
<property>
<name>ozone.s3g.http-address</name>
<value>0.0.0.0:9878</value>
<tag>OZONE, S3GATEWAY</tag>
<description>The address and the base port where the Ozone S3Gateway
Server will
listen on.</description>
</property>
<property>
<name>ozone.s3g.http-bind-host</name>
<value>0.0.0.0</value>
<tag>OZONE, S3GATEWAY</tag>
<description>The actual address the HTTP server will bind to. If this optional address
is set, it overrides only the hostname portion of ozone.s3g.http-address.
This is useful for making the Ozone S3Gateway HTTP server listen on all
interfaces by setting it to 0.0.0.0.</description>
</property>
<property>
<name>ozone.s3g.http.enabled</name>
<value>true</value>
<tag>OZONE, S3GATEWAY</tag>
<description>The boolean which enables the Ozone S3Gateway server
.</description>
</property>
<property>
<name>ozone.s3g.https-address</name>
<value/>
<tag>OZONE, S3GATEWAY</tag>
<description>Ozone S3Gateway serverHTTPS server address and port
.</description>
</property>
<property>
<name>ozone.s3g.https-bind-host</name>
<value/>
<tag>OZONE, S3GATEWAY</tag>
<description>The actual address the HTTPS server will bind to. If this optional address
is set, it overrides only the hostname portion of ozone.s3g.https-address.
This is useful for making the Ozone S3Gateway HTTPS server listen on all
interfaces by setting it to 0.0.0.0.</description>
</property>
<property>
<name>ozone.s3g.keytab.file</name>
<value/>
<tag>OZONE, S3GATEWAY</tag>
<description>The keytab file used by the S3Gateway server to login as its
service principal. </description>
</property>
<property>
<name>ozone.om.save.metrics.interval</name>
<value>5m</value>
<tag>OZONE, OM</tag>
<description>Time interval used to store the omMetrics in to a
file. Background thread periodically stores the OM metrics in to a
file. Unit could be defined with postfix (ns,ms,s,m,h,d)
</description>
</property>
<property>
<name>ozone.security.enabled</name>
<value>false</value>
<tag> OZONE, SECURITY</tag>
<description>True if security is enabled for ozone. When this property is
true, hadoop.security.authentication should be Kerberos.
</description>
</property>
<property>
<name>ozone.client.checksum.type</name>
<value>CRC32</value>
<tag>OZONE, CLIENT, MANAGEMENT</tag>
<description>The checksum type [NONE/ CRC32/ CRC32C/ SHA256/ MD5] determines
which algorithm would be used to compute checksum for chunk data.
Default checksum type is SHA256.
</description>
</property>
<property>
<name>ozone.client.bytes.per.checksum</name>
<value>1MB</value>
<tag>OZONE, CLIENT, MANAGEMENT</tag>
<description>Checksum will be computed for every bytes per checksum number
of bytes and stored sequentially. The minimum value for this config is
256KB.
</description>
</property>
<property>
<name>ozone.client.verify.checksum</name>
<value>true</value>
<tag>OZONE, CLIENT, MANAGEMENT</tag>
<description>
Ozone client to verify checksum of the checksum blocksize data.
</description>
</property>
<property>
<name>ozone.om.ratis.enable</name>
<value>false</value>
<tag>OZONE, OM, RATIS, MANAGEMENT</tag>
<description>Property to enable or disable Ratis server on OM.
Please note - this is a temporary property to disable OM Ratis server.
</description>
</property>
<property>
<name>ozone.om.ratis.port</name>
<value>9872</value>
<tag>OZONE, OM, RATIS</tag>
<description>
The port number of the OzoneManager's Ratis server.
</description>
</property>
<property>
<name>ozone.om.ratis.rpc.type</name>
<value>GRPC</value>
<tag>OZONE, OM, RATIS, MANAGEMENT</tag>
<description>Ratis supports different kinds of transports like netty, GRPC,
Hadoop RPC etc. This picks one of those for this cluster.
</description>
</property>
<property>
<name>ozone.om.ratis.storage.dir</name>
<value/>
<tag>OZONE, OM, STORAGE, MANAGEMENT, RATIS</tag>
<description>This directory is used for storing OM's Ratis metadata like
logs. If this is not set then default metadata dirs is used. A warning
will be logged if this not set. Ideally, this should be mapped to a
fast disk like an SSD.
If undefined, OM ratis storage dir will fallback to ozone.metadata.dirs.
This fallback approach is not recommended for production environments.
</description>
</property>
<property>
<name>ozone.om.ratis.segment.size</name>
<value>16KB</value>
<tag>OZONE, OM, RATIS, PERFORMANCE</tag>
<description>The size of the raft segment used by Apache Ratis on OM.
(16 KB by default)
</description>
</property>
<property>
<name>ozone.om.ratis.segment.preallocated.size</name>
<value>16KB</value>
<tag>OZONE, OM, RATIS, PERFORMANCE</tag>
<description>The size of the buffer which is preallocated for raft segment
used by Apache Ratis on OM.(16 KB by default)
</description>
</property>
<property>
<name>ozone.om.ratis.log.appender.queue.num-elements</name>
<value>1024</value>
<tag>OZONE, DEBUG, OM, RATIS</tag>
<description>Number of operation pending with Raft's Log Worker.
</description>
</property>
<property>
<name>ozone.om.ratis.log.appender.queue.byte-limit</name>
<value>32MB</value>
<tag>OZONE, DEBUG, OM, RATIS</tag>
<description>Byte limit for Raft's Log Worker queue.
</description>
</property>
<property>
<name>ozone.om.ratis.log.purge.gap</name>
<value>1000000</value>
<tag>OZONE, OM, RATIS</tag>
<description>The minimum gap between log indices for Raft server to purge
its log segments after taking snapshot.
</description>
</property>
<property>
<name>ozone.om.ratis.snapshot.auto.trigger.threshold</name>
<value>400000</value>
<tag>OZONE, DEBUG, OM, RATIS</tag>
<description>The log index threshold after ratis will auto trigger
snapshot on the OM state machine.
</description>
</property>
<property>
<name>ozone.om.ratis.server.request.timeout</name>
<value>3s</value>
<tag>OZONE, OM, RATIS, MANAGEMENT</tag>
<description>The timeout duration for OM's ratis server request .</description>
</property>
<property>
<name>ozone.om.ratis.server.retry.cache.timeout</name>
<value>600000ms</value>
<tag>OZONE, OM, RATIS, MANAGEMENT</tag>
<description>Retry Cache entry timeout for OM's ratis server.</description>
</property>
<property>
<name>ozone.om.ratis.minimum.timeout</name>
<value>1s</value>
<tag>OZONE, OM, RATIS, MANAGEMENT</tag>
<description>The minimum timeout duration for OM's Ratis server rpc.
</description>
</property>
<property>
<name>ozone.om.ratis.client.request.timeout.duration</name>
<value>3s</value>
<tag>OZONE, OM, RATIS, MANAGEMENT</tag>
<description>The timeout duration for OM Ratis client request.
</description>
</property>
<property>
<name>ozone.om.ratis.client.request.max.retries</name>
<value>180</value>
<tag>OZONE, OM, RATIS, MANAGEMENT</tag>
<description>Number of retries for OM client request.</description>
</property>
<property>
<name>ozone.om.ratis.client.request.retry.interval</name>
<value>100ms</value>
<tag>OZONE, OM, RATIS, MANAGEMENT</tag>
<description>Interval between successive retries for a OM client request.
</description>
</property>
<property>
<name>ozone.om.leader.election.minimum.timeout.duration</name>
<value>1s</value>
<tag>OZONE, OM, RATIS, MANAGEMENT</tag>
<description>The minimum timeout duration for OM ratis leader election.
Default is 1s.
</description>
</property>
<property>
<name>ozone.om.ratis.server.failure.timeout.duration</name>
<value>120s</value>
<tag>OZONE, OM, RATIS, MANAGEMENT</tag>
<description>The timeout duration for ratis server failure detection,
once the threshold has reached, the ratis state machine will be informed
about the failure in the ratis ring.
</description>
</property>
<property>
<name>ozone.om.ratis.server.role.check.interval</name>
<value>15s</value>
<tag>OZONE, OM, RATIS, MANAGEMENT</tag>
<description>The interval between OM leader performing a role
check on its ratis server. Ratis server informs OM if it
loses the leader role. The scheduled check is an secondary
check to ensure that the leader role is updated periodically
.</description>
</property>
<property>
<name>ozone.om.ratis.snapshot.dir</name>
<value/>
<tag>OZONE, OM, STORAGE, MANAGEMENT, RATIS</tag>
<description>This directory is used for storing OM's snapshot
related files like the ratisSnapshotIndex and DB checkpoint from leader
OM.
If undefined, OM snapshot dir will fallback to ozone.om.ratis.storage.dir.
This fallback approach is not recommended for production environments.
</description>
</property>
<property>
<name>ozone.om.snapshot.provider.socket.timeout</name>
<value>5000s</value>
<tag>OZONE, OM, HA, MANAGEMENT</tag>
<description>
Socket timeout for HTTP call made by OM Snapshot Provider to request
OM snapshot from OM Leader.
</description>
</property>
<property>
<name>ozone.om.snapshot.provider.connection.timeout</name>
<value>5000s</value>
<tag>OZONE, OM, HA, MANAGEMENT</tag>
<description>
Connection timeout for HTTP call made by OM Snapshot Provider to request
OM snapshot from OM Leader.
</description>
</property>
<property>
<name>ozone.om.snapshot.provider.request.timeout</name>
<value>5000ms</value>
<tag>OZONE, OM, HA, MANAGEMENT</tag>
<description>
Connection request timeout for HTTP call made by OM Snapshot Provider to
request OM snapshot from OM Leader.
</description>
</property>
<property>
<name>ozone.acl.authorizer.class</name>
<value>org.apache.hadoop.ozone.security.acl.OzoneAccessAuthorizer</value>
<tag>OZONE, SECURITY, ACL</tag>
<description>Acl authorizer for Ozone.
</description>
</property>
<property>
<name>ozone.acl.enabled</name>
<value>false</value>
<tag>OZONE, SECURITY, ACL</tag>
<description>Key to enable/disable ozone acls.</description>
</property>
<property>
<name>hdds.scm.kerberos.keytab.file</name>
<value></value>
<tag> OZONE, SECURITY</tag>
<description> The keytab file used by each SCM daemon to login as its
service principal. The principal name is configured with
hdds.scm.kerberos.principal.
</description>
</property>
<property>
<name>hdds.scm.kerberos.principal</name>
<value></value>
<tag> OZONE, SECURITY</tag>
<description>The SCM service principal. Ex scm/_HOST@REALM.COM</description>
</property>
<property>
<name>ozone.om.kerberos.keytab.file</name>
<value></value>
<tag> OZONE, SECURITY</tag>
<description> The keytab file used by OzoneManager daemon to login as its
service principal. The principal name is configured with
ozone.om.kerberos.principal.
</description>
</property>
<property>
<name>ozone.om.kerberos.principal</name>
<value></value>
<tag> OZONE, SECURITY</tag>
<description>The OzoneManager service principal. Ex om/_HOST@REALM.COM</description>
</property>
<property>
<name>hdds.scm.http.kerberos.principal</name>
<value>HTTP/_HOST@EXAMPLE.COM</value>
</property>
<property>
<name>hdds.scm.http.kerberos.keytab</name>
<value>/etc/security/keytabs/HTTP.keytab</value>
</property>
<property>
<name>ozone.om.http.kerberos.principal</name>
<value>HTTP/_HOST@EXAMPLE.COM</value>
<description>
OzoneManager http server kerberos principal.
</description>
</property>
<property>
<name>ozone.om.http.kerberos.keytab</name>
<value>/etc/security/keytabs/HTTP.keytab</value>
<description>
OzoneManager http server kerberos keytab.
</description>
</property>
<property>
<name>hdds.key.len</name>
<value>2048</value>
<tag>SCM, HDDS, X509, SECURITY</tag>
<description>
SCM CA key length. This is an algorithm-specific metric, such as modulus length, specified in number of bits.
</description>
</property>
<property>
<name>hdds.key.dir.name</name>
<value>keys</value>
<tag>SCM, HDDS, X509, SECURITY</tag>
<description>
Directory to store public/private key for SCM CA. This is relative to ozone/hdds meteadata dir.
</description>
</property>
<property>
<name>hdds.block.token.expiry.time</name>
<value>1d</value>
<tag>OZONE, HDDS, SECURITY, TOKEN</tag>
<description>
Default value for expiry time of block token. This
setting supports multiple time unit suffixes as described in
dfs.heartbeat.interval. If no suffix is specified, then milliseconds is
assumed.
</description>
</property>
<property>
<name>hdds.block.token.enabled</name>
<value>false</value>
<tag>OZONE, HDDS, SECURITY, TOKEN</tag>
<description>True if block tokens are enabled, else false.</description>
</property>
<property>
<name>hdds.x509.file.name</name>
<value>certificate.crt</value>
<tag>OZONE, HDDS, SECURITY</tag>
<description>Certificate file name.</description>
</property>
<property>
<name>hdds.grpc.tls.provider</name>
<value>OPENSSL</value>
<tag>OZONE, HDDS, SECURITY, TLS</tag>
<description>HDDS GRPC server TLS provider.</description>
</property>
<property>
<name>hdds.grpc.tls.enabled</name>
<value>false</value>
<tag>OZONE, HDDS, SECURITY, TLS</tag>
<description>If HDDS GRPC server TLS is enabled.</description>
</property>
<property>
<name>hdds.x509.default.duration</name>
<value>P365D</value>
<tag>OZONE, HDDS, SECURITY</tag>
<description>Default duration for which x509 certificates issued by SCM are
valid. The formats accepted are based on the ISO-8601 duration format
PnDTnHnMn.nS</description>
</property>
<property>
<name>hdds.x509.dir.name</name>
<value>certs</value>
<tag>OZONE, HDDS, SECURITY</tag>
<description>X509 certificate directory name.</description>
</property>
<property>
<name>hdds.x509.max.duration</name>
<value>P1865D</value>
<tag>OZONE, HDDS, SECURITY</tag>
<description>Max time for which certificate issued by SCM CA are valid.
. The formats accepted are based on the ISO-8601 duration format
PnDTnHnMn.nS</description>
</property>
<property>
<name>hdds.x509.signature.algorithm</name>
<value>SHA256withRSA</value>
<tag>OZONE, HDDS, SECURITY</tag>
<description>X509 signature certificate.</description>
</property>
<property>
<name>ozone.scm.security.handler.count.key</name>
<value>2</value>
<tag>OZONE, HDDS, SECURITY</tag>
<description>Threads configured for SCMSecurityProtocolServer.</description>
</property>
<property>
<name>ozone.scm.security.service.address</name>
<value/>
<tag>OZONE, HDDS, SECURITY</tag>
<description>Address of SCMSecurityProtocolServer.</description>
</property>
<property>
<name>ozone.scm.security.service.bind.host</name>
<value>0.0.0.0</value>
<tag>OZONE, HDDS, SECURITY</tag>
<description>SCM security server host.</description>
</property>
<property>
<name>ozone.scm.security.service.port</name>
<value>9961</value>
<tag>OZONE, HDDS, SECURITY</tag>
<description>SCM security server port.</description>
</property>
<property>
<name>hdds.metadata.dir</name>
<value/>
<tag>X509, SECURITY</tag>
<description>
Absolute path to HDDS metadata dir.
</description>
</property>
<property>
<name>hdds.priv.key.file.name</name>
<value>private.pem</value>
<tag>X509, SECURITY</tag>
<description>
Name of file which stores private key generated for SCM CA.
</description>
</property>
<property>
<name>hdds.public.key.file.name</name>
<value>public.pem</value>
<tag>X509, SECURITY</tag>
<description>
Name of file which stores public key generated for SCM CA.
</description>
</property>
<property>
<name>ozone.manager.delegation.remover.scan.interval</name>
<value>3600000</value>
<description>
Time interval after which ozone secret manger scans for expired
delegation token.
</description>
</property>
<property>
<name>ozone.manager.delegation.token.renew-interval</name>
<value>1d</value>
<description>
Default time interval after which ozone delegation token will
require renewal before any further use.
</description>
</property>
<property>
<name>ozone.manager.delegation.token.max-lifetime</name>
<value>7d</value>
<description>
Default max time interval after which ozone delegation token will
not be renewed.
</description>
</property>
<property>
<name>ozone.fs.isolated-classloader</name>
<value></value>
<tag>OZONE, OZONEFS</tag>
<description>
Enable it for older hadoops to separate the classloading of all the
Ozone classes. With 'true' value, ozonefs can be used with older
hadoop versions as the hadoop3/ozone related classes are loaded by
an isolated classloader.
Default depends from the used jar. true for ozone-filesystem-lib-legacy
jar and false for the ozone-filesystem-lib-current.jar
</description>
</property>
<property>
<name>ozone.manager.db.checkpoint.transfer.bandwidthPerSec</name>
<value>0</value>
<tag>OZONE</tag>
<description>
Maximum bandwidth used for Ozone Manager DB checkpoint download through
the servlet.
</description>
</property>
<property>
<name>ozone.freon.http-address</name>
<value>0.0.0.0:9884</value>
<tag>OZONE, MANAGEMENT</tag>
<description>
The address and the base port where the FREON web ui will listen on.
If the port is 0 then the server will start on a free port.
</description>
</property>
<property>
<name>ozone.freon.http-bind-host</name>
<value>0.0.0.0</value>
<tag>OZONE, MANAGEMENT</tag>
<description>
The actual address the Freon web server will bind to. If this
optional address is set, it overrides only the hostname portion of
ozone.freon.http-address.
</description>
</property>
<property>
<name>ozone.freon.http.enabled</name>
<value>true</value>
<tag>OZONE, MANAGEMENT</tag>
<description>
Property to enable or disable FREON web ui.
</description>
</property>
<property>
<name>ozone.freon.https-address</name>
<value>0.0.0.0:9885</value>
<tag>OZONE, MANAGEMENT</tag>
<description>
The address and the base port where the Freon web server will listen
on using HTTPS.
If the port is 0 then the server will start on a free port.
</description>
</property>
<property>
<name>ozone.freon.https-bind-host</name>
<value>0.0.0.0</value>
<tag>OZONE, MANAGEMENT</tag>
<description>
The actual address the Freon web server will bind to using HTTPS.
If this optional address is set, it overrides only the hostname portion of
ozone.freon.http-address.
</description>
</property>
<property>
<name>ozone.freon.http.kerberos.principal</name>
<value>HTTP/_HOST@EXAMPLE.COM</value>
<tag>SECURITY</tag>
<description>
Security principal used by freon.
</description>
</property>
<property>
<name>ozone.freon.http.kerberos.keytab</name>
<value>/etc/security/keytabs/HTTP.keytab</value>
<tag>SECURITY</tag>
<description>
Keytab used by Freon.
</description>
</property>
<property>
<name>hdds.security.client.datanode.container.protocol.acl</name>
<value>*</value>
<tag>SECURITY</tag>
<description>
Comma separated list of users and groups allowed to access
client datanode container protocol.
</description>
</property>
<property>
<name>hdds.security.client.scm.block.protocol.acl</name>
<value>*</value>
<tag>SECURITY</tag>
<description>
Comma separated list of users and groups allowed to access
client scm block protocol.
</description>
</property>
<property>
<name>hdds.security.client.scm.certificate.protocol.acl</name>
<value>*</value>
<tag>SECURITY</tag>
<description>
Comma separated list of users and groups allowed to access
client scm certificate protocol.
</description>
</property>
<property>
<name>hdds.security.client.scm.container.protocol.acl</name>
<value>*</value>
<tag>SECURITY</tag>
<description>
Comma separated list of users and groups allowed to access
client scm container protocol.
</description>
</property>
<property>
<name>ozone.om.security.client.protocol.acl</name>
<value>*</value>
<tag>SECURITY</tag>
<description>
Comma separated list of users and groups allowed to access
client ozone manager protocol.
</description>
</property>
<property>
<name>hdds.datanode.http.kerberos.principal</name>
<value>HTTP/_HOST@EXAMPLE.COM</value>
<tag>HDDS, SECURITY, MANAGEMENT</tag>
<description>
The kerberos principal for the datanode http server.
</description>
</property>
<property>
<name>hdds.datanode.http.kerberos.keytab</name>
<value>/etc/security/keytabs/HTTP.keytab</value>
<tag>HDDS, SECURITY, MANAGEMENT</tag>
<description>
The kerberos keytab file for datanode http server
</description>
</property>
<property>
<name>hdds.datanode.http-address</name>
<value>0.0.0.0:9882</value>
<tag>HDDS, MANAGEMENT</tag>
<description>
The address and the base port where the Datanode web ui will listen on.
If the port is 0 then the server will start on a free port.
</description>
</property>
<property>
<name>hdds.datanode.http-bind-host</name>
<value>0.0.0.0</value>
<tag>HDDS, MANAGEMENT</tag>
<description>
The actual address the Datanode web server will bind to. If this
optional address is set, it overrides only the hostname portion of
hdds.datanode.http-address.
</description>
</property>
<property>
<name>hdds.datanode.http.enabled</name>
<value>true</value>
<tag>HDDS, MANAGEMENT</tag>
<description>
Property to enable or disable Datanode web ui.
</description>
</property>
<property>
<name>hdds.datanode.https-address</name>
<value>0.0.0.0:9883</value>
<tag>HDDS, MANAGEMENT, SECURITY</tag>
<description>
The address and the base port where the Datanode web UI will listen
on using HTTPS.
If the port is 0 then the server will start on a free port.
</description>
</property>
<property>
<name>hdds.datanode.https-bind-host</name>
<value>0.0.0.0</value>
<tag>HDDS, MANAGEMENT, SECURITY</tag>
<description>
The actual address the Datanode web server will bind to using HTTPS.
If this optional address is set, it overrides only the hostname portion of
hdds.datanode.http-address.
</description>
</property>
<property>
<name>ozone.client.retry.max.attempts</name>
<value>10</value>
<description>
Max retry attempts for Ozone RpcClient talking to OzoneManagers.
</description>
</property>
<property>
<name>ozone.client.failover.max.attempts</name>
<value>15</value>
<description>
Expert only. The number of client failover attempts that should be
made before the failover is considered failed.
</description>
</property>
<property>
<name>ozone.client.failover.sleep.base.millis</name>
<value>500</value>
<description>
Expert only. The time to wait, in milliseconds, between failover
attempts increases exponentially as a function of the number of
attempts made so far, with a random factor of +/- 50%. This option
specifies the base value used in the failover calculation. The
first failover will retry immediately. The 2nd failover attempt
will delay at least ozone.client.failover.sleep.base.millis
milliseconds. And so on.
</description>
</property>
<property>
<name>ozone.client.failover.sleep.max.millis</name>
<value>15000</value>
<description>
Expert only. The time to wait, in milliseconds, between failover
attempts increases exponentially as a function of the number of
attempts made so far, with a random factor of +/- 50%. This option
specifies the maximum value to wait between failovers.
Specifically, the time between two failover attempts will not
exceed +/- 50% of ozone.client.failover.sleep.max.millis
milliseconds.
</description>
</property>
<property>
<name>ozone.recon.http.enabled</name>
<value>true</value>
<tag>RECON, MANAGEMENT</tag>
<description>
Property to enable or disable Recon web user interface.
</description>
</property>
<property>
<name>ozone.recon.http-address</name>
<value>0.0.0.0:9888</value>
<tag>RECON, MANAGEMENT</tag>
<description>
The address and the base port where the Recon web UI will listen on.
If the port is 0, then the server will start on a free port. However, it
is best to specify a well-known port, so it is easy to connect and see
the Recon management UI.
</description>
</property>
<property>
<name>ozone.recon.http-bind-host</name>
<value>0.0.0.0</value>
<tag>RECON, MANAGEMENT</tag>
<description>
The actual address the Recon server will bind to. If this optional
the address is set, it overrides only the hostname portion of
ozone.recon.http-address.
</description>
</property>
<property>
<name>ozone.recon.https-bind-host</name>
<value>0.0.0.0</value>
<tag>RECON, MANAGEMENT, SECURITY</tag>
<description>
The actual address the Recon web server will bind to using HTTPS.
If this optional address is set, it overrides only the hostname portion of
ozone.recon.https-address.
</description>
</property>
<property>
<name>ozone.recon.https-address</name>
<value>0.0.0.0:9889</value>
<tag>RECON, MANAGEMENT, SECURITY</tag>
<description>
The address and the base port where the Recon web UI will listen
on using HTTPS. If the port is 0 then the server will start on a free
port.
</description>
</property>
<property>
<name>ozone.recon.keytab.file</name>
<value/>
<tag>RECON, SECURITY</tag>
<description>
The keytab file for Kerberos authentication in Recon.
</description>
</property>
<property>
<name>ozone.recon.authentication.kerberos.principal</name>
<value/>
<tag>RECON</tag>
<description>The server principal used by Ozone Recon server. This is
typically set to HTTP/_HOST@REALM.TLD The SPNEGO server principal
begins with the prefix HTTP/ by convention.
</description>
</property>
<property>
<name>ozone.recon.container.db.cache.size.mb</name>
<value>128</value>
<tag>RECON, PERFORMANCE</tag>
<description>
The size of Recon DB cache in MB that used for caching files.
This value is set to an abnormally low value in the default configuration.
That is to make unit testing easy. Generally, this value should be set to
something like 16GB or more, if you intend to use Recon at scale.
A large value for this key allows a proportionally larger amount of Recon
container DB to be cached in memory. This makes Recon Container-Key
operations faster.
</description>
</property>
<property>
<name>ozone.recon.db.dir</name>
<value/>
<tag>OZONE, RECON, STORAGE, PERFORMANCE</tag>
<description>
Directory where the Recon Server stores its metadata. This should
be specified as a single directory. If the directory does not
exist then the Recon will attempt to create it.
If undefined, then the Recon will log a warning and fallback to
ozone.metadata.dirs. This fallback approach is not recommended for
production environments.
</description>
</property>
<property>
<name>ozone.scm.network.topology.schema.file</name>
<value>network-topology-default.xml</value>
<tag>OZONE, MANAGEMENT</tag>
<description>
The schema file defines the ozone network topology. We currently support
xml(default) and yaml format. Refer to the samples in the topology
awareness document for xml and yaml topology definition samples.
</description>
</property>
<property>
<name>ozone.network.topology.aware.read</name>
<value>false</value>
<tag>OZONE, PERFORMANCE</tag>
<description>
Whether to enable topology aware read to improve the read performance.
</description>
</property>
<property>
<name>ozone.recon.container.db.impl</name>
<value>RocksDB</value>
<tag>OZONE, RECON, STORAGE</tag>
<description>
Ozone Recon container DB store implementation.Supported value is either
LevelDB or RocksDB.
</description>
</property>
<property>
<name>ozone.recon.om.db.dir</name>
<value/>
<tag>OZONE, RECON, STORAGE</tag>
<description>
Directory where the Recon Server stores its OM snapshot DB. This should
be specified as a single directory. If the directory does not
exist then the Recon will attempt to create it.
If undefined, then the Recon will log a warning and fallback to
ozone.metadata.dirs. This fallback approach is not recommended for
production environments.
</description>
</property>
<property>
<name>recon.om.connection.request.timeout</name>
<value>5000</value>
<tag>OZONE, RECON, OM</tag>
<description>
Connection request timeout in milliseconds for HTTP call made by Recon to
request OM DB snapshot.
</description>
</property>
<property>
<name>recon.om.connection.timeout</name>
<value>5s</value>
<tag>OZONE, RECON, OM</tag>
<description>
Connection timeout for HTTP call in milliseconds made by Recon to request
OM snapshot.
</description>
</property>
<property>
<name>recon.om.socket.timeout</name>
<value>5s</value>
<tag>OZONE, RECON, OM</tag>
<description>
Socket timeout in milliseconds for HTTP call made by Recon to request
OM snapshot.
</description>
</property>
<property>
<name>recon.om.snapshot.task.initial.delay</name>
<value>1m</value>
<tag>OZONE, RECON, OM</tag>
<description>
Initial delay in MINUTES by Recon to request OM DB Snapshot.
</description>
</property>
<property>
<name>recon.om.snapshot.task.interval.delay</name>
<value>10m</value>
<tag>OZONE, RECON, OM</tag>
<description>
Interval in MINUTES by Recon to request OM DB Snapshot.
</description>
</property>
<property>
<name>recon.om.snapshot.task.flush.param</name>
<value>false</value>
<tag>OZONE, RECON, OM</tag>
<description>
Request to flush the OM DB before taking checkpoint snapshot.
</description>
</property>
<property>
<name>hdds.tracing.enabled</name>
<value>true</value>
<tag>OZONE, HDDS</tag>
<description>
If enabled, tracing information is sent to tracing server.
</description>
</property>
<property>
<name>ozone.recon.sql.db.driver</name>
<value>org.sqlite.JDBC</value>
<tag>OZONE, RECON</tag>
<description>
Database driver class name available on the
Ozone Recon classpath.
</description>
</property>
<property>
<name>ozone.recon.sql.db.jdbc.url</name>
<value>jdbc:sqlite:/${ozone.recon.db.dir}/ozone_recon_sqlite.db</value>
<tag>OZONE, RECON</tag>
<description>
Ozone Recon SQL database jdbc url.
</description>
</property>
<property>
<name>ozone.recon.sql.db.username</name>
<value/>
<tag>OZONE, RECON</tag>
<description>
Ozone Recon SQL database username.
</description>
</property>
<property>
<name>ozone.recon.sql.db.password</name>
<value/>
<tag>OZONE, RECON</tag>
<description>
Ozone Recon database password.
</description>
</property>
<property>
<name>ozone.recon.sql.db.auto.commit</name>
<value>false</value>
<tag>OZONE, RECON</tag>
<description>
Sets the Ozone Recon database connection property of auto-commit to
true/false.
</description>
</property>
<property>
<name>ozone.recon.sql.db.conn.timeout</name>
<value>30000</value>
<tag>OZONE, RECON</tag>
<description>
Sets time in milliseconds before call to getConnection is timed out.
</description>
</property>
<property>
<name>ozone.recon.sql.db.conn.max.active</name>
<value>1</value>
<tag>OZONE, RECON</tag>
<description>
The max active connections to the SQL database. The default SQLite
database only allows single active connection, set this to a
reasonable value like 10, for external production database.
</description>
</property>
<property>
<name>ozone.recon.sql.db.conn.max.age</name>
<value>1800</value>
<tag>OZONE, RECON</tag>
<description>
Sets maximum time a connection can be active in seconds.
</description>
</property>
<property>
<name>ozone.recon.sql.db.conn.idle.max.age</name>
<value>3600</value>
<tag>OZONE, RECON</tag>
<description>
Sets maximum time to live for idle connection in seconds.
</description>
</property>
<property>
<name>ozone.recon.sql.db.conn.idle.test.period</name>
<value>60</value>
<tag>OZONE, RECON</tag>
<description>
This sets the time (in seconds), for a connection to remain idle before
sending a test query to the DB. This is useful to prevent a DB from
timing out connections on its end.
</description>
</property>
<property>
<name>ozone.recon.sql.db.conn.idle.test</name>
<value>SELECT 1</value>
<tag>OZONE, RECON</tag>
<description>
The query to send to the DB to maintain keep-alives and test for dead
connections.
</description>
</property>
<property>
<name>ozone.recon.task.thread.count</name>
<value>1</value>
<tag>OZONE, RECON</tag>
<description>
The number of Recon Tasks that are waiting on updates from OM.
</description>
</property>
</configuration>