HBASE-24106 Update getting started documentation after HBASE-24086
[hbase.git] / src / main / asciidoc / _chapters / hbase-default.adoc
blobdd51c4964bbe2e61d795a1f9fae103e372dc9b3c
4 ////
5 /**
6  *
7  * Licensed to the Apache Software Foundation (ASF) under one
8  * or more contributor license agreements.  See the NOTICE file
9  * distributed with this work for additional information
10  * regarding copyright ownership.  The ASF licenses this file
11  * to you under the Apache License, Version 2.0 (the
12  * "License"); you may not use this file except in compliance
13  * with the License.  You may obtain a copy of the License at
14  *
15  *     http://www.apache.org/licenses/LICENSE-2.0
16  *
17  * Unless required by applicable law or agreed to in writing, software
18  * distributed under the License is distributed on an "AS IS" BASIS,
19  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20  * See the License for the specific language governing permissions and
21  * limitations under the License.
22  */
23 ////
25 :doctype: book
26 :numbered:
27 :toc: left
28 :icons: font
29 :experimental:
31 [[hbase_default_configurations]]
32 === HBase Default Configuration
34 The documentation below is generated using the default hbase configuration file, _hbase-default.xml_, as source.
37 [[hbase.tmp.dir]]
38 *`hbase.tmp.dir`*::
40 .Description
41 Temporary directory on the local filesystem.
42     Change this setting to point to a location more permanent
43     than '/tmp', the usual resolve for java.io.tmpdir, as the
44     '/tmp' directory is cleared on machine restart.
46 .Default
47 `${java.io.tmpdir}/hbase-${user.name}`
50 [[hbase.rootdir]]
51 *`hbase.rootdir`*::
53 .Description
54 The directory shared by region servers and into
55     which HBase persists.  The URL should be 'fully-qualified'
56     to include the filesystem scheme.  For example, to specify the
57     HDFS directory '/hbase' where the HDFS instance's namenode is
58     running at namenode.example.org on port 9000, set this value to:
59     hdfs://namenode.example.org:9000/hbase.  By default, we write
60     to whatever ${hbase.tmp.dir} is set to -- usually /tmp --
61     so change this configuration or else all data will be lost on
62     machine restart.
64 .Default
65 `${hbase.tmp.dir}/hbase`
68 [[hbase.cluster.distributed]]
69 *`hbase.cluster.distributed`*::
71 .Description
72 The mode the cluster will be in. Possible values are
73       false for standalone mode and true for distributed mode.  If
74       false, startup will run all HBase and ZooKeeper daemons together
75       in one JVM.
77 .Default
78 `false`
81 [[hbase.zookeeper.quorum]]
82 *`hbase.zookeeper.quorum`*::
84 .Description
85 Comma separated list of servers in the ZooKeeper ensemble
86     (This config. should have been named hbase.zookeeper.ensemble).
87     For example, "host1.mydomain.com,host2.mydomain.com,host3.mydomain.com".
88     By default this is set to localhost for local and pseudo-distributed modes
89     of operation. For a fully-distributed setup, this should be set to a full
90     list of ZooKeeper ensemble servers. If HBASE_MANAGES_ZK is set in hbase-env.sh,
91     this is the list of servers which hbase will start/stop ZooKeeper on as
92     part of cluster start/stop.  Client-side, we will take this list of
93     ensemble members and put it together with the hbase.zookeeper.clientPort
94     config and pass it into zookeeper constructor as the connectString
95     parameter.
97 .Default
98 `localhost`
101 [[hbase.local.dir]]
102 *`hbase.local.dir`*::
104 .Description
105 Directory on the local filesystem to be used
106     as a local storage.
108 .Default
109 `${hbase.tmp.dir}/local/`
112 [[hbase.master.info.port]]
113 *`hbase.master.info.port`*::
115 .Description
116 The port for the HBase Master web UI.
117     Set to -1 if you do not want a UI instance run.
119 .Default
120 `16010`
123 [[hbase.master.info.bindAddress]]
124 *`hbase.master.info.bindAddress`*::
126 .Description
127 The bind address for the HBase Master web UI
130 .Default
131 `0.0.0.0`
134 [[hbase.master.logcleaner.plugins]]
135 *`hbase.master.logcleaner.plugins`*::
137 .Description
138 A comma-separated list of BaseLogCleanerDelegate invoked by
139     the LogsCleaner service. These WAL cleaners are called in order,
140     so put the cleaner that prunes the most files in front. To
141     implement your own BaseLogCleanerDelegate, just put it in HBase's classpath
142     and add the fully qualified class name here. Always add the above
143     default log cleaners in the list.
145 .Default
146 `org.apache.hadoop.hbase.master.cleaner.TimeToLiveLogCleaner`
149 [[hbase.master.logcleaner.ttl]]
150 *`hbase.master.logcleaner.ttl`*::
152 .Description
153 Maximum time a WAL can stay in the oldWALs directory,
154     after which it will be cleaned by a Master thread.
156 .Default
157 `600000`
160 [[hbase.master.hfilecleaner.plugins]]
161 *`hbase.master.hfilecleaner.plugins`*::
163 .Description
164 A comma-separated list of BaseHFileCleanerDelegate invoked by
165     the HFileCleaner service. These HFiles cleaners are called in order,
166     so put the cleaner that prunes the most files in front. To
167     implement your own BaseHFileCleanerDelegate, just put it in HBase's classpath
168     and add the fully qualified class name here. Always add the above
169     default log cleaners in the list as they will be overwritten in
170     hbase-site.xml.
172 .Default
173 `org.apache.hadoop.hbase.master.cleaner.TimeToLiveHFileCleaner`
176 [[hbase.master.infoserver.redirect]]
177 *`hbase.master.infoserver.redirect`*::
179 .Description
180 Whether or not the Master listens to the Master web
181       UI port (hbase.master.info.port) and redirects requests to the web
182       UI server shared by the Master and RegionServer.
184 .Default
185 `true`
188 [[hbase.regionserver.port]]
189 *`hbase.regionserver.port`*::
191 .Description
192 The port the HBase RegionServer binds to.
194 .Default
195 `16020`
198 [[hbase.regionserver.info.port]]
199 *`hbase.regionserver.info.port`*::
201 .Description
202 The port for the HBase RegionServer web UI
203     Set to -1 if you do not want the RegionServer UI to run.
205 .Default
206 `16030`
209 [[hbase.regionserver.info.bindAddress]]
210 *`hbase.regionserver.info.bindAddress`*::
212 .Description
213 The address for the HBase RegionServer web UI
215 .Default
216 `0.0.0.0`
219 [[hbase.regionserver.info.port.auto]]
220 *`hbase.regionserver.info.port.auto`*::
222 .Description
223 Whether or not the Master or RegionServer
224     UI should search for a port to bind to. Enables automatic port
225     search if hbase.regionserver.info.port is already in use.
226     Useful for testing, turned off by default.
228 .Default
229 `false`
232 [[hbase.regionserver.handler.count]]
233 *`hbase.regionserver.handler.count`*::
235 .Description
236 Count of RPC Listener instances spun up on RegionServers.
237     Same property is used by the Master for count of master handlers.
239 .Default
240 `30`
243 [[hbase.ipc.server.callqueue.handler.factor]]
244 *`hbase.ipc.server.callqueue.handler.factor`*::
246 .Description
247 Factor to determine the number of call queues.
248       A value of 0 means a single queue shared between all the handlers.
249       A value of 1 means that each handler has its own queue.
251 .Default
252 `0.1`
255 [[hbase.ipc.server.callqueue.read.ratio]]
256 *`hbase.ipc.server.callqueue.read.ratio`*::
258 .Description
259 Split the call queues into read and write queues.
260       The specified interval (which should be between 0.0 and 1.0)
261       will be multiplied by the number of call queues.
262       A value of 0 indicates to not split the call queues, meaning that both read and write
263       requests will be pushed to the same set of queues.
264       A value lower than 0.5 means that there will be less read queues than write queues.
265       A value of 0.5 means there will be the same number of read and write queues.
266       A value greater than 0.5 means that there will be more read queues than write queues.
267       A value of 1.0 means that all the queues except one are used to dispatch read requests.
269       Example: Given the total number of call queues being 10
270       a read.ratio of 0 means that: the 10 queues will contain both read/write requests.
271       a read.ratio of 0.3 means that: 3 queues will contain only read requests
272       and 7 queues will contain only write requests.
273       a read.ratio of 0.5 means that: 5 queues will contain only read requests
274       and 5 queues will contain only write requests.
275       a read.ratio of 0.8 means that: 8 queues will contain only read requests
276       and 2 queues will contain only write requests.
277       a read.ratio of 1 means that: 9 queues will contain only read requests
278       and 1 queues will contain only write requests.
281 .Default
285 [[hbase.ipc.server.callqueue.scan.ratio]]
286 *`hbase.ipc.server.callqueue.scan.ratio`*::
288 .Description
289 Given the number of read call queues, calculated from the total number
290       of call queues multiplied by the callqueue.read.ratio, the scan.ratio property
291       will split the read call queues into small-read and long-read queues.
292       A value lower than 0.5 means that there will be less long-read queues than short-read queues.
293       A value of 0.5 means that there will be the same number of short-read and long-read queues.
294       A value greater than 0.5 means that there will be more long-read queues than short-read queues
295       A value of 0 or 1 indicates to use the same set of queues for gets and scans.
297       Example: Given the total number of read call queues being 8
298       a scan.ratio of 0 or 1 means that: 8 queues will contain both long and short read requests.
299       a scan.ratio of 0.3 means that: 2 queues will contain only long-read requests
300       and 6 queues will contain only short-read requests.
301       a scan.ratio of 0.5 means that: 4 queues will contain only long-read requests
302       and 4 queues will contain only short-read requests.
303       a scan.ratio of 0.8 means that: 6 queues will contain only long-read requests
304       and 2 queues will contain only short-read requests.
307 .Default
311 [[hbase.regionserver.msginterval]]
312 *`hbase.regionserver.msginterval`*::
314 .Description
315 Interval between messages from the RegionServer to Master
316     in milliseconds.
318 .Default
319 `3000`
322 [[hbase.regionserver.regionSplitLimit]]
323 *`hbase.regionserver.regionSplitLimit`*::
325 .Description
326 Limit for the number of regions after which no more region
327     splitting should take place. This is not a hard limit for the number of
328     regions but acts as a guideline for the regionserver to stop splitting after
329     a certain limit. Default is MAX_INT; i.e. do not block splitting.
331 .Default
332 `2147483647`
335 [[hbase.regionserver.logroll.period]]
336 *`hbase.regionserver.logroll.period`*::
338 .Description
339 Period at which we will roll the commit log regardless
340     of how many edits it has.
342 .Default
343 `3600000`
346 [[hbase.regionserver.logroll.errors.tolerated]]
347 *`hbase.regionserver.logroll.errors.tolerated`*::
349 .Description
350 The number of consecutive WAL close errors we will allow
351     before triggering a server abort.  A setting of 0 will cause the
352     region server to abort if closing the current WAL writer fails during
353     log rolling.  Even a small value (2 or 3) will allow a region server
354     to ride over transient HDFS errors.
356 .Default
360 [[hbase.regionserver.hlog.reader.impl]]
361 *`hbase.regionserver.hlog.reader.impl`*::
363 .Description
364 The WAL file reader implementation.
366 .Default
367 `org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader`
370 [[hbase.regionserver.hlog.writer.impl]]
371 *`hbase.regionserver.hlog.writer.impl`*::
373 .Description
374 The WAL file writer implementation.
376 .Default
377 `org.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter`
379 [[hbase.regionserver.global.memstore.size]]
380 *`hbase.regionserver.global.memstore.size`*::
382 .Description
383 Maximum size of all memstores in a region server before new
384       updates are blocked and flushes are forced. Defaults to 40% of heap.
385       Updates are blocked and flushes are forced until size of all memstores
386       in a region server hits hbase.regionserver.global.memstore.size.lower.limit.
388 .Default
389 `0.4`
392 [[hbase.regionserver.global.memstore.size.lower.limit]]
393 *`hbase.regionserver.global.memstore.size.lower.limit`*::
395 .Description
396 Maximum size of all memstores in a region server before flushes are forced.
397       Defaults to 95% of hbase.regionserver.global.memstore.size.
398       A 100% value for this property causes the minimum possible flushing to occur when updates are
399       blocked due to memstore limiting.
401 .Default
402 `0.95`
405 [[hbase.regionserver.optionalcacheflushinterval]]
406 *`hbase.regionserver.optionalcacheflushinterval`*::
408 .Description
410     Maximum amount of time an edit lives in memory before being automatically flushed.
411     Default 1 hour. Set it to 0 to disable automatic flushing.
413 .Default
414 `3600000`
417 [[hbase.regionserver.dns.interface]]
418 *`hbase.regionserver.dns.interface`*::
420 .Description
421 The name of the Network Interface from which a region server
422       should report its IP address.
424 .Default
425 `default`
428 [[hbase.regionserver.dns.nameserver]]
429 *`hbase.regionserver.dns.nameserver`*::
431 .Description
432 The host name or IP address of the name server (DNS)
433       which a region server should use to determine the host name used by the
434       master for communication and display purposes.
436 .Default
437 `default`
440 [[hbase.regionserver.region.split.policy]]
441 *`hbase.regionserver.region.split.policy`*::
443 .Description
445       A split policy determines when a region should be split. The various other split policies that
446       are available currently are ConstantSizeRegionSplitPolicy, DisabledRegionSplitPolicy,
447       DelimitedKeyPrefixRegionSplitPolicy, KeyPrefixRegionSplitPolicy,
448       BusyRegionSplitPolicy, SteppingSplitPolicy etc.
451 .Default
452 `org.apache.hadoop.hbase.regionserver.SteppingSplitPolicy`
455 [[zookeeper.session.timeout]]
456 *`zookeeper.session.timeout`*::
458 .Description
459 ZooKeeper session timeout in milliseconds. It is used in two different ways.
460       First, this value is used in the ZK client that HBase uses to connect to the ensemble.
461       It is also used by HBase when it starts a ZK server and it is passed as the 'maxSessionTimeout'. See
462       https://zookeeper.apache.org/doc/current/zookeeperProgrammers.html#ch_zkSessions.
463       For example, if an HBase region server connects to a ZK ensemble that's also managed
464       by HBase, then the
465       session timeout will be the one specified by this configuration. But, a region server that connects
466       to an ensemble managed with a different configuration will be subjected that ensemble's maxSessionTimeout. So,
467       even though HBase might propose using 90 seconds, the ensemble can have a max timeout lower than this and
468       it will take precedence. The current default maxSessionTimeout that ZK ships with is 40 seconds, which is lower than HBase's.
471 .Default
472 `90000`
475 [[zookeeper.znode.parent]]
476 *`zookeeper.znode.parent`*::
478 .Description
479 Root ZNode for HBase in ZooKeeper. All of HBase's ZooKeeper
480       files that are configured with a relative path will go under this node.
481       By default, all of HBase's ZooKeeper file path are configured with a
482       relative path, so they will all go under this directory unless changed.
484 .Default
485 `/hbase`
488 [[zookeeper.znode.acl.parent]]
489 *`zookeeper.znode.acl.parent`*::
491 .Description
492 Root ZNode for access control lists.
494 .Default
495 `acl`
498 [[hbase.zookeeper.dns.interface]]
499 *`hbase.zookeeper.dns.interface`*::
501 .Description
502 The name of the Network Interface from which a ZooKeeper server
503       should report its IP address.
505 .Default
506 `default`
509 [[hbase.zookeeper.dns.nameserver]]
510 *`hbase.zookeeper.dns.nameserver`*::
512 .Description
513 The host name or IP address of the name server (DNS)
514       which a ZooKeeper server should use to determine the host name used by the
515       master for communication and display purposes.
517 .Default
518 `default`
521 [[hbase.zookeeper.peerport]]
522 *`hbase.zookeeper.peerport`*::
524 .Description
525 Port used by ZooKeeper peers to talk to each other.
526     See https://zookeeper.apache.org/doc/r3.4.10/zookeeperStarted.html#sc_RunningReplicatedZooKeeper
527     for more information.
529 .Default
530 `2888`
533 [[hbase.zookeeper.leaderport]]
534 *`hbase.zookeeper.leaderport`*::
536 .Description
537 Port used by ZooKeeper for leader election.
538     See https://zookeeper.apache.org/doc/r3.4.10/zookeeperStarted.html#sc_RunningReplicatedZooKeeper
539     for more information.
541 .Default
542 `3888`
545 [[hbase.zookeeper.useMulti]]
546 *`hbase.zookeeper.useMulti`*::
548 .Description
549 Instructs HBase to make use of ZooKeeper's multi-update functionality.
550     This allows certain ZooKeeper operations to complete more quickly and prevents some issues
551     with rare Replication failure scenarios (see the release note of HBASE-2611 for an example).
552     IMPORTANT: only set this to true if all ZooKeeper servers in the cluster are on version 3.4+
553     and will not be downgraded.  ZooKeeper versions before 3.4 do not support multi-update and
554     will not fail gracefully if multi-update is invoked (see ZOOKEEPER-1495).
556 .Default
557 `true`
560 [[hbase.zookeeper.property.initLimit]]
561 *`hbase.zookeeper.property.initLimit`*::
563 .Description
564 Property from ZooKeeper's config zoo.cfg.
565     The number of ticks that the initial synchronization phase can take.
567 .Default
568 `10`
571 [[hbase.zookeeper.property.syncLimit]]
572 *`hbase.zookeeper.property.syncLimit`*::
574 .Description
575 Property from ZooKeeper's config zoo.cfg.
576     The number of ticks that can pass between sending a request and getting an
577     acknowledgment.
579 .Default
583 [[hbase.zookeeper.property.dataDir]]
584 *`hbase.zookeeper.property.dataDir`*::
586 .Description
587 Property from ZooKeeper's config zoo.cfg.
588     The directory where the snapshot is stored.
590 .Default
591 `${hbase.tmp.dir}/zookeeper`
594 [[hbase.zookeeper.property.clientPort]]
595 *`hbase.zookeeper.property.clientPort`*::
597 .Description
598 Property from ZooKeeper's config zoo.cfg.
599     The port at which the clients will connect.
601 .Default
602 `2181`
605 [[hbase.zookeeper.property.maxClientCnxns]]
606 *`hbase.zookeeper.property.maxClientCnxns`*::
608 .Description
609 Property from ZooKeeper's config zoo.cfg.
610     Limit on number of concurrent connections (at the socket level) that a
611     single client, identified by IP address, may make to a single member of
612     the ZooKeeper ensemble. Set high to avoid zk connection issues running
613     standalone and pseudo-distributed.
615 .Default
616 `300`
619 [[hbase.client.write.buffer]]
620 *`hbase.client.write.buffer`*::
622 .Description
623 Default size of the BufferedMutator write buffer in bytes.
624     A bigger buffer takes more memory -- on both the client and server
625     side since server instantiates the passed write buffer to process
626     it -- but a larger buffer size reduces the number of RPCs made.
627     For an estimate of server-side memory-used, evaluate
628     hbase.client.write.buffer * hbase.regionserver.handler.count
630 .Default
631 `2097152`
634 [[hbase.client.pause]]
635 *`hbase.client.pause`*::
637 .Description
638 General client pause value.  Used mostly as value to wait
639     before running a retry of a failed get, region lookup, etc.
640     See hbase.client.retries.number for description of how we backoff from
641     this initial pause amount and how this pause works w/ retries.
643 .Default
644 `100`
647 [[hbase.client.retries.number]]
648 *`hbase.client.retries.number`*::
650 .Description
651 Maximum retries.  Used as maximum for all retryable
652     operations such as the getting of a cell's value, starting a row update,
653     etc.  Retry interval is a rough function based on hbase.client.pause.  At
654     first we retry at this interval but then with backoff, we pretty quickly reach
655     retrying every ten seconds.  See HConstants#RETRY_BACKOFF for how the backup
656     ramps up.  Change this setting and hbase.client.pause to suit your workload.
658 .Default
659 `35`
662 [[hbase.client.max.total.tasks]]
663 *`hbase.client.max.total.tasks`*::
665 .Description
666 The maximum number of concurrent tasks a single HTable instance will
667     send to the cluster.
669 .Default
670 `100`
673 [[hbase.client.max.perserver.tasks]]
674 *`hbase.client.max.perserver.tasks`*::
676 .Description
677 The maximum number of concurrent tasks a single HTable instance will
678     send to a single region server.
680 .Default
684 [[hbase.client.max.perregion.tasks]]
685 *`hbase.client.max.perregion.tasks`*::
687 .Description
688 The maximum number of concurrent connections the client will
689     maintain to a single Region. That is, if there is already
690     hbase.client.max.perregion.tasks writes in progress for this region, new puts
691     won't be sent to this region until some writes finish.
693 .Default
697 [[hbase.client.scanner.caching]]
698 *`hbase.client.scanner.caching`*::
700 .Description
701 Number of rows that will be fetched when calling next
702     on a scanner if it is not served from (local, client) memory. Higher
703     caching values will enable faster scanners but will eat up more memory
704     and some calls of next may take longer and longer times when the cache is empty.
705     Do not set this value such that the time between invocations is greater
706     than the scanner timeout; i.e. hbase.client.scanner.timeout.period
708 .Default
709 `100`
712 [[hbase.client.keyvalue.maxsize]]
713 *`hbase.client.keyvalue.maxsize`*::
715 .Description
716 Specifies the combined maximum allowed size of a KeyValue
717     instance. This is to set an upper boundary for a single entry saved in a
718     storage file. Since they cannot be split it helps avoiding that a region
719     cannot be split any further because the data is too large. It seems wise
720     to set this to a fraction of the maximum region size. Setting it to zero
721     or less disables the check.
723 .Default
724 `10485760`
727 [[hbase.client.scanner.timeout.period]]
728 *`hbase.client.scanner.timeout.period`*::
730 .Description
731 Client scanner lease period in milliseconds.
733 .Default
734 `60000`
737 [[hbase.client.localityCheck.threadPoolSize]]
738 *`hbase.client.localityCheck.threadPoolSize`*::
740 .Description
743 .Default
747 [[hbase.bulkload.retries.number]]
748 *`hbase.bulkload.retries.number`*::
750 .Description
751 Maximum retries. This is a maximum number of iterations
752     atomic bulk loads are attempted in the face of splitting operations,
753     0 means never give up.
755 .Default
756 `10`
759 [[hbase.balancer.period
760     ]]
761 *`hbase.balancer.period
762     `*::
764 .Description
765 Period at which the region balancer runs in the Master.
767 .Default
768 `300000`
771 [[hbase.regions.slop]]
772 *`hbase.regions.slop`*::
774 .Description
775 Rebalance if any regionserver has average + (average * slop) regions.
777 .Default
778 `0.2`
781 [[hbase.server.thread.wakefrequency]]
782 *`hbase.server.thread.wakefrequency`*::
784 .Description
785 Time to sleep in between searches for work (in milliseconds).
786     Used as sleep interval by service threads such as log roller.
788 .Default
789 `10000`
792 [[hbase.server.versionfile.writeattempts]]
793 *`hbase.server.versionfile.writeattempts`*::
795 .Description
797     How many time to retry attempting to write a version file
798     before just aborting. Each attempt is separated by the
799     hbase.server.thread.wakefrequency milliseconds.
801 .Default
805 [[hbase.hregion.memstore.flush.size]]
806 *`hbase.hregion.memstore.flush.size`*::
808 .Description
810     Memstore will be flushed to disk if size of the memstore
811     exceeds this number of bytes.  Value is checked by a thread that runs
812     every hbase.server.thread.wakefrequency.
814 .Default
815 `134217728`
818 [[hbase.hregion.percolumnfamilyflush.size.lower.bound]]
819 *`hbase.hregion.percolumnfamilyflush.size.lower.bound`*::
821 .Description
823     If FlushLargeStoresPolicy is used, then every time that we hit the
824     total memstore limit, we find out all the column families whose memstores
825     exceed this value, and only flush them, while retaining the others whose
826     memstores are lower than this limit. If none of the families have their
827     memstore size more than this, all the memstores will be flushed
828     (just as usual). This value should be less than half of the total memstore
829     threshold (hbase.hregion.memstore.flush.size).
832 .Default
833 `16777216`
836 [[hbase.hregion.preclose.flush.size]]
837 *`hbase.hregion.preclose.flush.size`*::
839 .Description
841       If the memstores in a region are this size or larger when we go
842       to close, run a "pre-flush" to clear out memstores before we put up
843       the region closed flag and take the region offline.  On close,
844       a flush is run under the close flag to empty memory.  During
845       this time the region is offline and we are not taking on any writes.
846       If the memstore content is large, this flush could take a long time to
847       complete.  The preflush is meant to clean out the bulk of the memstore
848       before putting up the close flag and taking the region offline so the
849       flush that runs under the close flag has little to do.
851 .Default
852 `5242880`
855 [[hbase.hregion.memstore.block.multiplier]]
856 *`hbase.hregion.memstore.block.multiplier`*::
858 .Description
860     Block updates if memstore has hbase.hregion.memstore.block.multiplier
861     times hbase.hregion.memstore.flush.size bytes.  Useful preventing
862     runaway memstore during spikes in update traffic.  Without an
863     upper-bound, memstore fills such that when it flushes the
864     resultant flush files take a long time to compact or split, or
865     worse, we OOME.
867 .Default
871 [[hbase.hregion.memstore.mslab.enabled]]
872 *`hbase.hregion.memstore.mslab.enabled`*::
874 .Description
876       Enables the MemStore-Local Allocation Buffer,
877       a feature which works to prevent heap fragmentation under
878       heavy write loads. This can reduce the frequency of stop-the-world
879       GC pauses on large heaps.
881 .Default
882 `true`
885 [[hbase.hregion.max.filesize]]
886 *`hbase.hregion.max.filesize`*::
888 .Description
890     Maximum HFile size. If the sum of the sizes of a region's HFiles has grown to exceed this
891     value, the region is split in two.
893 .Default
894 `10737418240`
897 [[hbase.hregion.majorcompaction]]
898 *`hbase.hregion.majorcompaction`*::
900 .Description
901 Time between major compactions, expressed in milliseconds. Set to 0 to disable
902       time-based automatic major compactions. User-requested and size-based major compactions will
903       still run. This value is multiplied by hbase.hregion.majorcompaction.jitter to cause
904       compaction to start at a somewhat-random time during a given window of time. The default value
905       is 7 days, expressed in milliseconds. If major compactions are causing disruption in your
906       environment, you can configure them to run at off-peak times for your deployment, or disable
907       time-based major compactions by setting this parameter to 0, and run major compactions in a
908       cron job or by another external mechanism.
910 .Default
911 `604800000`
914 [[hbase.hregion.majorcompaction.jitter]]
915 *`hbase.hregion.majorcompaction.jitter`*::
917 .Description
918 A multiplier applied to hbase.hregion.majorcompaction to cause compaction to occur
919       a given amount of time either side of hbase.hregion.majorcompaction. The smaller the number,
920       the closer the compactions will happen to the hbase.hregion.majorcompaction
921       interval.
923 .Default
924 `0.50`
927 [[hbase.hstore.compactionThreshold]]
928 *`hbase.hstore.compactionThreshold`*::
930 .Description
931  If more than this number of StoreFiles exist in any one Store
932       (one StoreFile is written per flush of MemStore), a compaction is run to rewrite all
933       StoreFiles into a single StoreFile. Larger values delay compaction, but when compaction does
934       occur, it takes longer to complete.
936 .Default
940 [[hbase.hstore.flusher.count]]
941 *`hbase.hstore.flusher.count`*::
943 .Description
944  The number of flush threads. With fewer threads, the MemStore flushes will be
945       queued. With more threads, the flushes will be executed in parallel, increasing the load on
946       HDFS, and potentially causing more compactions.
948 .Default
952 [[hbase.hstore.blockingStoreFiles]]
953 *`hbase.hstore.blockingStoreFiles`*::
955 .Description
956  If more than this number of StoreFiles exist in any one Store (one StoreFile
957      is written per flush of MemStore), updates are blocked for this region until a compaction is
958       completed, or until hbase.hstore.blockingWaitTime has been exceeded.
960 .Default
961 `10`
964 [[hbase.hstore.blockingWaitTime]]
965 *`hbase.hstore.blockingWaitTime`*::
967 .Description
968  The time for which a region will block updates after reaching the StoreFile limit
969     defined by hbase.hstore.blockingStoreFiles. After this time has elapsed, the region will stop
970     blocking updates even if a compaction has not been completed.
972 .Default
973 `90000`
976 [[hbase.hstore.compaction.min]]
977 *`hbase.hstore.compaction.min`*::
979 .Description
980 The minimum number of StoreFiles which must be eligible for compaction before
981       compaction can run. The goal of tuning hbase.hstore.compaction.min is to avoid ending up with
982       too many tiny StoreFiles to compact. Setting this value to 2 would cause a minor compaction
983       each time you have two StoreFiles in a Store, and this is probably not appropriate. If you
984       set this value too high, all the other values will need to be adjusted accordingly. For most
985       cases, the default value is appropriate. In previous versions of HBase, the parameter
986       hbase.hstore.compaction.min was named hbase.hstore.compactionThreshold.
988 .Default
992 [[hbase.hstore.compaction.max]]
993 *`hbase.hstore.compaction.max`*::
995 .Description
996 The maximum number of StoreFiles which will be selected for a single minor
997       compaction, regardless of the number of eligible StoreFiles. Effectively, the value of
998       hbase.hstore.compaction.max controls the length of time it takes a single compaction to
999       complete. Setting it larger means that more StoreFiles are included in a compaction. For most
1000       cases, the default value is appropriate.
1002 .Default
1003 `10`
1006 [[hbase.hstore.compaction.min.size]]
1007 *`hbase.hstore.compaction.min.size`*::
1009 .Description
1010 A StoreFile smaller than this size will always be eligible for minor compaction.
1011       HFiles this size or larger are evaluated by hbase.hstore.compaction.ratio to determine if
1012       they are eligible. Because this limit represents the "automatic include"limit for all
1013       StoreFiles smaller than this value, this value may need to be reduced in write-heavy
1014       environments where many StoreFiles in the 1-2 MB range are being flushed, because every
1015       StoreFile will be targeted for compaction and the resulting StoreFiles may still be under the
1016       minimum size and require further compaction. If this parameter is lowered, the ratio check is
1017       triggered more quickly. This addressed some issues seen in earlier versions of HBase but
1018       changing this parameter is no longer necessary in most situations. Default: 128 MB expressed
1019       in bytes.
1021 .Default
1022 `134217728`
1025 [[hbase.hstore.compaction.max.size]]
1026 *`hbase.hstore.compaction.max.size`*::
1028 .Description
1029 A StoreFile larger than this size will be excluded from compaction. The effect of
1030       raising hbase.hstore.compaction.max.size is fewer, larger StoreFiles that do not get
1031       compacted often. If you feel that compaction is happening too often without much benefit, you
1032       can try raising this value. Default: the value of LONG.MAX_VALUE, expressed in bytes.
1034 .Default
1035 `9223372036854775807`
1038 [[hbase.hstore.compaction.ratio]]
1039 *`hbase.hstore.compaction.ratio`*::
1041 .Description
1042 For minor compaction, this ratio is used to determine whether a given StoreFile
1043       which is larger than hbase.hstore.compaction.min.size is eligible for compaction. Its
1044       effect is to limit compaction of large StoreFiles. The value of hbase.hstore.compaction.ratio
1045       is expressed as a floating-point decimal. A large ratio, such as 10, will produce a single
1046       giant StoreFile. Conversely, a low value, such as .25, will produce behavior similar to the
1047       BigTable compaction algorithm, producing four StoreFiles. A moderate value of between 1.0 and
1048       1.4 is recommended. When tuning this value, you are balancing write costs with read costs.
1049       Raising the value (to something like 1.4) will have more write costs, because you will
1050       compact larger StoreFiles. However, during reads, HBase will need to seek through fewer
1051       StoreFiles to accomplish the read. Consider this approach if you cannot take advantage of
1052       Bloom filters. Otherwise, you can lower this value to something like 1.0 to reduce the
1053       background cost of writes, and use Bloom filters to control the number of StoreFiles touched
1054       during reads. For most cases, the default value is appropriate.
1056 .Default
1057 `1.2F`
1060 [[hbase.hstore.compaction.ratio.offpeak]]
1061 *`hbase.hstore.compaction.ratio.offpeak`*::
1063 .Description
1064 Allows you to set a different (by default, more aggressive) ratio for determining
1065       whether larger StoreFiles are included in compactions during off-peak hours. Works in the
1066       same way as hbase.hstore.compaction.ratio. Only applies if hbase.offpeak.start.hour and
1067       hbase.offpeak.end.hour are also enabled.
1069 .Default
1070 `5.0F`
1073 [[hbase.hstore.time.to.purge.deletes]]
1074 *`hbase.hstore.time.to.purge.deletes`*::
1076 .Description
1077 The amount of time to delay purging of delete markers with future timestamps. If
1078       unset, or set to 0, all delete markers, including those with future timestamps, are purged
1079       during the next major compaction. Otherwise, a delete marker is kept until the major compaction
1080       which occurs after the marker's timestamp plus the value of this setting, in milliseconds.
1083 .Default
1087 [[hbase.offpeak.start.hour]]
1088 *`hbase.offpeak.start.hour`*::
1090 .Description
1091 The start of off-peak hours, expressed as an integer between 0 and 23, inclusive.
1092       Set to -1 to disable off-peak.
1094 .Default
1095 `-1`
1098 [[hbase.offpeak.end.hour]]
1099 *`hbase.offpeak.end.hour`*::
1101 .Description
1102 The end of off-peak hours, expressed as an integer between 0 and 23, inclusive. Set
1103       to -1 to disable off-peak.
1105 .Default
1106 `-1`
1109 [[hbase.regionserver.thread.compaction.throttle]]
1110 *`hbase.regionserver.thread.compaction.throttle`*::
1112 .Description
1113 There are two different thread pools for compactions, one for large compactions and
1114       the other for small compactions. This helps to keep compaction of lean tables (such as
1115         hbase:meta) fast. If a compaction is larger than this threshold, it
1116       goes into the large compaction pool. In most cases, the default value is appropriate. Default:
1117       2 x hbase.hstore.compaction.max x hbase.hregion.memstore.flush.size (which defaults to 128MB).
1118       The value field assumes that the value of hbase.hregion.memstore.flush.size is unchanged from
1119       the default.
1121 .Default
1122 `2684354560`
1125 [[hbase.hstore.compaction.kv.max]]
1126 *`hbase.hstore.compaction.kv.max`*::
1128 .Description
1129 The maximum number of KeyValues to read and then write in a batch when flushing or
1130       compacting. Set this lower if you have big KeyValues and problems with Out Of Memory
1131       Exceptions Set this higher if you have wide, small rows.
1133 .Default
1134 `10`
1137 [[hbase.storescanner.parallel.seek.enable]]
1138 *`hbase.storescanner.parallel.seek.enable`*::
1140 .Description
1142       Enables StoreFileScanner parallel-seeking in StoreScanner,
1143       a feature which can reduce response latency under special conditions.
1145 .Default
1146 `false`
1149 [[hbase.storescanner.parallel.seek.threads]]
1150 *`hbase.storescanner.parallel.seek.threads`*::
1152 .Description
1154       The default thread pool size if parallel-seeking feature enabled.
1156 .Default
1157 `10`
1160 [[hfile.block.cache.size]]
1161 *`hfile.block.cache.size`*::
1163 .Description
1164 Percentage of maximum heap (-Xmx setting) to allocate to block cache
1165         used by a StoreFile. Default of 0.4 means allocate 40%.
1166         Set to 0 to disable but it's not recommended; you need at least
1167         enough cache to hold the storefile indices.
1169 .Default
1170 `0.4`
1173 [[hfile.block.index.cacheonwrite]]
1174 *`hfile.block.index.cacheonwrite`*::
1176 .Description
1177 This allows to put non-root multi-level index blocks into the block
1178           cache at the time the index is being written.
1180 .Default
1181 `false`
1184 [[hfile.index.block.max.size]]
1185 *`hfile.index.block.max.size`*::
1187 .Description
1188 When the size of a leaf-level, intermediate-level, or root-level
1189           index block in a multi-level block index grows to this size, the
1190           block is written out and a new block is started.
1192 .Default
1193 `131072`
1196 [[hbase.bucketcache.ioengine]]
1197 *`hbase.bucketcache.ioengine`*::
1199 .Description
1200 Where to store the contents of the bucketcache. One of: offheap,
1201     file, files, mmap or pmem. If a file or files, set it to file(s):PATH_TO_FILE.
1202     mmap means the content will be in an mmaped file. Use mmap:PATH_TO_FILE.
1203     'pmem' is bucket cache over a file on the persistent memory device.
1204     Use pmem:PATH_TO_FILE.
1205     See https://hbase.apache.org/devapidocs/org/apache/hadoop/hbase/io/hfile/CacheConfig.html
1206     for more information.
1209 .Default
1213 [[hbase.bucketcache.combinedcache.enabled]]
1214 *`hbase.bucketcache.combinedcache.enabled`*::
1216 .Description
1217 Whether or not the bucketcache is used in league with the LRU
1218       on-heap block cache. In this mode, indices and blooms are kept in the LRU
1219       blockcache and the data blocks are kept in the bucketcache.
1221 .Default
1222 `true`
1225 [[hbase.bucketcache.size]]
1226 *`hbase.bucketcache.size`*::
1228 .Description
1229 Used along with bucket cache, this is a float that EITHER represents a percentage of total heap
1230    memory size to give to the cache (if < 1.0) OR, it is the capacity in megabytes of the cache.
1232 .Default
1233 `0` when specified as a float
1236 [[hbase.bucketcache.bucket.sizes]]
1237 *`hbase.bucketcache.bucket.sizes`*::
1239 .Description
1240 A comma-separated list of sizes for buckets for the bucketcache
1241       if you use multiple sizes. Should be a list of block sizes in order from smallest
1242       to largest. The sizes you use will depend on your data access patterns.
1244 .Default
1248 [[hfile.format.version]]
1249 *`hfile.format.version`*::
1251 .Description
1252 The HFile format version to use for new files.
1253       Version 3 adds support for tags in hfiles (See https://hbase.apache.org/book.html#hbase.tags).
1254       Also see the configuration 'hbase.replication.rpc.codec'.
1257 .Default
1261 [[hfile.block.bloom.cacheonwrite]]
1262 *`hfile.block.bloom.cacheonwrite`*::
1264 .Description
1265 Enables cache-on-write for inline blocks of a compound Bloom filter.
1267 .Default
1268 `false`
1271 [[io.storefile.bloom.block.size]]
1272 *`io.storefile.bloom.block.size`*::
1274 .Description
1275 The size in bytes of a single block ("chunk") of a compound Bloom
1276           filter. This size is approximate, because Bloom blocks can only be
1277           inserted at data block boundaries, and the number of keys per data
1278           block varies.
1280 .Default
1281 `131072`
1284 [[hbase.rs.cacheblocksonwrite]]
1285 *`hbase.rs.cacheblocksonwrite`*::
1287 .Description
1288 Whether an HFile block should be added to the block cache when the
1289           block is finished.
1291 .Default
1292 `false`
1295 [[hbase.rpc.timeout]]
1296 *`hbase.rpc.timeout`*::
1298 .Description
1299 This is for the RPC layer to define how long HBase client applications
1300         take for a remote call to time out. It uses pings to check connections
1301         but will eventually throw a TimeoutException.
1303 .Default
1304 `60000`
1307 [[hbase.rpc.shortoperation.timeout]]
1308 *`hbase.rpc.shortoperation.timeout`*::
1310 .Description
1311 This is another version of "hbase.rpc.timeout". For those RPC operations
1312         within cluster, we rely on this configuration to set a short timeout limitation
1313         for short operations. For example, short rpc timeout for region server trying
1314         to report to active master can benefit from quicker master failover process.
1316 .Default
1317 `10000`
1320 [[hbase.ipc.client.tcpnodelay]]
1321 *`hbase.ipc.client.tcpnodelay`*::
1323 .Description
1324 Set no delay on rpc socket connections.  See
1325     http://docs.oracle.com/javase/8/docs/api/java/net/Socket.html#getTcpNoDelay--
1327 .Default
1328 `true`
1331 [[hbase.master.keytab.file]]
1332 *`hbase.master.keytab.file`*::
1334 .Description
1335 Full path to the kerberos keytab file to use for logging in
1336     the configured HMaster server principal.
1338 .Default
1342 [[hbase.master.kerberos.principal]]
1343 *`hbase.master.kerberos.principal`*::
1345 .Description
1346 Ex. "hbase/_HOST@EXAMPLE.COM".  The kerberos principal name
1347     that should be used to run the HMaster process.  The principal name should
1348     be in the form: user/hostname@DOMAIN.  If "_HOST" is used as the hostname
1349     portion, it will be replaced with the actual hostname of the running
1350     instance.
1352 .Default
1356 [[hbase.regionserver.keytab.file]]
1357 *`hbase.regionserver.keytab.file`*::
1359 .Description
1360 Full path to the kerberos keytab file to use for logging in
1361     the configured HRegionServer server principal.
1363 .Default
1367 [[hbase.regionserver.kerberos.principal]]
1368 *`hbase.regionserver.kerberos.principal`*::
1370 .Description
1371 Ex. "hbase/_HOST@EXAMPLE.COM".  The kerberos principal name
1372     that should be used to run the HRegionServer process.  The principal name
1373     should be in the form: user/hostname@DOMAIN.  If "_HOST" is used as the
1374     hostname portion, it will be replaced with the actual hostname of the
1375     running instance.  An entry for this principal must exist in the file
1376     specified in hbase.regionserver.keytab.file
1378 .Default
1382 [[hadoop.policy.file]]
1383 *`hadoop.policy.file`*::
1385 .Description
1386 The policy configuration file used by RPC servers to make
1387       authorization decisions on client requests.  Only used when HBase
1388       security is enabled.
1390 .Default
1391 `hbase-policy.xml`
1394 [[hbase.superuser]]
1395 *`hbase.superuser`*::
1397 .Description
1398 List of users or groups (comma-separated), who are allowed
1399     full privileges, regardless of stored ACLs, across the cluster.
1400     Only used when HBase security is enabled.
1402 .Default
1406 [[hbase.auth.key.update.interval]]
1407 *`hbase.auth.key.update.interval`*::
1409 .Description
1410 The update interval for master key for authentication tokens
1411     in servers in milliseconds.  Only used when HBase security is enabled.
1413 .Default
1414 `86400000`
1417 [[hbase.auth.token.max.lifetime]]
1418 *`hbase.auth.token.max.lifetime`*::
1420 .Description
1421 The maximum lifetime in milliseconds after which an
1422     authentication token expires.  Only used when HBase security is enabled.
1424 .Default
1425 `604800000`
1428 [[hbase.ipc.client.fallback-to-simple-auth-allowed]]
1429 *`hbase.ipc.client.fallback-to-simple-auth-allowed`*::
1431 .Description
1432 When a client is configured to attempt a secure connection, but attempts to
1433       connect to an insecure server, that server may instruct the client to
1434       switch to SASL SIMPLE (unsecure) authentication. This setting controls
1435       whether or not the client will accept this instruction from the server.
1436       When false (the default), the client will not allow the fallback to SIMPLE
1437       authentication, and will abort the connection.
1439 .Default
1440 `false`
1443 [[hbase.display.keys]]
1444 *`hbase.display.keys`*::
1446 .Description
1447 When this is set to true the webUI and such will display all start/end keys
1448                  as part of the table details, region names, etc. When this is set to false,
1449                  the keys are hidden.
1451 .Default
1452 `true`
1455 [[hbase.coprocessor.region.classes]]
1456 *`hbase.coprocessor.region.classes`*::
1458 .Description
1459 A comma-separated list of Coprocessors that are loaded by
1460     default on all tables. For any override coprocessor method, these classes
1461     will be called in order. After implementing your own Coprocessor, just put
1462     it in HBase's classpath and add the fully qualified class name here.
1463     A coprocessor can also be loaded on demand by setting HTableDescriptor.
1465 .Default
1469 [[hbase.rest.port]]
1470 *`hbase.rest.port`*::
1472 .Description
1473 The port for the HBase REST server.
1475 .Default
1476 `8080`
1479 [[hbase.rest.readonly]]
1480 *`hbase.rest.readonly`*::
1482 .Description
1483 Defines the mode the REST server will be started in. Possible values are:
1484     false: All HTTP methods are permitted - GET/PUT/POST/DELETE.
1485     true: Only the GET method is permitted.
1487 .Default
1488 `false`
1491 [[hbase.rest.threads.max]]
1492 *`hbase.rest.threads.max`*::
1494 .Description
1495 The maximum number of threads of the REST server thread pool.
1496         Threads in the pool are reused to process REST requests. This
1497         controls the maximum number of requests processed concurrently.
1498         It may help to control the memory used by the REST server to
1499         avoid OOM issues. If the thread pool is full, incoming requests
1500         will be queued up and wait for some free threads.
1502 .Default
1503 `100`
1506 [[hbase.rest.threads.min]]
1507 *`hbase.rest.threads.min`*::
1509 .Description
1510 The minimum number of threads of the REST server thread pool.
1511         The thread pool always has at least these number of threads so
1512         the REST server is ready to serve incoming requests.
1514 .Default
1518 [[hbase.rest.support.proxyuser]]
1519 *`hbase.rest.support.proxyuser`*::
1521 .Description
1522 Enables running the REST server to support proxy-user mode.
1524 .Default
1525 `false`
1528 [[hbase.defaults.for.version.skip]]
1529 *`hbase.defaults.for.version.skip`*::
1531 .Description
1532 Set to true to skip the 'hbase.defaults.for.version' check.
1533     Setting this to true can be useful in contexts other than
1534     the other side of a maven generation; i.e. running in an
1535     ide.  You'll want to set this boolean to true to avoid
1536     seeing the RuntimeException complaint: "hbase-default.xml file
1537     seems to be for and old version of HBase (\${hbase.version}), this
1538     version is X.X.X-SNAPSHOT"
1540 .Default
1541 `false`
1544 [[hbase.coprocessor.master.classes]]
1545 *`hbase.coprocessor.master.classes`*::
1547 .Description
1548 A comma-separated list of
1549     org.apache.hadoop.hbase.coprocessor.MasterObserver coprocessors that are
1550     loaded by default on the active HMaster process. For any implemented
1551     coprocessor methods, the listed classes will be called in order. After
1552     implementing your own MasterObserver, just put it in HBase's classpath
1553     and add the fully qualified class name here.
1555 .Default
1559 [[hbase.coprocessor.abortonerror]]
1560 *`hbase.coprocessor.abortonerror`*::
1562 .Description
1563 Set to true to cause the hosting server (master or regionserver)
1564       to abort if a coprocessor fails to load, fails to initialize, or throws an
1565       unexpected Throwable object. Setting this to false will allow the server to
1566       continue execution but the system wide state of the coprocessor in question
1567       will become inconsistent as it will be properly executing in only a subset
1568       of servers, so this is most useful for debugging only.
1570 .Default
1571 `true`
1574 [[hbase.table.lock.enable]]
1575 *`hbase.table.lock.enable`*::
1577 .Description
1578 Set to true to enable locking the table in zookeeper for schema change operations.
1579     Table locking from master prevents concurrent schema modifications to corrupt table
1580     state.
1582 .Default
1583 `true`
1586 [[hbase.table.max.rowsize]]
1587 *`hbase.table.max.rowsize`*::
1589 .Description
1591       Maximum size of single row in bytes (default is 1 Gb) for Get'ting
1592       or Scan'ning without in-row scan flag set. If row size exceeds this limit
1593       RowTooBigException is thrown to client.
1596 .Default
1597 `1073741824`
1600 [[hbase.thrift.minWorkerThreads]]
1601 *`hbase.thrift.minWorkerThreads`*::
1603 .Description
1604 The "core size" of the thread pool. New threads are created on every
1605     connection until this many threads are created.
1607 .Default
1608 `16`
1611 [[hbase.thrift.maxWorkerThreads]]
1612 *`hbase.thrift.maxWorkerThreads`*::
1614 .Description
1615 The maximum size of the thread pool. When the pending request queue
1616     overflows, new threads are created until their number reaches this number.
1617     After that, the server starts dropping connections.
1619 .Default
1620 `1000`
1623 [[hbase.thrift.maxQueuedRequests]]
1624 *`hbase.thrift.maxQueuedRequests`*::
1626 .Description
1627 The maximum number of pending Thrift connections waiting in the queue. If
1628      there are no idle threads in the pool, the server queues requests. Only
1629      when the queue overflows, new threads are added, up to
1630      hbase.thrift.maxQueuedRequests threads.
1632 .Default
1633 `1000`
1636 [[hbase.regionserver.thrift.framed]]
1637 *`hbase.regionserver.thrift.framed`*::
1639 .Description
1640 Use Thrift TFramedTransport on the server side.
1641       This is the recommended transport for thrift servers and requires a similar setting
1642       on the client side. Changing this to false will select the default transport,
1643       vulnerable to DoS when malformed requests are issued due to THRIFT-601.
1646 .Default
1647 `false`
1650 [[hbase.regionserver.thrift.framed.max_frame_size_in_mb]]
1651 *`hbase.regionserver.thrift.framed.max_frame_size_in_mb`*::
1653 .Description
1654 Default frame size when using framed transport
1656 .Default
1660 [[hbase.regionserver.thrift.compact]]
1661 *`hbase.regionserver.thrift.compact`*::
1663 .Description
1664 Use Thrift TCompactProtocol binary serialization protocol.
1666 .Default
1667 `false`
1670 [[hbase.data.umask.enable]]
1671 *`hbase.data.umask.enable`*::
1673 .Description
1674 Enable, if true, that file permissions should be assigned
1675       to the files written by the regionserver
1677 .Default
1678 `false`
1681 [[hbase.data.umask]]
1682 *`hbase.data.umask`*::
1684 .Description
1685 File permissions that should be used to write data
1686       files when hbase.data.umask.enable is true
1688 .Default
1689 `000`
1692 [[hbase.snapshot.enabled]]
1693 *`hbase.snapshot.enabled`*::
1695 .Description
1696 Set to true to allow snapshots to be taken / restored / cloned.
1698 .Default
1699 `true`
1702 [[hbase.snapshot.restore.take.failsafe.snapshot]]
1703 *`hbase.snapshot.restore.take.failsafe.snapshot`*::
1705 .Description
1706 Set to true to take a snapshot before the restore operation.
1707       The snapshot taken will be used in case of failure, to restore the previous state.
1708       At the end of the restore operation this snapshot will be deleted
1710 .Default
1711 `true`
1714 [[hbase.snapshot.restore.failsafe.name]]
1715 *`hbase.snapshot.restore.failsafe.name`*::
1717 .Description
1718 Name of the failsafe snapshot taken by the restore operation.
1719       You can use the {snapshot.name}, {table.name} and {restore.timestamp} variables
1720       to create a name based on what you are restoring.
1722 .Default
1723 `hbase-failsafe-{snapshot.name}-{restore.timestamp}`
1726 [[hbase.server.compactchecker.interval.multiplier]]
1727 *`hbase.server.compactchecker.interval.multiplier`*::
1729 .Description
1730 The number that determines how often we scan to see if compaction is necessary.
1731         Normally, compactions are done after some events (such as memstore flush), but if
1732         region didn't receive a lot of writes for some time, or due to different compaction
1733         policies, it may be necessary to check it periodically. The interval between checks is
1734         hbase.server.compactchecker.interval.multiplier multiplied by
1735         hbase.server.thread.wakefrequency.
1737 .Default
1738 `1000`
1741 [[hbase.lease.recovery.timeout]]
1742 *`hbase.lease.recovery.timeout`*::
1744 .Description
1745 How long we wait on dfs lease recovery in total before giving up.
1747 .Default
1748 `900000`
1751 [[hbase.lease.recovery.dfs.timeout]]
1752 *`hbase.lease.recovery.dfs.timeout`*::
1754 .Description
1755 How long between dfs recovery lease invocations. Should be larger than the sum of
1756         the time it takes for the namenode to issue a block recovery command as part of
1757         datanode dfs.heartbeat.interval and the time it takes for the primary
1758         datanode performing block recovery to timeout on a dead datanode, usually
1759         dfs.client.socket-timeout. See the end of HBASE-8389 for more.
1761 .Default
1762 `64000`
1765 [[hbase.column.max.version]]
1766 *`hbase.column.max.version`*::
1768 .Description
1769 New column family descriptors will use this value as the default number of versions
1770       to keep.
1772 .Default
1776 [[hbase.dfs.client.read.shortcircuit.buffer.size]]
1777 *`hbase.dfs.client.read.shortcircuit.buffer.size`*::
1779 .Description
1780 If the DFSClient configuration
1781     dfs.client.read.shortcircuit.buffer.size is unset, we will
1782     use what is configured here as the short circuit read default
1783     direct byte buffer size. DFSClient native default is 1MB; HBase
1784     keeps its HDFS files open so number of file blocks * 1MB soon
1785     starts to add up and threaten OOME because of a shortage of
1786     direct memory.  So, we set it down from the default.  Make
1787     it > the default hbase block size set in the HColumnDescriptor
1788     which is usually 64k.
1791 .Default
1792 `131072`
1795 [[hbase.regionserver.checksum.verify]]
1796 *`hbase.regionserver.checksum.verify`*::
1798 .Description
1800         If set to true (the default), HBase verifies the checksums for hfile
1801         blocks. HBase writes checksums inline with the data when it writes out
1802         hfiles. HDFS (as of this writing) writes checksums to a separate file
1803         than the data file necessitating extra seeks.  Setting this flag saves
1804         some on i/o.  Checksum verification by HDFS will be internally disabled
1805         on hfile streams when this flag is set.  If the hbase-checksum verification
1806         fails, we will switch back to using HDFS checksums (so do not disable HDFS
1807         checksums!  And besides this feature applies to hfiles only, not to WALs).
1808         If this parameter is set to false, then hbase will not verify any checksums,
1809         instead it will depend on checksum verification being done in the HDFS client.
1812 .Default
1813 `true`
1816 [[hbase.hstore.bytes.per.checksum]]
1817 *`hbase.hstore.bytes.per.checksum`*::
1819 .Description
1821         Number of bytes in a newly created checksum chunk for HBase-level
1822         checksums in hfile blocks.
1825 .Default
1826 `16384`
1829 [[hbase.hstore.checksum.algorithm]]
1830 *`hbase.hstore.checksum.algorithm`*::
1832 .Description
1834       Name of an algorithm that is used to compute checksums. Possible values
1835       are NULL, CRC32, CRC32C.
1838 .Default
1839 `CRC32`
1842 [[hbase.status.published]]
1843 *`hbase.status.published`*::
1845 .Description
1847       This setting activates the publication by the master of the status of the region server.
1848       When a region server dies and its recovery starts, the master will push this information
1849       to the client application, to let them cut the connection immediately instead of waiting
1850       for a timeout.
1853 .Default
1854 `false`
1857 [[hbase.status.publisher.class]]
1858 *`hbase.status.publisher.class`*::
1860 .Description
1862       Implementation of the status publication with a multicast message.
1865 .Default
1866 `org.apache.hadoop.hbase.master.ClusterStatusPublisher$MulticastPublisher`
1869 [[hbase.status.listener.class]]
1870 *`hbase.status.listener.class`*::
1872 .Description
1874       Implementation of the status listener with a multicast message.
1877 .Default
1878 `org.apache.hadoop.hbase.client.ClusterStatusListener$MulticastListener`
1881 [[hbase.status.multicast.address.ip]]
1882 *`hbase.status.multicast.address.ip`*::
1884 .Description
1886       Multicast address to use for the status publication by multicast.
1889 .Default
1890 `226.1.1.3`
1893 [[hbase.status.multicast.address.port]]
1894 *`hbase.status.multicast.address.port`*::
1896 .Description
1898       Multicast port to use for the status publication by multicast.
1901 .Default
1902 `16100`
1905 [[hbase.dynamic.jars.dir]]
1906 *`hbase.dynamic.jars.dir`*::
1908 .Description
1910       The directory from which the custom filter/co-processor jars can be loaded
1911       dynamically by the region server without the need to restart. However,
1912       an already loaded filter/co-processor class would not be un-loaded. See
1913       HBASE-1936 for more details.
1916 .Default
1917 `${hbase.rootdir}/lib`
1920 [[hbase.security.authentication]]
1921 *`hbase.security.authentication`*::
1923 .Description
1925       Controls whether or not secure authentication is enabled for HBase.
1926       Possible values are 'simple' (no authentication), and 'kerberos'.
1929 .Default
1930 `simple`
1933 [[hbase.rest.filter.classes]]
1934 *`hbase.rest.filter.classes`*::
1936 .Description
1938       Servlet filters for REST service.
1941 .Default
1942 `org.apache.hadoop.hbase.rest.filter.GzipFilter`
1945 [[hbase.master.loadbalancer.class]]
1946 *`hbase.master.loadbalancer.class`*::
1948 .Description
1950       Class used to execute the regions balancing when the period occurs.
1951       See the class comment for more on how it works
1952       https://hbase.apache.org/devapidocs/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.html
1953       It replaces the DefaultLoadBalancer as the default (since renamed
1954       as the SimpleLoadBalancer).
1957 .Default
1958 `org.apache.hadoop.hbase.master.balancer.StochasticLoadBalancer`
1961 [[hbase.security.exec.permission.checks]]
1962 *`hbase.security.exec.permission.checks`*::
1964 .Description
1966       If this setting is enabled and ACL based access control is active (the
1967       AccessController coprocessor is installed either as a system coprocessor
1968       or on a table as a table coprocessor) then you must grant all relevant
1969       users EXEC privilege if they require the ability to execute coprocessor
1970       endpoint calls. EXEC privilege, like any other permission, can be
1971       granted globally to a user, or to a user on a per table or per namespace
1972       basis. For more information on coprocessor endpoints, see the coprocessor
1973       section of the HBase online manual. For more information on granting or
1974       revoking permissions using the AccessController, see the security
1975       section of the HBase online manual.
1978 .Default
1979 `false`
1982 [[hbase.procedure.regionserver.classes]]
1983 *`hbase.procedure.regionserver.classes`*::
1985 .Description
1986 A comma-separated list of
1987     org.apache.hadoop.hbase.procedure.RegionServerProcedureManager procedure managers that are
1988     loaded by default on the active HRegionServer process. The lifecycle methods (init/start/stop)
1989     will be called by the active HRegionServer process to perform the specific globally barriered
1990     procedure. After implementing your own RegionServerProcedureManager, just put it in
1991     HBase's classpath and add the fully qualified class name here.
1994 .Default
1998 [[hbase.procedure.master.classes]]
1999 *`hbase.procedure.master.classes`*::
2001 .Description
2002 A comma-separated list of
2003     org.apache.hadoop.hbase.procedure.MasterProcedureManager procedure managers that are
2004     loaded by default on the active HMaster process. A procedure is identified by its signature and
2005     users can use the signature and an instant name to trigger an execution of a globally barriered
2006     procedure. After implementing your own MasterProcedureManager, just put it in HBase's classpath
2007     and add the fully qualified class name here.
2009 .Default
2012 [[hbase.regionserver.storefile.refresh.period]]
2013 *`hbase.regionserver.storefile.refresh.period`*::
2015 .Description
2017       The period (in milliseconds) for refreshing the store files for the secondary regions. 0
2018       means this feature is disabled. Secondary regions sees new files (from flushes and
2019       compactions) from primary once the secondary region refreshes the list of files in the
2020       region (there is no notification mechanism). But too frequent refreshes might cause
2021       extra Namenode pressure. If the files cannot be refreshed for longer than HFile TTL
2022       (hbase.master.hfilecleaner.ttl) the requests are rejected. Configuring HFile TTL to a larger
2023       value is also recommended with this setting.
2026 .Default
2030 [[hbase.region.replica.replication.enabled]]
2031 *`hbase.region.replica.replication.enabled`*::
2033 .Description
2035       Whether asynchronous WAL replication to the secondary region replicas is enabled or not.
2036       If this is enabled, a replication peer named "region_replica_replication" will be created
2037       which will tail the logs and replicate the mutations to region replicas for tables that
2038       have region replication > 1. If this is enabled once, disabling this replication also
2039       requires disabling the replication peer using shell or Admin java class.
2040       Replication to secondary region replicas works over standard inter-cluster replication.
2044 .Default
2045 `false`
2048 [[hbase.http.filter.initializers]]
2049 *`hbase.http.filter.initializers`*::
2051 .Description
2053       A comma separated list of class names. Each class in the list must extend
2054       org.apache.hadoop.hbase.http.FilterInitializer. The corresponding Filter will
2055       be initialized. Then, the Filter will be applied to all user facing jsp
2056       and servlet web pages.
2057       The ordering of the list defines the ordering of the filters.
2058       The default StaticUserWebFilter adds a user principal as defined by the
2059       hbase.http.staticuser.user property.
2062 .Default
2063 `org.apache.hadoop.hbase.http.lib.StaticUserWebFilter`
2066 [[hbase.security.visibility.mutations.checkauths]]
2067 *`hbase.security.visibility.mutations.checkauths`*::
2069 .Description
2071       This property if enabled, will check whether the labels in the visibility expression are associated
2072       with the user issuing the mutation
2075 .Default
2076 `false`
2079 [[hbase.http.max.threads]]
2080 *`hbase.http.max.threads`*::
2082 .Description
2084       The maximum number of threads that the HTTP Server will create in its
2085       ThreadPool.
2088 .Default
2089 `16`
2092 [[hbase.replication.rpc.codec]]
2093 *`hbase.replication.rpc.codec`*::
2095 .Description
2097                 The codec that is to be used when replication is enabled so that
2098                 the tags are also replicated. This is used along with HFileV3 which
2099                 supports tags in them.  If tags are not used or if the hfile version used
2100                 is HFileV2 then KeyValueCodec can be used as the replication codec. Note that
2101                 using KeyValueCodecWithTags for replication when there are no tags causes no harm.
2104 .Default
2105 `org.apache.hadoop.hbase.codec.KeyValueCodecWithTags`
2108 [[hbase.http.staticuser.user]]
2109 *`hbase.http.staticuser.user`*::
2111 .Description
2113       The user name to filter as on static web filters
2114       while rendering content. For example, the HDFS
2115       web UI (user to be used for browsing files).
2118 .Default
2119 `dr.stack`
2122 [[hbase.regionserver.handler.abort.on.error.percent]]
2123 *`hbase.regionserver.handler.abort.on.error.percent`*::
2125 .Description
2126 The percent of region server RPC threads failed to abort RS.
2127     -1 Disable aborting; 0 Abort if even a single handler has died;
2128     0.x Abort only when this percent of handlers have died;
2129     1 Abort only all of the handlers have died.
2131 .Default
2132 `0.5`
2135 [[hbase.master.cleaner.snapshot.interval]]
2136 *`hbase.master.cleaner.snapshot.interval`*::
2138 .Description
2140     Snapshot Cleanup chore interval in milliseconds.
2141     The cleanup thread keeps running at this interval
2142     to find all snapshots that are expired based on TTL
2143     and delete them.
2146 .Default
2147 `1800000`
2150 [[hbase.master.snapshot.ttl]]
2151 *`hbase.master.snapshot.ttl`*::
2153 .Description
2155       Default Snapshot TTL to be considered when the user
2156       does not specify TTL while creating snapshot.
2157       Default value 0 indicates FOREVERE - snapshot should not be
2158       automatically deleted until it is manually deleted
2162 .Default
2166 [[hbase.master.regions.recovery.check.interval]]
2167 *`hbase.master.regions.recovery.check.interval`*::
2169 .Description
2171     Regions Recovery Chore interval in milliseconds.
2172     This chore keeps running at this interval to
2173     find all regions with configurable max store file ref count
2174     and reopens them.
2177 .Default
2178 `1200000`
2181 [[hbase.regions.recovery.store.file.ref.count]]
2182 *`hbase.regions.recovery.store.file.ref.count`*::
2184 .Description
2186       Very large number of ref count on a compacted
2187       store file indicates that it is a ref leak
2188       on that object(compacted store file).
2189       Such files can not be removed after
2190       it is invalidated via compaction.
2191       Only way to recover in such scenario is to
2192       reopen the region which can release
2193       all resources, like the refcount,
2194       leases, etc. This config represents Store files Ref
2195       Count threshold value considered for reopening
2196       regions. Any region with compacted store files
2197       ref count > this value would be eligible for
2198       reopening by master. Here, we get the max
2199       refCount among all refCounts on all
2200       compacted away store files that belong to a
2201       particular region. Default value -1 indicates
2202       this feature is turned off. Only positive
2203       integer value should be provided to
2204       enable this feature.
2207 .Default
2208 `-1`
2211 [[hbase.regionserver.slowlog.ringbuffer.size]]
2212 *`hbase.regionserver.slowlog.ringbuffer.size`*::
2214 .Description
2216       Default size of ringbuffer to be maintained by each RegionServer in order
2217       to store online slowlog responses. This is an in-memory ring buffer of
2218       requests that were judged to be too slow in addition to the responseTooSlow
2219       logging. The in-memory representation would be complete.
2220       For more details, please look into Doc Section:
2221       <<slow_log_responses, slow_log_responses>>
2225 .Default
2226 `256`
2230 [[hbase.regionserver.slowlog.buffer.enabled]]
2231 *`hbase.regionserver.slowlog.buffer.enabled`*::
2233 .Description
2235       Indicates whether RegionServers have ring buffer running for storing
2236       Online Slow logs in FIFO manner with limited entries. The size of
2237       the ring buffer is indicated by config: hbase.regionserver.slowlog.ringbuffer.size
2238       The default value is false, turn this on and get latest slowlog
2239       responses with complete data.
2240       For more details, please look into Doc Section:
2241       <<slow_log_responses, slow_log_responses>>
2245 .Default
2246 `false`