ozone-default.xml 37 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  3. <!--
  4. Licensed to the Apache Software Foundation (ASF) under one or more
  5. contributor license agreements. See the NOTICE file distributed with
  6. this work for additional information regarding copyright ownership.
  7. The ASF licenses this file to You under the Apache License, Version 2.0
  8. (the "License"); you may not use this file except in compliance with
  9. the License. You may obtain a copy of the License at
  10. http://www.apache.org/licenses/LICENSE-2.0
  11. Unless required by applicable law or agreed to in writing, software
  12. distributed under the License is distributed on an "AS IS" BASIS,
  13. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. See the License for the specific language governing permissions and
  15. limitations under the License.
  16. -->
  17. <!-- Do not modify this file directly. Instead, copy entries that you -->
  18. <!-- wish to modify from this file into ozone-site.xml and change them -->
  19. <!-- there. If ozone-site.xml does not already exist, create it. -->
  20. <!--Tags supported are OZONE, CBLOCK, MANAGEMENT, SECURITY, PERFORMANCE, -->
  21. <!--DEBUG, CLIENT, SERVER, OM, SCM, CRITICAL, RATIS, CONTAINER, REQUIRED, -->
  22. <!--REST, STORAGE, PIPELINE, STANDALONE -->
  23. <configuration>
  24. <!--Container Settings used by Datanode-->
  25. <property>
  26. <name>ozone.container.cache.size</name>
  27. <value>1024</value>
  28. <tag>PERFORMANCE, CONTAINER, STORAGE</tag>
  29. <description>The open container is cached on the data node side. We maintain
  30. an LRU
  31. cache for caching the recently used containers. This setting controls the
  32. size of that cache.
  33. </description>
  34. </property>
  35. <property>
  36. <name>dfs.container.ipc</name>
  37. <value>9859</value>
  38. <tag>OZONE, CONTAINER, MANAGEMENT</tag>
  39. <description>The ipc port number of container.</description>
  40. </property>
  41. <property>
  42. <name>dfs.container.ipc.random.port</name>
  43. <value>false</value>
  44. <tag>OZONE, DEBUG, CONTAINER</tag>
  45. <description>Allocates a random free port for ozone container. This is used
  46. only while
  47. running unit tests.
  48. </description>
  49. </property>
  50. <property>
  51. <name>dfs.container.ratis.datanode.storage.dir</name>
  52. <value/>
  53. <tag>OZONE, CONTAINER, STORAGE, MANAGEMENT, RATIS</tag>
  54. <description>This directory is used for storing Ratis metadata like logs. If
  55. this is
  56. not set then default metadata dirs is used. A warning will be logged if
  57. this not set. Ideally, this should be mapped to a fast disk like an SSD.
  58. </description>
  59. </property>
  60. <property>
  61. <name>dfs.container.ratis.enabled</name>
  62. <value>false</value>
  63. <tag>OZONE, MANAGEMENT, PIPELINE, RATIS</tag>
  64. <description>Ozone supports different kinds of replication pipelines. Ratis
  65. is one of
  66. the replication pipeline supported by ozone.
  67. </description>
  68. </property>
  69. <property>
  70. <name>dfs.container.grpc.enabled</name>
  71. <value>false</value>
  72. <tag>OZONE, MANAGEMENT, PIPELINE, RATIS</tag>
  73. <description>Ozone supports different kinds of replication pipelines
  74. protocols. grpc is one of the replication pipeline protocol supported by
  75. ozone.
  76. </description>
  77. </property>
  78. <property>
  79. <name>dfs.container.ratis.ipc</name>
  80. <value>9858</value>
  81. <tag>OZONE, CONTAINER, PIPELINE, RATIS, MANAGEMENT</tag>
  82. <description>The ipc port number of container.</description>
  83. </property>
  84. <property>
  85. <name>dfs.container.ratis.ipc.random.port</name>
  86. <value>false</value>
  87. <tag>OZONE,DEBUG</tag>
  88. <description>Allocates a random free port for ozone ratis port for the
  89. container. This
  90. is used only while running unit tests.
  91. </description>
  92. </property>
  93. <property>
  94. <name>dfs.container.ratis.rpc.type</name>
  95. <value>GRPC</value>
  96. <tag>OZONE, RATIS, MANAGEMENT</tag>
  97. <description>Ratis supports different kinds of transports like netty, GRPC,
  98. Hadoop RPC
  99. etc. This picks one of those for this cluster.
  100. </description>
  101. </property>
  102. <property>
  103. <name>dfs.container.ratis.num.write.chunk.threads</name>
  104. <value>60</value>
  105. <tag>OZONE, RATIS, PERFORMANCE</tag>
  106. <description>Maximum number of threads in the thread pool that Ratis
  107. will use for writing chunks (60 by default).
  108. </description>
  109. </property>
  110. <property>
  111. <name>dfs.container.ratis.segment.size</name>
  112. <value>1073741824</value>
  113. <tag>OZONE, RATIS, PERFORMANCE</tag>
  114. <description>The size of the raft segment used by Apache Ratis on datanodes.
  115. (1 GB by default)
  116. </description>
  117. </property>
  118. <property>
  119. <name>dfs.container.ratis.segment.preallocated.size</name>
  120. <value>134217728</value>
  121. <tag>OZONE, RATIS, PERFORMANCE</tag>
  122. <description>The size of the buffer which is preallocated for raft segment
  123. used by Apache Ratis on datanodes.(128 MB by default)
  124. </description>
  125. </property>
  126. <property>
  127. <name>dfs.ratis.client.request.timeout.duration</name>
  128. <value>3s</value>
  129. <tag>OZONE, RATIS, MANAGEMENT</tag>
  130. <description>The timeout duration for ratis client request.</description>
  131. </property>
  132. <property>
  133. <name>dfs.ratis.server.request.timeout.duration</name>
  134. <value>3s</value>
  135. <tag>OZONE, RATIS, MANAGEMENT</tag>
  136. <description>The timeout duration for ratis server request.</description>
  137. </property>
  138. <property>
  139. <name>ozone.container.report.interval</name>
  140. <value>60000ms</value>
  141. <tag>OZONE, CONTAINER, MANAGEMENT</tag>
  142. <description>Time interval of the datanode to send container report. Each
  143. datanode periodically send container report upon receive
  144. sendContainerReport from SCM. Unit could be defined with
  145. postfix (ns,ms,s,m,h,d)</description>
  146. </property>
  147. <!--Ozone Settings-->
  148. <property>
  149. <name>ozone.administrators</name>
  150. <value/>
  151. <tag>OZONE, SECURITY</tag>
  152. <description>Ozone administrator users delimited by the comma.
  153. If not set, only the user who launches an ozone service will be the admin
  154. user. This property must be set if ozone services are started by different
  155. users. Otherwise, the RPC layer will reject calls from other servers which
  156. are started by users not in the list.
  157. </description>
  158. </property>
  159. <property>
  160. <name>ozone.block.deleting.container.limit.per.interval</name>
  161. <value>10</value>
  162. <tag>OZONE, PERFORMANCE, SCM</tag>
  163. <description>A maximum number of containers to be scanned by block deleting
  164. service per
  165. time interval. The block deleting service spawns a thread to handle block
  166. deletions in a container. This property is used to throttle the number of
  167. threads spawned for block deletions.
  168. </description>
  169. </property>
  170. <property>
  171. <name>ozone.block.deleting.limit.per.task</name>
  172. <value>1000</value>
  173. <tag>OZONE, PERFORMANCE, SCM</tag>
  174. <description>A maximum number of blocks to be deleted by block deleting
  175. service per
  176. time interval. This property is used to throttle the actual number of
  177. block deletions on a data node per container.
  178. </description>
  179. </property>
  180. <property>
  181. <name>ozone.block.deleting.service.interval</name>
  182. <value>1m</value>
  183. <tag>OZONE, PERFORMANCE, SCM</tag>
  184. <description>Time interval of the block deleting service.
  185. The block deleting service runs on each datanode periodically and
  186. deletes blocks queued for deletion. Unit could be defined with
  187. postfix (ns,ms,s,m,h,d)
  188. </description>
  189. </property>
  190. <property>
  191. <name>ozone.block.deleting.service.timeout</name>
  192. <value>300000ms</value>
  193. <tag>OZONE, PERFORMANCE, SCM</tag>
  194. <description>A timeout value of block deletion service. If this is set
  195. greater than 0,
  196. the service will stop waiting for the block deleting completion after this
  197. time. If timeout happens to a large proportion of block deletion, this
  198. needs to be increased with ozone.block.deleting.limit.per.task. This
  199. setting supports multiple time unit suffixes as described in
  200. dfs.heartbeat.interval. If no suffix is specified, then milliseconds is
  201. assumed.
  202. </description>
  203. </property>
  204. <property>
  205. <name>ozone.client.connection.timeout</name>
  206. <value>5000ms</value>
  207. <tag>OZONE, PERFORMANCE, CLIENT</tag>
  208. <description>Connection timeout for Ozone client in milliseconds.
  209. </description>
  210. </property>
  211. <property>
  212. <name>ozone.client.protocol</name>
  213. <value>org.apache.hadoop.ozone.client.rpc.RpcClient</value>
  214. <tag>OZONE, CLIENT, MANAGEMENT</tag>
  215. <description>Protocol class to be used by the client to connect to ozone
  216. cluster.
  217. The build-in implementation includes:
  218. org.apache.hadoop.ozone.client.rpc.RpcClient for RPC
  219. org.apache.hadoop.ozone.client.rest.RestClient for REST
  220. The default is the RpClient. Please do not change this unless you have a
  221. very good understanding of what you are doing.
  222. </description>
  223. </property>
  224. <property>
  225. <name>ozone.client.socket.timeout</name>
  226. <value>5000ms</value>
  227. <tag>OZONE, CLIENT</tag>
  228. <description>Socket timeout for Ozone client. Unit could be defined with
  229. postfix (ns,ms,s,m,h,d)</description>
  230. </property>
  231. <property>
  232. <name>ozone.enabled</name>
  233. <value>false</value>
  234. <tag>OZONE, REQUIRED</tag>
  235. <description>
  236. Status of the Ozone Object Storage service is enabled.
  237. Set to true to enable Ozone.
  238. Set to false to disable Ozone.
  239. Unless this value is set to true, Ozone services will not be started in
  240. the cluster.
  241. Please note: By default ozone is disabled on a hadoop cluster.
  242. </description>
  243. </property>
  244. <property>
  245. <name>ozone.handler.type</name>
  246. <value>distributed</value>
  247. <tag>OZONE, REST</tag>
  248. <description>
  249. Tells ozone which storage handler to use. The possible values are:
  250. distributed - The Ozone distributed storage handler, which speaks to
  251. OM/SCM on the backend and provides REST services to clients.
  252. local - Local Storage handler strictly for testing - To be removed.
  253. </description>
  254. </property>
  255. <property>
  256. <name>ozone.key.deleting.limit.per.task</name>
  257. <value>1000</value>
  258. <tag>OM, PERFORMANCE</tag>
  259. <description>
  260. A maximum number of keys to be scanned by key deleting service
  261. per time interval in OM. Those keys are sent to delete metadata and
  262. generate transactions in SCM for next async deletion between SCM
  263. and DataNode.
  264. </description>
  265. </property>
  266. <property>
  267. <name>ozone.om.address</name>
  268. <value/>
  269. <tag>OM, REQUIRED</tag>
  270. <description>
  271. The address of the Ozone OM service. This allows clients to discover
  272. the address of the OM.
  273. </description>
  274. </property>
  275. <property>
  276. <name>ozone.om.group.rights</name>
  277. <value>READ_WRITE</value>
  278. <tag>OM, SECURITY</tag>
  279. <description>
  280. Default group permissions in Ozone OM.
  281. </description>
  282. </property>
  283. <property>
  284. <name>ozone.om.handler.count.key</name>
  285. <value>20</value>
  286. <tag>OM, PERFORMANCE</tag>
  287. <description>
  288. The number of RPC handler threads for OM service endpoints.
  289. </description>
  290. </property>
  291. <property>
  292. <name>ozone.om.http-address</name>
  293. <value>0.0.0.0:9874</value>
  294. <tag>OM, MANAGEMENT</tag>
  295. <description>
  296. The address and the base port where the OM web UI will listen on.
  297. If the port is 0, then the server will start on a free port. However, it
  298. is best to specify a well-known port, so it is easy to connect and see
  299. the OM management UI.
  300. </description>
  301. </property>
  302. <property>
  303. <name>ozone.om.http-bind-host</name>
  304. <value>0.0.0.0</value>
  305. <tag>OM, MANAGEMENT</tag>
  306. <description>
  307. The actual address the OM web server will bind to. If this optional
  308. the address is set, it overrides only the hostname portion of
  309. ozone.om.http-address.
  310. </description>
  311. </property>
  312. <property>
  313. <name>ozone.om.http.enabled</name>
  314. <value>true</value>
  315. <tag>OM, MANAGEMENT</tag>
  316. <description>
  317. Property to enable or disable OM web user interface.
  318. </description>
  319. </property>
  320. <property>
  321. <name>ozone.om.https-address</name>
  322. <value>0.0.0.0:9875</value>
  323. <tag>OM, MANAGEMENT, SECURITY</tag>
  324. <description>
  325. The address and the base port where the OM web UI will listen
  326. on using HTTPS.
  327. If the port is 0 then the server will start on a free port.
  328. </description>
  329. </property>
  330. <property>
  331. <name>ozone.om.https-bind-host</name>
  332. <value>0.0.0.0</value>
  333. <tag>OM, MANAGEMENT, SECURITY</tag>
  334. <description>
  335. The actual address the OM web server will bind to using HTTPS.
  336. If this optional address is set, it overrides only the hostname portion of
  337. ozone.om.http-address.
  338. </description>
  339. </property>
  340. <property>
  341. <name>ozone.om.keytab.file</name>
  342. <value/>
  343. <tag>OM, SECURITY</tag>
  344. <description>
  345. The keytab file for Kerberos authentication in OM.
  346. </description>
  347. </property>
  348. <property>
  349. <name>ozone.om.db.cache.size.mb</name>
  350. <value>128</value>
  351. <tag>OM, PERFORMANCE</tag>
  352. <description>
  353. The size of OM DB cache in MB that used for caching files.
  354. This value is set to an abnormally low value in the default configuration.
  355. That is to make unit testing easy. Generally, this value should be set to
  356. something like 16GB or more, if you intend to use Ozone at scale.
  357. A large value for this key allows a proportionally larger amount of OM
  358. metadata to be cached in memory. This makes OM operations faster.
  359. </description>
  360. </property>
  361. <property>
  362. <name>ozone.om.user.max.volume</name>
  363. <value>1024</value>
  364. <tag>OM, MANAGEMENT</tag>
  365. <description>
  366. The maximum number of volumes a user can have on a cluster.Increasing or
  367. decreasing this number has no real impact on ozone cluster. This is
  368. defined only for operational purposes. Only an administrator can create a
  369. volume, once a volume is created there are no restrictions on the number
  370. of buckets or keys inside each bucket a user can create.
  371. </description>
  372. </property>
  373. <property>
  374. <name>ozone.om.user.rights</name>
  375. <value>READ_WRITE</value>
  376. <tag>OM, SECURITY</tag>
  377. <description>
  378. Default user permissions used in OM.
  379. </description>
  380. </property>
  381. <property>
  382. <name>ozone.localstorage.root</name>
  383. <value>${hadoop.tmp.dir}/ozone</value>
  384. <tag>OZONE, DEBUG</tag>
  385. <description>
  386. This is used only for testing purposes. This value is used by the local
  387. storage handler to simulate a REST backend. This is useful only when
  388. debugging the REST front end independent of OM and SCM. To be removed.
  389. </description>
  390. </property>
  391. <property>
  392. <name>ozone.metadata.dirs</name>
  393. <value/>
  394. <tag>OZONE, OM, SCM, CONTAINER, REQUIRED, STORAGE</tag>
  395. <description>
  396. Ozone metadata is shared among OM, which acts as the namespace
  397. manager for ozone, SCM which acts as the block manager and data nodes
  398. which maintain the name of the key(Key Name and BlockIDs). This
  399. replicated and distributed metadata store is maintained under the
  400. directory pointed by this key. Since metadata can be I/O intensive, at
  401. least on OM and SCM we recommend having SSDs. If you have the luxury
  402. of mapping this path to SSDs on all machines in the cluster, that will
  403. be excellent.
  404. If Ratis metadata directories are not specified, Ratis server will emit a
  405. warning and use this path for storing its metadata too.
  406. </description>
  407. </property>
  408. <property>
  409. <name>ozone.metastore.impl</name>
  410. <value>RocksDB</value>
  411. <tag>OZONE, OM, SCM, CONTAINER, STORAGE</tag>
  412. <description>
  413. Ozone metadata store implementation. Ozone metadata are well
  414. distributed to multiple services such as ozoneManager, scm. They are stored in
  415. some local key-value databases. This property determines which database
  416. library to use. Supported value is either LevelDB or RocksDB.
  417. </description>
  418. </property>
  419. <property>
  420. <name>ozone.metastore.rocksdb.statistics</name>
  421. <value>ALL</value>
  422. <tag>OZONE, OM, SCM, STORAGE, PERFORMANCE</tag>
  423. <description>
  424. The statistics level of the rocksdb store. If you use any value from
  425. org.rocksdb.StatsLevel (eg. ALL or EXCEPT_DETAILED_TIMERS), the rocksdb
  426. statistics will be exposed over JMX bean with the choosed setting. Set
  427. it to OFF to not initialize rocksdb statistics at all. Please note that
  428. collection of statistics could have 5-10% performance penalty.
  429. Check the rocksdb documentation for more details.
  430. </description>
  431. </property>
  432. <property>
  433. <name>ozone.scm.block.client.address</name>
  434. <value/>
  435. <tag>OZONE, SCM</tag>
  436. <description>The address of the Ozone SCM block client service. If not
  437. defined value of ozone.scm.client.address is used.
  438. </description>
  439. </property>
  440. <property>
  441. <name>ozone.scm.block.client.bind.host</name>
  442. <value>0.0.0.0</value>
  443. <tag>OZONE, SCM</tag>
  444. <description>
  445. The hostname or IP address used by the SCM block client
  446. endpoint to bind.
  447. </description>
  448. </property>
  449. <property>
  450. <name>ozone.scm.block.client.port</name>
  451. <value>9863</value>
  452. <tag>OZONE, SCM</tag>
  453. <description>
  454. The port number of the Ozone SCM block client service.
  455. </description>
  456. </property>
  457. <property>
  458. <name>ozone.scm.block.deletion.max.retry</name>
  459. <value>4096</value>
  460. <tag>OZONE, SCM</tag>
  461. <description>
  462. SCM wraps up many blocks in a deletion transaction and sends that to data
  463. node for physical deletion periodically. This property determines how many
  464. times SCM is going to retry sending a deletion operation to the data node.
  465. </description>
  466. </property>
  467. <property>
  468. <name>ozone.scm.block.size.in.mb</name>
  469. <value>256</value>
  470. <tag>OZONE, SCM</tag>
  471. <description>
  472. The default size of a scm block in bytes. This is maps to the default
  473. Ozone block size.
  474. </description>
  475. </property>
  476. <property>
  477. <name>ozone.scm.chunk.size</name>
  478. <value>16777216</value>
  479. <tag>OZONE, SCM, CONTAINER, PERFORMANCE</tag>
  480. <description>
  481. The chunk size for reading/writing chunk operations in bytes.
  482. The chunk size defaults to 8MB. If the value configured is more than the
  483. maximum size (16MB), it will be reset to the maximum size. This maps to
  484. the network packet sizes and file write operations in the client to
  485. datanode protocol.
  486. </description>
  487. </property>
  488. <property>
  489. <name>ozone.scm.client.address</name>
  490. <value/>
  491. <tag>OZONE, SCM, REQUIRED</tag>
  492. <description>
  493. The address of the Ozone SCM client service. This is a required setting.
  494. It is a string in the host:port format. The port number is optional
  495. and defaults to 9860.
  496. </description>
  497. </property>
  498. <property>
  499. <name>ozone.scm.client.bind.host</name>
  500. <value>0.0.0.0</value>
  501. <tag>OZONE, SCM, MANAGEMENT</tag>
  502. <description>The hostname or IP address used by the SCM client endpoint to
  503. bind.
  504. This setting is used by the SCM only and never used by clients.
  505. The setting can be useful in multi-homed setups to restrict the
  506. availability of the SCM client service to a specific interface.
  507. The default is appropriate for most clusters.
  508. </description>
  509. </property>
  510. <property>
  511. <name>ozone.scm.client.port</name>
  512. <value>9860</value>
  513. <tag>OZONE, SCM, MANAGEMENT</tag>
  514. <description>The port number of the Ozone SCM client service.</description>
  515. </property>
  516. <property>
  517. <name>ozone.scm.container.deletion-choosing.policy</name>
  518. <value>
  519. org.apache.hadoop.ozone.container.common.impl.TopNOrderedContainerDeletionChoosingPolicy
  520. </value>
  521. <tag>OZONE, MANAGEMENT</tag>
  522. <description>
  523. The policy used for choosing desire containers for block deletion.
  524. Datanode selects some containers to process block deletion
  525. in a certain interval defined by ozone.block.deleting.service.interval.
  526. The number of containers to process in each interval is defined
  527. by ozone.block.deleting.container.limit.per.interval. This property is
  528. used to configure the policy applied while selecting containers.
  529. There are two policies supporting now:
  530. RandomContainerDeletionChoosingPolicy and
  531. TopNOrderedContainerDeletionChoosingPolicy.
  532. org.apache.hadoop.ozone.container.common.impl.RandomContainerDeletionChoosingPolicy
  533. implements a simply random policy that to return a random list of
  534. containers.
  535. org.apache.hadoop.ozone.container.common.impl.TopNOrderedContainerDeletionChoosingPolicy
  536. implements a policy that choosing top count number of containers in a
  537. pending-deletion-blocks's num
  538. based descending order.
  539. </description>
  540. </property>
  541. <property>
  542. <name>ozone.scm.container.placement.impl</name>
  543. <value>
  544. org.apache.hadoop.hdds.scm.container.placement.algorithms.SCMContainerPlacementRandom
  545. </value>
  546. <tag>OZONE, MANAGEMENT</tag>
  547. <description>Placement policy class for containers.
  548. Defaults to SCMContainerPlacementRandom.class
  549. </description>
  550. </property>
  551. <property>
  552. <name>ozone.scm.container.provision_batch_size</name>
  553. <value>20</value>
  554. <tag>OZONE, PERFORMANCE</tag>
  555. <description>Pre-provision specified number of containers for block
  556. allocation.
  557. </description>
  558. </property>
  559. <property>
  560. <name>ozone.scm.container.size.gb</name>
  561. <value>5</value>
  562. <tag>OZONE, PERFORMANCE, MANAGEMENT</tag>
  563. <description>
  564. Default container size used by Ozone. This value is specified
  565. in GB.
  566. There are two considerations while picking this number. The speed at which
  567. a container can be replicated, determined by the network speed and the
  568. metadata that each container generates. So selecting a large number
  569. creates less SCM metadata, but recovery time will be more. 5GB is a number
  570. that maps to quick replication times in gigabit networks, but still
  571. balances the amount of metadata.
  572. </description>
  573. </property>
  574. <property>
  575. <name>ozone.scm.datanode.address</name>
  576. <value/>
  577. <tag>OZONE, MANAGEMENT</tag>
  578. <description>
  579. The address of the Ozone SCM service used for internal
  580. communication between the DataNodes and the SCM.
  581. It is a string in the host:port format. The port number is optional
  582. and defaults to 9861.
  583. This setting is optional. If unspecified then the hostname portion
  584. is picked from the ozone.scm.client.address setting and the
  585. default service port of 9861 is chosen.
  586. </description>
  587. </property>
  588. <property>
  589. <name>ozone.scm.datanode.bind.host</name>
  590. <value/>
  591. <tag>OZONE, MANAGEMENT</tag>
  592. <description>
  593. The hostname or IP address used by the SCM service endpoint to
  594. bind.
  595. </description>
  596. </property>
  597. <property>
  598. <name>ozone.scm.datanode.id</name>
  599. <value/>
  600. <tag>OZONE, MANAGEMENT</tag>
  601. <description>The path that datanodes will use to store the datanode ID.
  602. If this value is not set, then datanode ID is created under the
  603. metadata directory.
  604. </description>
  605. </property>
  606. <property>
  607. <name>ozone.scm.datanode.port</name>
  608. <value>9861</value>
  609. <tag>OZONE, MANAGEMENT</tag>
  610. <description>
  611. The port number of the Ozone SCM service.
  612. </description>
  613. </property>
  614. <property>
  615. <name>ozone.scm.db.cache.size.mb</name>
  616. <value>128</value>
  617. <tag>OZONE, PERFORMANCE</tag>
  618. <description>SCM keeps track of the Containers in the cluster. This DB holds
  619. the container metadata. This value is set to a small value to make the
  620. unit
  621. testing runs smooth. In production, we recommend a value of 16GB or
  622. higher. This allows SCM to avoid disk I/O's while looking up the container
  623. location.
  624. </description>
  625. </property>
  626. <property>
  627. <name>ozone.scm.dead.node.interval</name>
  628. <value>10m</value>
  629. <tag>OZONE, MANAGEMENT</tag>
  630. <description>
  631. The interval between heartbeats before a node is tagged as dead.
  632. </description>
  633. </property>
  634. <property>
  635. <name>ozone.scm.handler.count.key</name>
  636. <value>10</value>
  637. <tag>OZONE, MANAGEMENT, PERFORMANCE</tag>
  638. <description>
  639. The number of RPC handler threads for each SCM service
  640. endpoint.
  641. The default is appropriate for small clusters (tens of nodes).
  642. Set a value that is appropriate for the cluster size. Generally, HDFS
  643. recommends RPC handler count is set to 20 * log2(Cluster Size) with an
  644. upper limit of 200. However, SCM will not have the same amount of
  645. traffic as Namenode, so a value much smaller than that will work well too.
  646. </description>
  647. </property>
  648. <property>
  649. <name>ozone.scm.heartbeat.interval</name>
  650. <value>30s</value>
  651. <tag>OZONE, MANAGEMENT</tag>
  652. <description>
  653. The heartbeat interval from a data node to SCM. Yes,
  654. it is not three but 30, since most data nodes will heart beating via Ratis
  655. heartbeats. If a client is not able to talk to a data node, it will notify
  656. OM/SCM eventually. So a 30 second HB seems to work. This assumes that
  657. replication strategy used is Ratis if not, this value should be set to
  658. something smaller like 3 seconds.
  659. </description>
  660. </property>
  661. <property>
  662. <name>ozone.scm.heartbeat.log.warn.interval.count</name>
  663. <value>10</value>
  664. <tag>OZONE, MANAGEMENT</tag>
  665. <description>
  666. Defines how frequently we will log the missing of a heartbeat to SCM.
  667. For example in the default case, we will write a warning message for each
  668. ten consecutive heartbeats that we miss to SCM. This helps in reducing
  669. clutter in a data node log, but trade off is that logs will have less of
  670. this statement.
  671. </description>
  672. </property>
  673. <property>
  674. <name>ozone.scm.heartbeat.rpc-timeout</name>
  675. <value>1000</value>
  676. <tag>OZONE, MANAGEMENT</tag>
  677. <description>
  678. Timeout value for the RPC from Datanode to SCM in milliseconds.
  679. </description>
  680. </property>
  681. <property>
  682. <name>ozone.scm.heartbeat.thread.interval</name>
  683. <value>3s</value>
  684. <tag>OZONE, MANAGEMENT</tag>
  685. <description>
  686. When a heartbeat from the data node arrives on SCM, It is queued for
  687. processing with the time stamp of when the heartbeat arrived. There is a
  688. heartbeat processing thread inside SCM that runs at a specified interval.
  689. This value controls how frequently this thread is run.
  690. There are some assumptions build into SCM such as this value should allow
  691. the heartbeat processing thread to run at least three times more
  692. frequently than heartbeats and at least five times more than stale node
  693. detection time. If you specify a wrong value, SCM will gracefully refuse
  694. to run. For more info look at the node manager tests in SCM.
  695. In short, you don't need to change this.
  696. </description>
  697. </property>
  698. <property>
  699. <name>ozone.scm.http-address</name>
  700. <value>0.0.0.0:9876</value>
  701. <tag>OZONE, MANAGEMENT</tag>
  702. <description>
  703. The address and the base port where the SCM web ui will listen on.
  704. If the port is 0 then the server will start on a free port.
  705. </description>
  706. </property>
  707. <property>
  708. <name>ozone.scm.http-bind-host</name>
  709. <value>0.0.0.0</value>
  710. <tag>OZONE, MANAGEMENT</tag>
  711. <description>
  712. The actual address the SCM web server will bind to. If this
  713. optional address is set, it overrides only the hostname portion of
  714. ozone.scm.http-address.
  715. </description>
  716. </property>
  717. <property>
  718. <name>ozone.scm.http.enabled</name>
  719. <value>true</value>
  720. <tag>OZONE, MANAGEMENT</tag>
  721. <description>
  722. Property to enable or disable SCM web ui.
  723. </description>
  724. </property>
  725. <property>
  726. <name>ozone.scm.https-address</name>
  727. <value>0.0.0.0:9877</value>
  728. <tag>OZONE, MANAGEMENT</tag>
  729. <description>
  730. The address and the base port where the SCM web UI will listen
  731. on using HTTPS.
  732. If the port is 0 then the server will start on a free port.
  733. </description>
  734. </property>
  735. <property>
  736. <name>ozone.scm.https-bind-host</name>
  737. <value>0.0.0.0</value>
  738. <tag>OZONE, MANAGEMENT</tag>
  739. <description>
  740. The actual address the SCM web server will bind to using HTTPS.
  741. If this optional address is set, it overrides only the hostname portion of
  742. ozone.scm.http-address.
  743. </description>
  744. </property>
  745. <property>
  746. <name>ozone.scm.keytab.file</name>
  747. <value/>
  748. <tag>OZONE, SECURITY</tag>
  749. <description>
  750. The keytab file for Kerberos authentication in SCM.
  751. </description>
  752. </property>
  753. <property>
  754. <name>ozone.scm.names</name>
  755. <value/>
  756. <tag>OZONE</tag>
  757. <description>
  758. The value of this property is a set of DNS | DNS:PORT | IP
  759. Address | IP:PORT. Written as a comma separated string. e.g. scm1,
  760. scm2:8020, 7.7.7.7:7777.
  761. This property allows datanodes to discover where SCM is, so that
  762. datanodes can send heartbeat to SCM.
  763. </description>
  764. </property>
  765. <property>
  766. <name>ozone.scm.stale.node.interval</name>
  767. <value>90s</value>
  768. <tag>OZONE, MANAGEMENT</tag>
  769. <description>
  770. The interval for stale node flagging. Please
  771. see ozone.scm.heartbeat.thread.interval before changing this value.
  772. </description>
  773. </property>
  774. <property>
  775. <name>ozone.trace.enabled</name>
  776. <value>false</value>
  777. <tag>OZONE, DEBUG</tag>
  778. <description>
  779. Setting this flag to true dumps the HTTP request/ response in
  780. the logs. Very useful when debugging REST protocol.
  781. </description>
  782. </property>
  783. <property>
  784. <name>ozone.web.authentication.kerberos.principal</name>
  785. <value/>
  786. <tag>OZONE, SECURITY</tag>
  787. <description>
  788. The server principal used by the SCM and OM for web UI SPNEGO
  789. authentication when Kerberos security is enabled. This is typically set to
  790. HTTP/_HOST@REALM.TLD The SPNEGO server principal begins with the prefix
  791. HTTP/ by convention.
  792. If the value is '*', the web server will attempt to login with
  793. every principal specified in the keytab file.
  794. </description>
  795. </property>
  796. <!--Client Settings-->
  797. <property>
  798. <name>scm.container.client.idle.threshold</name>
  799. <value>10s</value>
  800. <tag>OZONE, PERFORMANCE</tag>
  801. <description>
  802. In the standalone pipelines, the SCM clients use netty to
  803. communicate with the container. It also uses connection pooling to
  804. reduce client side overheads. This allows a connection to stay idle for
  805. a while before the connection is closed.
  806. </description>
  807. </property>
  808. <property>
  809. <name>scm.container.client.max.size</name>
  810. <value>256</value>
  811. <tag>OZONE, PERFORMANCE</tag>
  812. <description>
  813. Controls the maximum number of connections that we cached via
  814. clientconnection pooling. If the number of connection
  815. exceed this count then the oldest idle connection is evicted.
  816. </description>
  817. </property>
  818. <property>
  819. <name>scm.container.client.max.outstanding.requests</name>
  820. <value>100</value>
  821. <tag>OZONE, PERFORMANCE</tag>
  822. <description>
  823. Controls the maximum number of outstanding async requests that can be
  824. handled by the Standalone as well as Ratis client.
  825. </description>
  826. </property>
  827. <property>
  828. <name>ozone.scm.container.creation.lease.timeout</name>
  829. <value>60s</value>
  830. <tag>OZONE, SCM</tag>
  831. <description>
  832. Container creation timeout in milliseconds to be used by SCM. When
  833. BEGIN_CREATE event happens the container is moved from ALLOCATED to
  834. CREATING state, SCM will now wait for the configured amount of time
  835. to get COMPLETE_CREATE event if it doesn't receive it will move the
  836. container to DELETING.
  837. </description>
  838. </property>
  839. <property>
  840. <name>ozone.key.preallocation.maxsize</name>
  841. <value>134217728</value>
  842. <tag>OZONE, OM, PERFORMANCE</tag>
  843. <description>
  844. When a new key write request is sent to OM, if a size is requested, at most
  845. 128MB of size is allocated at request time. If client needs more space for the
  846. write, separate block allocation requests will be made.
  847. </description>
  848. </property>
  849. <property>
  850. <name>ozone.client.list.cache</name>
  851. <value>1000</value>
  852. <tag>OZONE, PERFORMANCE</tag>
  853. <description>
  854. Configuration property to configure the cache size of client list calls.
  855. </description>
  856. </property>
  857. <property>
  858. <name>ozone.replication</name>
  859. <value>3</value>
  860. <tag>OZONE, CLIENT</tag>
  861. <description>
  862. Default replication value. The actual number of replications can be
  863. specified when writing the key. The default is used if replication
  864. is not specified. Supported values: 1 and 3.
  865. </description>
  866. </property>
  867. <property>
  868. <name>ozone.replication.type</name>
  869. <value>RATIS</value>
  870. <tag>OZONE, CLIENT</tag>
  871. <description>
  872. Default replication type to be used while writing key into ozone. The
  873. value can be specified when writing the key, default is used when
  874. nothing is specified. Supported values: RATIS, STAND_ALONE and CHAINED.
  875. </description>
  876. </property>
  877. <property>
  878. <name>ozone.scm.container.close.threshold</name>
  879. <value>0.9f</value>
  880. <tag>OZONE, SCM</tag>
  881. <description>
  882. This determines the threshold to be used for closing a container.
  883. When the container used percentage reaches this threshold,
  884. the container will be closed. Value should be a positive, non-zero
  885. percentage in float notation (X.Yf), with 1.0f meaning 100%.
  886. </description>
  887. </property>
  888. <property>
  889. <name>ozone.rest.client.http.connection.max</name>
  890. <value>100</value>
  891. <tag>OZONE, CLIENT</tag>
  892. <description>
  893. This defines the overall connection limit for the connection pool used in
  894. RestClient.
  895. </description>
  896. </property>
  897. <property>
  898. <name>ozone.rest.client.http.connection.per-route.max</name>
  899. <value>20</value>
  900. <tag>OZONE, CLIENT</tag>
  901. <description>
  902. This defines the connection limit per one HTTP route/host. Total max
  903. connection is limited by ozone.rest.client.http.connection.max property.
  904. </description>
  905. </property>
  906. <property>
  907. <name>ozone.open.key.cleanup.service.interval.seconds</name>
  908. <value>86400</value>
  909. <tag>OZONE, OM, PERFORMANCE</tag>
  910. <description>
  911. A background job periodically checks open key entries and delete the expired ones. This entry controls the
  912. interval of this cleanup check.
  913. </description>
  914. </property>
  915. <property>
  916. <name>ozone.open.key.expire.threshold</name>
  917. <value>86400</value>
  918. <tag>OZONE, OM, PERFORMANCE</tag>
  919. <description>
  920. Controls how long an open key operation is considered active. Specifically, if a key
  921. has been open longer than the value of this config entry, that open key is considered as
  922. expired (e.g. due to client crash). Default to 24 hours.
  923. </description>
  924. </property>
  925. <property>
  926. <name>hadoop.tags.custom</name>
  927. <value>OZONE,MANAGEMENT,SECURITY,PERFORMANCE,DEBUG,CLIENT,SERVER,OM,SCM,CRITICAL,RATIS,CONTAINER,REQUIRED,REST,STORAGE,PIPELINE,STANDALONE</value>
  928. </property>
  929. <property>
  930. <name>ozone.tags.system</name>
  931. <value>OZONE,MANAGEMENT,SECURITY,PERFORMANCE,DEBUG,CLIENT,SERVER,OM,SCM,CRITICAL,RATIS,CONTAINER,REQUIRED,REST,STORAGE,PIPELINE,STANDALONE</value>
  932. </property>
  933. <property>
  934. <name>hdds.rest.rest-csrf.enabled</name>
  935. <value>false</value>
  936. <description>
  937. If true, then enables Object Store REST server protection against
  938. cross-site request forgery (CSRF).
  939. </description>
  940. </property>
  941. <property>
  942. <name>hdds.rest.http-address</name>
  943. <value>0.0.0.0:9880</value>
  944. <description>The http address of Object Store REST server inside the
  945. datanode.</description>
  946. </property>
  947. <property>
  948. <name>hdds.rest.netty.high.watermark</name>
  949. <value>65535</value>
  950. <description>
  951. High watermark configuration to Netty for Object Store REST server.
  952. </description>
  953. </property>
  954. <property>
  955. <name>hdds.rest.netty.low.watermark</name>
  956. <value>32768</value>
  957. <description>
  958. Low watermark configuration to Netty for Object Store REST server.
  959. </description>
  960. </property>
  961. <property>
  962. <name>hdds.datanode.plugins</name>
  963. <value>org.apache.hadoop.ozone.web.OzoneHddsDatanodeService</value>
  964. <description>
  965. Comma-separated list of HDDS datanode plug-ins to be activated when
  966. HDDS service starts as part of datanode.
  967. </description>
  968. </property>
  969. <property>
  970. <name>hdds.datanode.storage.utilization.warning.threshold</name>
  971. <value>0.75</value>
  972. <tag>OZONE, SCM, MANAGEMENT</tag>
  973. <description>
  974. If a datanode overall storage utilization exceeds more than this
  975. value, a warning will be logged while processing the nodeReport in SCM.
  976. </description>
  977. </property>
  978. <property>
  979. <name>hdds.datanode.storage.utilization.critical.threshold</name>
  980. <value>0.95</value>
  981. <tag>OZONE, SCM, MANAGEMENT</tag>
  982. <description>
  983. If a datanode overall storage utilization exceeds more than this
  984. value, the datanode will be marked out of space.
  985. </description>
  986. </property>
  987. </configuration>