blob: cb0ab1859bf5aa17fa90a7d53a88e013ab6ca811 [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, KSM, 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.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>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.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.segment.size</name>
<value>1073741824</value>
<tag>OZONE, RATIS, PERFORMANCE</tag>
<description>The size of the raft segment used by Apache Ratis on datanodes.
(1 GB by default)
</description>
</property>
<property>
<name>dfs.container.ratis.segment.preallocated.size</name>
<value>134217728</value>
<tag>OZONE, RATIS, PERFORMANCE</tag>
<description>The size of the buffer which is preallocated for raft segment
used by Apache Ratis on datanodes.(128 MB by default)
</description>
</property>
<property>
<name>ozone.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 upon receive
sendContainerReport from SCM. Unit could be defined with
postfix (ns,ms,s,m,h,d)</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.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.protocol</name>
<value>org.apache.hadoop.ozone.client.rpc.RpcClient</value>
<tag>OZONE, CLIENT, MANAGEMENT</tag>
<description>Protocol class to be used by the client to connect to ozone
cluster.
The build-in implementation includes:
org.apache.hadoop.ozone.client.rpc.RpcClient for RPC
org.apache.hadoop.ozone.client.rest.RestClient for REST
The default is the RpClient. Please do not change this unless you have a
very good understanding of what you are doing.
</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.handler.type</name>
<value>distributed</value>
<tag>OZONE, REST</tag>
<description>
Tells ozone which storage handler to use. The possible values are:
distributed - The Ozone distributed storage handler, which speaks to
KSM/SCM on the backend and provides REST services to clients.
local - Local Storage handler strictly for testing - To be removed.
</description>
</property>
<property>
<name>ozone.key.deleting.limit.per.task</name>
<value>1000</value>
<tag>KSM, PERFORMANCE</tag>
<description>
A maximum number of keys to be scanned by key deleting service
per time interval in KSM. 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.ksm.address</name>
<value/>
<tag>KSM, REQUIRED</tag>
<description>
The address of the Ozone KSM service. This allows clients to discover
the KSMs address.
</description>
</property>
<property>
<name>ozone.ksm.group.rights</name>
<value>READ_WRITE</value>
<tag>KSM, SECURITY</tag>
<description>
Default group permissions in Ozone KSM.
</description>
</property>
<property>
<name>ozone.ksm.handler.count.key</name>
<value>20</value>
<tag>KSM, PERFORMANCE</tag>
<description>
The number of RPC handler threads for KSM service endpoints.
</description>
</property>
<property>
<name>ozone.ksm.http-address</name>
<value>0.0.0.0:9874</value>
<tag>KSM, MANAGEMENT</tag>
<description>
The address and the base port where the KSM 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 KSM management UI.
</description>
</property>
<property>
<name>ozone.ksm.http-bind-host</name>
<value>0.0.0.0</value>
<tag>KSM, MANAGEMENT</tag>
<description>
The actual address the KSM web server will bind to. If this optional
the address is set, it overrides only the hostname portion of
ozone.ksm.http-address.
</description>
</property>
<property>
<name>ozone.ksm.http.enabled</name>
<value>true</value>
<tag>KSM, MANAGEMENT</tag>
<description>
Property to enable or disable KSM web user interface.
</description>
</property>
<property>
<name>ozone.ksm.https-address</name>
<value>0.0.0.0:9875</value>
<tag>KSM, MANAGEMENT, SECURITY</tag>
<description>
The address and the base port where the KSM 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.ksm.https-bind-host</name>
<value>0.0.0.0</value>
<tag>KSM, MANAGEMENT, SECURITY</tag>
<description>
The actual address the KSM web server will bind to using HTTPS.
If this optional address is set, it overrides only the hostname portion of
ozone.ksm.http-address.
</description>
</property>
<property>
<name>ozone.ksm.keytab.file</name>
<value/>
<tag>KSM, SECURITY</tag>
<description>
The keytab file for Kerberos authentication in KSM.
</description>
</property>
<property>
<name>ozone.ksm.db.cache.size.mb</name>
<value>128</value>
<tag>KSM, PERFORMANCE</tag>
<description>
The size of KSM 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 KSM
metadata to be cached in memory. This makes KSM operations faster.
</description>
</property>
<property>
<name>ozone.ksm.user.max.volume</name>
<value>1024</value>
<tag>KSM, 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.ksm.user.rights</name>
<value>READ_WRITE</value>
<tag>KSM, SECURITY</tag>
<description>
Default user permissions used in KSM.
</description>
</property>
<property>
<name>ozone.localstorage.root</name>
<value>${hadoop.tmp.dir}/ozone</value>
<tag>OZONE, DEBUG</tag>
<description>
This is used only for testing purposes. This value is used by the local
storage handler to simulate a REST backend. This is useful only when
debugging the REST front end independent of KSM and SCM. To be removed.
</description>
</property>
<property>
<name>ozone.metadata.dirs</name>
<value/>
<tag>OZONE, KSM, SCM, CONTAINER, REQUIRED, STORAGE</tag>
<description>
Ozone metadata is shared among KSM, which acts as the namespace
manager for ozone, SCM which acts as the block manager and data nodes
which maintain the name of the key(Key Name and BlockIDs). This
replicated and distributed metadata store is maintained under the
directory pointed by this key. Since metadata can be I/O intensive, at
least on KSM and SCM we recommend having SSDs. If you have the luxury
of mapping this path to SSDs on all machines in the cluster, that will
be excellent.
If Ratis metadata directories are not specified, Ratis server will emit a
warning and use this path for storing its metadata too.
</description>
</property>
<property>
<name>ozone.metastore.impl</name>
<value>RocksDB</value>
<tag>OZONE, KSM, SCM, CONTAINER, STORAGE</tag>
<description>
Ozone metadata store implementation. Ozone metadata are well
distributed to multiple services such as ksm, 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>ALL</value>
<tag>OZONE, KSM, 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.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.in.mb</name>
<value>256</value>
<tag>OZONE, SCM</tag>
<description>
The default size of a scm block in bytes. This is maps to the default
Ozone block size.
</description>
</property>
<property>
<name>ozone.scm.chunk.size</name>
<value>16777216</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.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 desire 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>Placement policy class for containers.
Defaults to SCMContainerPlacementRandom.class
</description>
</property>
<property>
<name>ozone.scm.container.provision_batch_size</name>
<value>20</value>
<tag>OZONE, PERFORMANCE</tag>
<description>Pre-provision specified number of containers for block
allocation.
</description>
</property>
<property>
<name>ozone.scm.container.report.processing.interval</name>
<value>60s</value>
<tag>OZONE, PERFORMANCE</tag>
<description>Time interval for scm to process container reports
for a node pool. Scm handles node pool reports in a cyclic clock
manner, it fetches pools periodically with this time interval.
</description>
</property>
<property>
<name>ozone.scm.container.reports.wait.timeout</name>
<value>300s</value>
<tag>OZONE, PERFORMANCE, MANAGEMENT</tag>
<description>Maximum time to wait in seconds for processing all container
reports from
a node pool. It determines the timeout for a
node pool report.
</description>
</property>
<property>
<name>ozone.scm.container.size.gb</name>
<value>5</value>
<tag>OZONE, PERFORMANCE, MANAGEMENT</tag>
<description>
Default container size used by Ozone. This value is specified
in GB.
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</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>ozone.scm.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
KSM/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.
</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>1000</value>
<tag>OZONE, MANAGEMENT</tag>
<description>
Timeout value for the RPC from Datanode to SCM in milliseconds.
</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.http-address.
</description>
</property>
<property>
<name>ozone.scm.keytab.file</name>
<value/>
<tag>OZONE, SECURITY</tag>
<description>
The keytab file for Kerberos authentication in SCM.
</description>
</property>
<property>
<name>ozone.scm.max.container.report.threads</name>
<value>100</value>
<tag>OZONE, PERFORMANCE</tag>
<description>
Maximum number of threads to process container reports in scm.
Each container report from a data node is processed by scm in a worker
thread, fetched from a thread pool. This property is used to control the
maximum size of the thread pool.
</description>
</property>
<property>
<name>ozone.scm.max.hb.count.to.process</name>
<value>5000</value>
<tag>OZONE, MANAGEMENT, PERFORMANCE</tag>
<description>
The maximum number of heartbeat to process per loop of the
heartbeat process thread. Please see
ozone.scm.heartbeat.thread.interval
for more info.
</description>
</property>
<property>
<name>ozone.scm.max.nodepool.processing.threads</name>
<value>1</value>
<tag>OZONE, MANAGEMENT, PERFORMANCE</tag>
<description>
Number of node pools to process in parallel.
</description>
</property>
<property>
<name>ozone.scm.names</name>
<value/>
<tag>OZONE</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>90s</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.scm.max.nodepool.processing.threads</name>
<value>1</value>
<tag>OZONE, SCM</tag>
<description>
Controls the number of node pools that can be processed in parallel by
Container Supervisor.
</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.web.authentication.kerberos.principal</name>
<value/>
<tag>OZONE, SECURITY</tag>
<description>
The server principal used by the SCM and KSM for web UI SPNEGO
authentication when Kerberos security is enabled. This is typically set to
HTTP/_HOST@REALM.TLD The SPNEGO server principal begins with the prefix
HTTP/ by convention.
If the value is '*', the web server will attempt to login with
every principal specified in the keytab file.
</description>
</property>
<!--Client Settings-->
<property>
<name>scm.container.client.idle.threshold</name>
<value>10s</value>
<tag>OZONE, PERFORMANCE</tag>
<description>
In the standalone pipelines, the SCM clients use netty to
communicate with the container. It also uses connection pooling to
reduce client side overheads. This allows a connection to stay idle for
a while before the connection is closed.
</description>
</property>
<property>
<name>scm.container.client.max.size</name>
<value>256</value>
<tag>OZONE, PERFORMANCE</tag>
<description>
Controls the maximum number of connections that we cached via
clientconnection pooling. If the number of connection
exceed this count then the oldest idle connection is evicted.
</description>
</property>
<property>
<name>scm.container.client.max.outstanding.requests</name>
<value>100</value>
<tag>OZONE, PERFORMANCE</tag>
<description>
Controls the maximum number of outstanding async requests that can be
handled by the Standalone as well as Ratis client.
</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.maxsize</name>
<value>134217728</value>
<tag>OZONE, KSM, PERFORMANCE</tag>
<description>
When a new key write request is sent to KSM, if a size is requested, at most
128MB of size is allocated at request time. 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>ozone.scm.container.close.threshold</name>
<value>0.9f</value>
<tag>OZONE, SCM</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, KSM, 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, KSM, 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.custom.tags</name>
<value>OZONE,MANAGEMENT,SECURITY,PERFORMANCE,DEBUG,CLIENT,SERVER,KSM,SCM,CRITICAL,RATIS,CONTAINER,REQUIRED,REST,STORAGE,PIPELINE,STANDALONE</value>
</property>
<property>
<name>ozone.system.tags</name>
<value>OZONE,MANAGEMENT,SECURITY,PERFORMANCE,DEBUG,CLIENT,SERVER,KSM,SCM,CRITICAL,RATIS,CONTAINER,REQUIRED,REST,STORAGE,PIPELINE,STANDALONE</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>org.apache.hadoop.ozone.web.OzoneHddsDatanodeService</value>
<description>
Comma-separated list of HDDS datanode plug-ins to be activated when
HDDS service starts as part of datanode.
</description>
</property>
</configuration>