12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073 |
- <?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.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>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.grpc.enabled</name>
- <value>false</value>
- <tag>OZONE, MANAGEMENT, PIPELINE, RATIS</tag>
- <description>Ozone supports different kinds of replication pipelines
- protocols. grpc is one of the replication pipeline protocol 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>dfs.ratis.client.request.timeout.duration</name>
- <value>3s</value>
- <tag>OZONE, RATIS, MANAGEMENT</tag>
- <description>The timeout duration for ratis client request.</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>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
- OM/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>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.address</name>
- <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.group.rights</name>
- <value>READ_WRITE</value>
- <tag>OM, SECURITY</tag>
- <description>
- Default group permissions in Ozone 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.http-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.user.rights</name>
- <value>READ_WRITE</value>
- <tag>OM, SECURITY</tag>
- <description>
- Default user permissions used in OM.
- </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 OM and SCM. To be removed.
- </description>
- </property>
- <property>
- <name>ozone.metadata.dirs</name>
- <value/>
- <tag>OZONE, OM, SCM, CONTAINER, REQUIRED, STORAGE</tag>
- <description>
- Ozone metadata is shared among OM, 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 OM 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, 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>ALL</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.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.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
- 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.
- </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.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.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 OM 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, OM, PERFORMANCE</tag>
- <description>
- When a new key write request is sent to OM, 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, 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</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</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>
- <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.write.lock.reporting.threshold.ms</name>
- <value>5000</value>
- <tag>OZONE, DATANODE, MANAGEMENT</tag>
- <description>
- When a write lock is held for a long time, this will be logged as the
- lock is released. This sets how long the lock must be held for logging
- to occur.
- </description>
- </property>
- <property>
- <name>hdds.lock.suppress.warning.interval.ms</name>
- <value>10000</value>
- <tag>OZONE, DATANODE, MANAGEMENT</tag>
- <description>
- Instrumentation reporting long critical sections will suppress
- consecutive warnings within this interval.
- </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>
- </configuration>
|