| <?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> |