ozone-default.xml 38 KB

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