HBASE-26265 Update ref guide to mention the new store file tracker im… (#3942)
[hbase.git] / src / main / asciidoc / _chapters / hbase-default.adoc
blob388dbd235c55c5800bc036552bdd08c24f9e997f
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.compaction.after.bulkload.enable]]
760 *`hbase.compaction.after.bulkload.enable`*::
762 .Description
763 Request Compaction after bulkload immediately.
764 If bulkload is continuous, the triggered compactions may increase load,
765 bring about performance side effect.
766 (For HBase-2.x, the default value for "hbase.compaction.after.bulkload.enable" is true)
768 .Default
769 `false`
771 [[hbase.balancer.period
772     ]]
773 *`hbase.balancer.period
774     `*::
776 .Description
777 Period at which the region balancer runs in the Master.
779 .Default
780 `300000`
783 [[hbase.regions.slop]]
784 *`hbase.regions.slop`*::
786 .Description
787 Rebalance if any regionserver has average + (average * slop) regions.
789 .Default
790 `0.2`
793 [[hbase.server.thread.wakefrequency]]
794 *`hbase.server.thread.wakefrequency`*::
796 .Description
797 Time to sleep in between searches for work (in milliseconds).
798     Used as sleep interval by service threads such as log roller.
800 .Default
801 `10000`
804 [[hbase.server.versionfile.writeattempts]]
805 *`hbase.server.versionfile.writeattempts`*::
807 .Description
809     How many time to retry attempting to write a version file
810     before just aborting. Each attempt is separated by the
811     hbase.server.thread.wakefrequency milliseconds.
813 .Default
817 [[hbase.hregion.memstore.flush.size]]
818 *`hbase.hregion.memstore.flush.size`*::
820 .Description
822     Memstore will be flushed to disk if size of the memstore
823     exceeds this number of bytes.  Value is checked by a thread that runs
824     every hbase.server.thread.wakefrequency.
826 .Default
827 `134217728`
830 [[hbase.hregion.percolumnfamilyflush.size.lower.bound]]
831 *`hbase.hregion.percolumnfamilyflush.size.lower.bound`*::
833 .Description
835     If FlushLargeStoresPolicy is used, then every time that we hit the
836     total memstore limit, we find out all the column families whose memstores
837     exceed this value, and only flush them, while retaining the others whose
838     memstores are lower than this limit. If none of the families have their
839     memstore size more than this, all the memstores will be flushed
840     (just as usual). This value should be less than half of the total memstore
841     threshold (hbase.hregion.memstore.flush.size).
844 .Default
845 `16777216`
848 [[hbase.hregion.preclose.flush.size]]
849 *`hbase.hregion.preclose.flush.size`*::
851 .Description
853       If the memstores in a region are this size or larger when we go
854       to close, run a "pre-flush" to clear out memstores before we put up
855       the region closed flag and take the region offline.  On close,
856       a flush is run under the close flag to empty memory.  During
857       this time the region is offline and we are not taking on any writes.
858       If the memstore content is large, this flush could take a long time to
859       complete.  The preflush is meant to clean out the bulk of the memstore
860       before putting up the close flag and taking the region offline so the
861       flush that runs under the close flag has little to do.
863 .Default
864 `5242880`
867 [[hbase.hregion.memstore.block.multiplier]]
868 *`hbase.hregion.memstore.block.multiplier`*::
870 .Description
872     Block updates if memstore has hbase.hregion.memstore.block.multiplier
873     times hbase.hregion.memstore.flush.size bytes.  Useful preventing
874     runaway memstore during spikes in update traffic.  Without an
875     upper-bound, memstore fills such that when it flushes the
876     resultant flush files take a long time to compact or split, or
877     worse, we OOME.
879 .Default
883 [[hbase.hregion.memstore.mslab.enabled]]
884 *`hbase.hregion.memstore.mslab.enabled`*::
886 .Description
888       Enables the MemStore-Local Allocation Buffer,
889       a feature which works to prevent heap fragmentation under
890       heavy write loads. This can reduce the frequency of stop-the-world
891       GC pauses on large heaps.
893 .Default
894 `true`
897 [[hbase.hregion.max.filesize]]
898 *`hbase.hregion.max.filesize`*::
900 .Description
902     Maximum file size. If the sum of the sizes of a region's HFiles has
903     grown to exceed this value, the region is split in two. There are two choices of
904     how this option works, the first is when any store's size exceed the threshold
905     then split, and the other is overall region's size exceed the threshold then split,
906     it can be configed by hbase.hregion.split.overallfiles.
908 .Default
909 `10737418240`
912 [[hbase.hregion.split.overallfiles]]
913 *`hbase.hregion.split.overallfiles`*::
915 .Description
917     If we should sum overall region files size when check to split.
919 .Default
920 `true`
923 [[hbase.hregion.majorcompaction]]
924 *`hbase.hregion.majorcompaction`*::
926 .Description
927 Time between major compactions, expressed in milliseconds. Set to 0 to disable
928       time-based automatic major compactions. User-requested and size-based major compactions will
929       still run. This value is multiplied by hbase.hregion.majorcompaction.jitter to cause
930       compaction to start at a somewhat-random time during a given window of time. The default value
931       is 7 days, expressed in milliseconds. If major compactions are causing disruption in your
932       environment, you can configure them to run at off-peak times for your deployment, or disable
933       time-based major compactions by setting this parameter to 0, and run major compactions in a
934       cron job or by another external mechanism.
936 .Default
937 `604800000`
940 [[hbase.hregion.majorcompaction.jitter]]
941 *`hbase.hregion.majorcompaction.jitter`*::
943 .Description
944 A multiplier applied to hbase.hregion.majorcompaction to cause compaction to occur
945       a given amount of time either side of hbase.hregion.majorcompaction. The smaller the number,
946       the closer the compactions will happen to the hbase.hregion.majorcompaction
947       interval.
949 .Default
950 `0.50`
953 [[hbase.hstore.compactionThreshold]]
954 *`hbase.hstore.compactionThreshold`*::
956 .Description
957  If more than this number of StoreFiles exist in any one Store
958       (one StoreFile is written per flush of MemStore), a compaction is run to rewrite all
959       StoreFiles into a single StoreFile. Larger values delay compaction, but when compaction does
960       occur, it takes longer to complete.
962 .Default
966 [[hbase.hstore.flusher.count]]
967 *`hbase.hstore.flusher.count`*::
969 .Description
970  The number of flush threads. With fewer threads, the MemStore flushes will be
971       queued. With more threads, the flushes will be executed in parallel, increasing the load on
972       HDFS, and potentially causing more compactions.
974 .Default
978 [[hbase.hstore.blockingStoreFiles]]
979 *`hbase.hstore.blockingStoreFiles`*::
981 .Description
982  If more than this number of StoreFiles exist in any one Store (one StoreFile
983      is written per flush of MemStore), updates are blocked for this region until a compaction is
984       completed, or until hbase.hstore.blockingWaitTime has been exceeded.
986 .Default
987 `10`
990 [[hbase.hstore.blockingWaitTime]]
991 *`hbase.hstore.blockingWaitTime`*::
993 .Description
994  The time for which a region will block updates after reaching the StoreFile limit
995     defined by hbase.hstore.blockingStoreFiles. After this time has elapsed, the region will stop
996     blocking updates even if a compaction has not been completed.
998 .Default
999 `90000`
1002 [[hbase.hstore.compaction.min]]
1003 *`hbase.hstore.compaction.min`*::
1005 .Description
1006 The minimum number of StoreFiles which must be eligible for compaction before
1007       compaction can run. The goal of tuning hbase.hstore.compaction.min is to avoid ending up with
1008       too many tiny StoreFiles to compact. Setting this value to 2 would cause a minor compaction
1009       each time you have two StoreFiles in a Store, and this is probably not appropriate. If you
1010       set this value too high, all the other values will need to be adjusted accordingly. For most
1011       cases, the default value is appropriate. In previous versions of HBase, the parameter
1012       hbase.hstore.compaction.min was named hbase.hstore.compactionThreshold.
1014 .Default
1018 [[hbase.hstore.compaction.max]]
1019 *`hbase.hstore.compaction.max`*::
1021 .Description
1022 The maximum number of StoreFiles which will be selected for a single minor
1023       compaction, regardless of the number of eligible StoreFiles. Effectively, the value of
1024       hbase.hstore.compaction.max controls the length of time it takes a single compaction to
1025       complete. Setting it larger means that more StoreFiles are included in a compaction. For most
1026       cases, the default value is appropriate.
1028 .Default
1029 `10`
1032 [[hbase.hstore.compaction.min.size]]
1033 *`hbase.hstore.compaction.min.size`*::
1035 .Description
1036 A StoreFile smaller than this size will always be eligible for minor compaction.
1037       HFiles this size or larger are evaluated by hbase.hstore.compaction.ratio to determine if
1038       they are eligible. Because this limit represents the "automatic include"limit for all
1039       StoreFiles smaller than this value, this value may need to be reduced in write-heavy
1040       environments where many StoreFiles in the 1-2 MB range are being flushed, because every
1041       StoreFile will be targeted for compaction and the resulting StoreFiles may still be under the
1042       minimum size and require further compaction. If this parameter is lowered, the ratio check is
1043       triggered more quickly. This addressed some issues seen in earlier versions of HBase but
1044       changing this parameter is no longer necessary in most situations. Default: 128 MB expressed
1045       in bytes.
1047 .Default
1048 `134217728`
1051 [[hbase.hstore.compaction.max.size]]
1052 *`hbase.hstore.compaction.max.size`*::
1054 .Description
1055 A StoreFile larger than this size will be excluded from compaction. The effect of
1056       raising hbase.hstore.compaction.max.size is fewer, larger StoreFiles that do not get
1057       compacted often. If you feel that compaction is happening too often without much benefit, you
1058       can try raising this value. Default: the value of LONG.MAX_VALUE, expressed in bytes.
1060 .Default
1061 `9223372036854775807`
1064 [[hbase.hstore.compaction.ratio]]
1065 *`hbase.hstore.compaction.ratio`*::
1067 .Description
1068 For minor compaction, this ratio is used to determine whether a given StoreFile
1069       which is larger than hbase.hstore.compaction.min.size is eligible for compaction. Its
1070       effect is to limit compaction of large StoreFiles. The value of hbase.hstore.compaction.ratio
1071       is expressed as a floating-point decimal. A large ratio, such as 10, will produce a single
1072       giant StoreFile. Conversely, a low value, such as .25, will produce behavior similar to the
1073       BigTable compaction algorithm, producing four StoreFiles. A moderate value of between 1.0 and
1074       1.4 is recommended. When tuning this value, you are balancing write costs with read costs.
1075       Raising the value (to something like 1.4) will have more write costs, because you will
1076       compact larger StoreFiles. However, during reads, HBase will need to seek through fewer
1077       StoreFiles to accomplish the read. Consider this approach if you cannot take advantage of
1078       Bloom filters. Otherwise, you can lower this value to something like 1.0 to reduce the
1079       background cost of writes, and use Bloom filters to control the number of StoreFiles touched
1080       during reads. For most cases, the default value is appropriate.
1082 .Default
1083 `1.2F`
1086 [[hbase.hstore.compaction.ratio.offpeak]]
1087 *`hbase.hstore.compaction.ratio.offpeak`*::
1089 .Description
1090 Allows you to set a different (by default, more aggressive) ratio for determining
1091       whether larger StoreFiles are included in compactions during off-peak hours. Works in the
1092       same way as hbase.hstore.compaction.ratio. Only applies if hbase.offpeak.start.hour and
1093       hbase.offpeak.end.hour are also enabled.
1095 .Default
1096 `5.0F`
1099 [[hbase.hstore.time.to.purge.deletes]]
1100 *`hbase.hstore.time.to.purge.deletes`*::
1102 .Description
1103 The amount of time to delay purging of delete markers with future timestamps. If
1104       unset, or set to 0, all delete markers, including those with future timestamps, are purged
1105       during the next major compaction. Otherwise, a delete marker is kept until the major compaction
1106       which occurs after the marker's timestamp plus the value of this setting, in milliseconds.
1109 .Default
1113 [[hbase.offpeak.start.hour]]
1114 *`hbase.offpeak.start.hour`*::
1116 .Description
1117 The start of off-peak hours, expressed as an integer between 0 and 23, inclusive.
1118       Set to -1 to disable off-peak.
1120 .Default
1121 `-1`
1124 [[hbase.offpeak.end.hour]]
1125 *`hbase.offpeak.end.hour`*::
1127 .Description
1128 The end of off-peak hours, expressed as an integer between 0 and 23, inclusive. Set
1129       to -1 to disable off-peak.
1131 .Default
1132 `-1`
1135 [[hbase.regionserver.thread.compaction.throttle]]
1136 *`hbase.regionserver.thread.compaction.throttle`*::
1138 .Description
1139 There are two different thread pools for compactions, one for large compactions and
1140       the other for small compactions. This helps to keep compaction of lean tables (such as
1141         hbase:meta) fast. If a compaction is larger than this threshold, it
1142       goes into the large compaction pool. In most cases, the default value is appropriate. Default:
1143       2 x hbase.hstore.compaction.max x hbase.hregion.memstore.flush.size (which defaults to 128MB).
1144       The value field assumes that the value of hbase.hregion.memstore.flush.size is unchanged from
1145       the default.
1147 .Default
1148 `2684354560`
1151 [[hbase.hstore.compaction.kv.max]]
1152 *`hbase.hstore.compaction.kv.max`*::
1154 .Description
1155 The maximum number of KeyValues to read and then write in a batch when flushing or
1156       compacting. Set this lower if you have big KeyValues and problems with Out Of Memory
1157       Exceptions Set this higher if you have wide, small rows.
1159 .Default
1160 `10`
1163 [[hbase.storescanner.parallel.seek.enable]]
1164 *`hbase.storescanner.parallel.seek.enable`*::
1166 .Description
1168       Enables StoreFileScanner parallel-seeking in StoreScanner,
1169       a feature which can reduce response latency under special conditions.
1171 .Default
1172 `false`
1175 [[hbase.storescanner.parallel.seek.threads]]
1176 *`hbase.storescanner.parallel.seek.threads`*::
1178 .Description
1180       The default thread pool size if parallel-seeking feature enabled.
1182 .Default
1183 `10`
1186 [[hfile.block.cache.size]]
1187 *`hfile.block.cache.size`*::
1189 .Description
1190 Percentage of maximum heap (-Xmx setting) to allocate to block cache
1191         used by a StoreFile. Default of 0.4 means allocate 40%.
1192         Set to 0 to disable but it's not recommended; you need at least
1193         enough cache to hold the storefile indices.
1195 .Default
1196 `0.4`
1199 [[hfile.block.index.cacheonwrite]]
1200 *`hfile.block.index.cacheonwrite`*::
1202 .Description
1203 This allows to put non-root multi-level index blocks into the block
1204           cache at the time the index is being written.
1206 .Default
1207 `false`
1210 [[hfile.index.block.max.size]]
1211 *`hfile.index.block.max.size`*::
1213 .Description
1214 When the size of a leaf-level, intermediate-level, or root-level
1215           index block in a multi-level block index grows to this size, the
1216           block is written out and a new block is started.
1218 .Default
1219 `131072`
1222 [[hbase.bucketcache.ioengine]]
1223 *`hbase.bucketcache.ioengine`*::
1225 .Description
1226 Where to store the contents of the bucketcache. One of: offheap,
1227     file, files, mmap or pmem. If a file or files, set it to file(s):PATH_TO_FILE.
1228     mmap means the content will be in an mmaped file. Use mmap:PATH_TO_FILE.
1229     'pmem' is bucket cache over a file on the persistent memory device.
1230     Use pmem:PATH_TO_FILE.
1231     See https://hbase.apache.org/devapidocs/org/apache/hadoop/hbase/io/hfile/CacheConfig.html
1232     for more information.
1235 .Default
1239 [[hbase.bucketcache.combinedcache.enabled]]
1240 *`hbase.bucketcache.combinedcache.enabled`*::
1242 .Description
1243 Whether or not the bucketcache is used in league with the LRU
1244       on-heap block cache. In this mode, indices and blooms are kept in the LRU
1245       blockcache and the data blocks are kept in the bucketcache.
1247 .Default
1248 `true`
1251 [[hbase.bucketcache.size]]
1252 *`hbase.bucketcache.size`*::
1254 .Description
1255 Used along with bucket cache, this is a float that EITHER represents a percentage of total heap
1256    memory size to give to the cache (if < 1.0) OR, it is the capacity in megabytes of the cache.
1257    (After HBase-2.0, "hbase.bucketcache.size" cannot be between 0-1)
1259 .Default
1260 `0` when specified as a float
1263 [[hbase.bucketcache.bucket.sizes]]
1264 *`hbase.bucketcache.bucket.sizes`*::
1266 .Description
1267 A comma-separated list of sizes for buckets for the bucketcache
1268       if you use multiple sizes. Should be a list of block sizes in order from smallest
1269       to largest. The sizes you use will depend on your data access patterns.
1271 .Default
1275 [[hfile.format.version]]
1276 *`hfile.format.version`*::
1278 .Description
1279 The HFile format version to use for new files.
1280       Version 3 adds support for tags in hfiles (See https://hbase.apache.org/book.html#hbase.tags).
1281       Also see the configuration 'hbase.replication.rpc.codec'.
1284 .Default
1288 [[hfile.block.bloom.cacheonwrite]]
1289 *`hfile.block.bloom.cacheonwrite`*::
1291 .Description
1292 Enables cache-on-write for inline blocks of a compound Bloom filter.
1294 .Default
1295 `false`
1298 [[io.storefile.bloom.block.size]]
1299 *`io.storefile.bloom.block.size`*::
1301 .Description
1302 The size in bytes of a single block ("chunk") of a compound Bloom
1303           filter. This size is approximate, because Bloom blocks can only be
1304           inserted at data block boundaries, and the number of keys per data
1305           block varies.
1307 .Default
1308 `131072`
1311 [[hbase.rs.cacheblocksonwrite]]
1312 *`hbase.rs.cacheblocksonwrite`*::
1314 .Description
1315 Whether an HFile block should be added to the block cache when the
1316           block is finished.
1318 .Default
1319 `false`
1322 [[hbase.rpc.timeout]]
1323 *`hbase.rpc.timeout`*::
1325 .Description
1326 This is for the RPC layer to define how long HBase client applications
1327         take for a remote call to time out. It uses pings to check connections
1328         but will eventually throw a TimeoutException.
1330 .Default
1331 `60000`
1334 [[hbase.rpc.shortoperation.timeout]]
1335 *`hbase.rpc.shortoperation.timeout`*::
1337 .Description
1338 This is another version of "hbase.rpc.timeout". For those RPC operations
1339         within cluster, we rely on this configuration to set a short timeout limitation
1340         for short operations. For example, short rpc timeout for region server trying
1341         to report to active master can benefit from quicker master failover process.
1343 .Default
1344 `10000`
1347 [[hbase.ipc.client.tcpnodelay]]
1348 *`hbase.ipc.client.tcpnodelay`*::
1350 .Description
1351 Set no delay on rpc socket connections.  See
1352     http://docs.oracle.com/javase/8/docs/api/java/net/Socket.html#getTcpNoDelay--
1354 .Default
1355 `true`
1358 [[hbase.master.keytab.file]]
1359 *`hbase.master.keytab.file`*::
1361 .Description
1362 Full path to the kerberos keytab file to use for logging in
1363     the configured HMaster server principal.
1365 .Default
1369 [[hbase.master.kerberos.principal]]
1370 *`hbase.master.kerberos.principal`*::
1372 .Description
1373 Ex. "hbase/_HOST@EXAMPLE.COM".  The kerberos principal name
1374     that should be used to run the HMaster process.  The principal name should
1375     be in the form: user/hostname@DOMAIN.  If "_HOST" is used as the hostname
1376     portion, it will be replaced with the actual hostname of the running
1377     instance.
1379 .Default
1383 [[hbase.regionserver.keytab.file]]
1384 *`hbase.regionserver.keytab.file`*::
1386 .Description
1387 Full path to the kerberos keytab file to use for logging in
1388     the configured HRegionServer server principal.
1390 .Default
1394 [[hbase.regionserver.kerberos.principal]]
1395 *`hbase.regionserver.kerberos.principal`*::
1397 .Description
1398 Ex. "hbase/_HOST@EXAMPLE.COM".  The kerberos principal name
1399     that should be used to run the HRegionServer process.  The principal name
1400     should be in the form: user/hostname@DOMAIN.  If "_HOST" is used as the
1401     hostname portion, it will be replaced with the actual hostname of the
1402     running instance.  An entry for this principal must exist in the file
1403     specified in hbase.regionserver.keytab.file
1405 .Default
1409 [[hadoop.policy.file]]
1410 *`hadoop.policy.file`*::
1412 .Description
1413 The policy configuration file used by RPC servers to make
1414       authorization decisions on client requests.  Only used when HBase
1415       security is enabled.
1417 .Default
1418 `hbase-policy.xml`
1421 [[hbase.superuser]]
1422 *`hbase.superuser`*::
1424 .Description
1425 List of users or groups (comma-separated), who are allowed
1426     full privileges, regardless of stored ACLs, across the cluster.
1427     Only used when HBase security is enabled.
1429 .Default
1433 [[hbase.auth.key.update.interval]]
1434 *`hbase.auth.key.update.interval`*::
1436 .Description
1437 The update interval for master key for authentication tokens
1438     in servers in milliseconds.  Only used when HBase security is enabled.
1440 .Default
1441 `86400000`
1444 [[hbase.auth.token.max.lifetime]]
1445 *`hbase.auth.token.max.lifetime`*::
1447 .Description
1448 The maximum lifetime in milliseconds after which an
1449     authentication token expires.  Only used when HBase security is enabled.
1451 .Default
1452 `604800000`
1455 [[hbase.ipc.client.fallback-to-simple-auth-allowed]]
1456 *`hbase.ipc.client.fallback-to-simple-auth-allowed`*::
1458 .Description
1459 When a client is configured to attempt a secure connection, but attempts to
1460       connect to an insecure server, that server may instruct the client to
1461       switch to SASL SIMPLE (unsecure) authentication. This setting controls
1462       whether or not the client will accept this instruction from the server.
1463       When false (the default), the client will not allow the fallback to SIMPLE
1464       authentication, and will abort the connection.
1466 .Default
1467 `false`
1470 [[hbase.display.keys]]
1471 *`hbase.display.keys`*::
1473 .Description
1474 When this is set to true the webUI and such will display all start/end keys
1475                  as part of the table details, region names, etc. When this is set to false,
1476                  the keys are hidden.
1478 .Default
1479 `true`
1482 [[hbase.coprocessor.region.classes]]
1483 *`hbase.coprocessor.region.classes`*::
1485 .Description
1486 A comma-separated list of Coprocessors that are loaded by
1487     default on all tables. For any override coprocessor method, these classes
1488     will be called in order. After implementing your own Coprocessor, just put
1489     it in HBase's classpath and add the fully qualified class name here.
1490     A coprocessor can also be loaded on demand by setting HTableDescriptor.
1492 .Default
1496 [[hbase.rest.port]]
1497 *`hbase.rest.port`*::
1499 .Description
1500 The port for the HBase REST server.
1502 .Default
1503 `8080`
1506 [[hbase.rest.readonly]]
1507 *`hbase.rest.readonly`*::
1509 .Description
1510 Defines the mode the REST server will be started in. Possible values are:
1511     false: All HTTP methods are permitted - GET/PUT/POST/DELETE.
1512     true: Only the GET method is permitted.
1514 .Default
1515 `false`
1518 [[hbase.rest.threads.max]]
1519 *`hbase.rest.threads.max`*::
1521 .Description
1522 The maximum number of threads of the REST server thread pool.
1523         Threads in the pool are reused to process REST requests. This
1524         controls the maximum number of requests processed concurrently.
1525         It may help to control the memory used by the REST server to
1526         avoid OOM issues. If the thread pool is full, incoming requests
1527         will be queued up and wait for some free threads.
1529 .Default
1530 `100`
1533 [[hbase.rest.threads.min]]
1534 *`hbase.rest.threads.min`*::
1536 .Description
1537 The minimum number of threads of the REST server thread pool.
1538         The thread pool always has at least these number of threads so
1539         the REST server is ready to serve incoming requests.
1541 .Default
1545 [[hbase.rest.support.proxyuser]]
1546 *`hbase.rest.support.proxyuser`*::
1548 .Description
1549 Enables running the REST server to support proxy-user mode.
1551 .Default
1552 `false`
1555 [[hbase.defaults.for.version.skip]]
1556 *`hbase.defaults.for.version.skip`*::
1558 .Description
1559 Set to true to skip the 'hbase.defaults.for.version' check.
1560     Setting this to true can be useful in contexts other than
1561     the other side of a maven generation; i.e. running in an
1562     ide.  You'll want to set this boolean to true to avoid
1563     seeing the RuntimeException complaint: "hbase-default.xml file
1564     seems to be for and old version of HBase (\${hbase.version}), this
1565     version is X.X.X-SNAPSHOT"
1567 .Default
1568 `false`
1571 [[hbase.coprocessor.master.classes]]
1572 *`hbase.coprocessor.master.classes`*::
1574 .Description
1575 A comma-separated list of
1576     org.apache.hadoop.hbase.coprocessor.MasterObserver coprocessors that are
1577     loaded by default on the active HMaster process. For any implemented
1578     coprocessor methods, the listed classes will be called in order. After
1579     implementing your own MasterObserver, just put it in HBase's classpath
1580     and add the fully qualified class name here.
1582 .Default
1586 [[hbase.coprocessor.abortonerror]]
1587 *`hbase.coprocessor.abortonerror`*::
1589 .Description
1590 Set to true to cause the hosting server (master or regionserver)
1591       to abort if a coprocessor fails to load, fails to initialize, or throws an
1592       unexpected Throwable object. Setting this to false will allow the server to
1593       continue execution but the system wide state of the coprocessor in question
1594       will become inconsistent as it will be properly executing in only a subset
1595       of servers, so this is most useful for debugging only.
1597 .Default
1598 `true`
1601 [[hbase.table.lock.enable]]
1602 *`hbase.table.lock.enable`*::
1604 .Description
1605 Set to true to enable locking the table in zookeeper for schema change operations.
1606     Table locking from master prevents concurrent schema modifications to corrupt table
1607     state.
1609 .Default
1610 `true`
1613 [[hbase.table.max.rowsize]]
1614 *`hbase.table.max.rowsize`*::
1616 .Description
1618       Maximum size of single row in bytes (default is 1 Gb) for Get'ting
1619       or Scan'ning without in-row scan flag set. If row size exceeds this limit
1620       RowTooBigException is thrown to client.
1623 .Default
1624 `1073741824`
1627 [[hbase.thrift.minWorkerThreads]]
1628 *`hbase.thrift.minWorkerThreads`*::
1630 .Description
1631 The "core size" of the thread pool. New threads are created on every
1632     connection until this many threads are created.
1634 .Default
1635 `16`
1638 [[hbase.thrift.maxWorkerThreads]]
1639 *`hbase.thrift.maxWorkerThreads`*::
1641 .Description
1642 The maximum size of the thread pool. When the pending request queue
1643     overflows, new threads are created until their number reaches this number.
1644     After that, the server starts dropping connections.
1646 .Default
1647 `1000`
1650 [[hbase.thrift.maxQueuedRequests]]
1651 *`hbase.thrift.maxQueuedRequests`*::
1653 .Description
1654 The maximum number of pending Thrift connections waiting in the queue. If
1655      there are no idle threads in the pool, the server queues requests. Only
1656      when the queue overflows, new threads are added, up to
1657      hbase.thrift.maxQueuedRequests threads.
1659 .Default
1660 `1000`
1663 [[hbase.regionserver.thrift.framed]]
1664 *`hbase.regionserver.thrift.framed`*::
1666 .Description
1667 Use Thrift TFramedTransport on the server side.
1668       This is the recommended transport for thrift servers and requires a similar setting
1669       on the client side. Changing this to false will select the default transport,
1670       vulnerable to DoS when malformed requests are issued due to THRIFT-601.
1673 .Default
1674 `false`
1677 [[hbase.regionserver.thrift.framed.max_frame_size_in_mb]]
1678 *`hbase.regionserver.thrift.framed.max_frame_size_in_mb`*::
1680 .Description
1681 Default frame size when using framed transport
1683 .Default
1687 [[hbase.regionserver.thrift.compact]]
1688 *`hbase.regionserver.thrift.compact`*::
1690 .Description
1691 Use Thrift TCompactProtocol binary serialization protocol.
1693 .Default
1694 `false`
1697 [[hbase.data.umask.enable]]
1698 *`hbase.data.umask.enable`*::
1700 .Description
1701 Enable, if true, that file permissions should be assigned
1702       to the files written by the regionserver
1704 .Default
1705 `false`
1708 [[hbase.data.umask]]
1709 *`hbase.data.umask`*::
1711 .Description
1712 File permissions that should be used to write data
1713       files when hbase.data.umask.enable is true
1715 .Default
1716 `000`
1719 [[hbase.snapshot.enabled]]
1720 *`hbase.snapshot.enabled`*::
1722 .Description
1723 Set to true to allow snapshots to be taken / restored / cloned.
1725 .Default
1726 `true`
1729 [[hbase.snapshot.restore.take.failsafe.snapshot]]
1730 *`hbase.snapshot.restore.take.failsafe.snapshot`*::
1732 .Description
1733 Set to true to take a snapshot before the restore operation.
1734       The snapshot taken will be used in case of failure, to restore the previous state.
1735       At the end of the restore operation this snapshot will be deleted
1737 .Default
1738 `true`
1741 [[hbase.snapshot.restore.failsafe.name]]
1742 *`hbase.snapshot.restore.failsafe.name`*::
1744 .Description
1745 Name of the failsafe snapshot taken by the restore operation.
1746       You can use the {snapshot.name}, {table.name} and {restore.timestamp} variables
1747       to create a name based on what you are restoring.
1749 .Default
1750 `hbase-failsafe-{snapshot.name}-{restore.timestamp}`
1753 [[hbase.server.compactchecker.interval.multiplier]]
1754 *`hbase.server.compactchecker.interval.multiplier`*::
1756 .Description
1757 The number that determines how often we scan to see if compaction is necessary.
1758         Normally, compactions are done after some events (such as memstore flush), but if
1759         region didn't receive a lot of writes for some time, or due to different compaction
1760         policies, it may be necessary to check it periodically. The interval between checks is
1761         hbase.server.compactchecker.interval.multiplier multiplied by
1762         hbase.server.thread.wakefrequency.
1764 .Default
1765 `1000`
1768 [[hbase.lease.recovery.timeout]]
1769 *`hbase.lease.recovery.timeout`*::
1771 .Description
1772 How long we wait on dfs lease recovery in total before giving up.
1774 .Default
1775 `900000`
1778 [[hbase.lease.recovery.dfs.timeout]]
1779 *`hbase.lease.recovery.dfs.timeout`*::
1781 .Description
1782 How long between dfs recovery lease invocations. Should be larger than the sum of
1783         the time it takes for the namenode to issue a block recovery command as part of
1784         datanode dfs.heartbeat.interval and the time it takes for the primary
1785         datanode performing block recovery to timeout on a dead datanode, usually
1786         dfs.client.socket-timeout. See the end of HBASE-8389 for more.
1788 .Default
1789 `64000`
1792 [[hbase.column.max.version]]
1793 *`hbase.column.max.version`*::
1795 .Description
1796 New column family descriptors will use this value as the default number of versions
1797       to keep.
1799 .Default
1803 [[hbase.dfs.client.read.shortcircuit.buffer.size]]
1804 *`hbase.dfs.client.read.shortcircuit.buffer.size`*::
1806 .Description
1807 If the DFSClient configuration
1808     dfs.client.read.shortcircuit.buffer.size is unset, we will
1809     use what is configured here as the short circuit read default
1810     direct byte buffer size. DFSClient native default is 1MB; HBase
1811     keeps its HDFS files open so number of file blocks * 1MB soon
1812     starts to add up and threaten OOME because of a shortage of
1813     direct memory.  So, we set it down from the default.  Make
1814     it > the default hbase block size set in the HColumnDescriptor
1815     which is usually 64k.
1818 .Default
1819 `131072`
1822 [[hbase.regionserver.checksum.verify]]
1823 *`hbase.regionserver.checksum.verify`*::
1825 .Description
1827         If set to true (the default), HBase verifies the checksums for hfile
1828         blocks. HBase writes checksums inline with the data when it writes out
1829         hfiles. HDFS (as of this writing) writes checksums to a separate file
1830         than the data file necessitating extra seeks.  Setting this flag saves
1831         some on i/o.  Checksum verification by HDFS will be internally disabled
1832         on hfile streams when this flag is set.  If the hbase-checksum verification
1833         fails, we will switch back to using HDFS checksums (so do not disable HDFS
1834         checksums!  And besides this feature applies to hfiles only, not to WALs).
1835         If this parameter is set to false, then hbase will not verify any checksums,
1836         instead it will depend on checksum verification being done in the HDFS client.
1839 .Default
1840 `true`
1843 [[hbase.hstore.bytes.per.checksum]]
1844 *`hbase.hstore.bytes.per.checksum`*::
1846 .Description
1848         Number of bytes in a newly created checksum chunk for HBase-level
1849         checksums in hfile blocks.
1852 .Default
1853 `16384`
1856 [[hbase.hstore.checksum.algorithm]]
1857 *`hbase.hstore.checksum.algorithm`*::
1859 .Description
1861       Name of an algorithm that is used to compute checksums. Possible values
1862       are NULL, CRC32, CRC32C.
1865 .Default
1866 `CRC32`
1869 [[hbase.status.published]]
1870 *`hbase.status.published`*::
1872 .Description
1874       This setting activates the publication by the master of the status of the region server.
1875       When a region server dies and its recovery starts, the master will push this information
1876       to the client application, to let them cut the connection immediately instead of waiting
1877       for a timeout.
1880 .Default
1881 `false`
1884 [[hbase.status.publisher.class]]
1885 *`hbase.status.publisher.class`*::
1887 .Description
1889       Implementation of the status publication with a multicast message.
1892 .Default
1893 `org.apache.hadoop.hbase.master.ClusterStatusPublisher$MulticastPublisher`
1896 [[hbase.status.listener.class]]
1897 *`hbase.status.listener.class`*::
1899 .Description
1901       Implementation of the status listener with a multicast message.
1904 .Default
1905 `org.apache.hadoop.hbase.client.ClusterStatusListener$MulticastListener`
1908 [[hbase.status.multicast.address.ip]]
1909 *`hbase.status.multicast.address.ip`*::
1911 .Description
1913       Multicast address to use for the status publication by multicast.
1916 .Default
1917 `226.1.1.3`
1920 [[hbase.status.multicast.address.port]]
1921 *`hbase.status.multicast.address.port`*::
1923 .Description
1925       Multicast port to use for the status publication by multicast.
1928 .Default
1929 `16100`
1932 [[hbase.dynamic.jars.dir]]
1933 *`hbase.dynamic.jars.dir`*::
1935 .Description
1937       The directory from which the custom filter/co-processor jars can be loaded
1938       dynamically by the region server without the need to restart. However,
1939       an already loaded filter/co-processor class would not be un-loaded. See
1940       HBASE-1936 for more details.
1943 .Default
1944 `${hbase.rootdir}/lib`
1947 [[hbase.security.authentication]]
1948 *`hbase.security.authentication`*::
1950 .Description
1952       Controls whether or not secure authentication is enabled for HBase.
1953       Possible values are 'simple' (no authentication), and 'kerberos'.
1956 .Default
1957 `simple`
1960 [[hbase.rest.filter.classes]]
1961 *`hbase.rest.filter.classes`*::
1963 .Description
1965       Servlet filters for REST service.
1968 .Default
1969 `org.apache.hadoop.hbase.rest.filter.GzipFilter`
1972 [[hbase.master.loadbalancer.class]]
1973 *`hbase.master.loadbalancer.class`*::
1975 .Description
1977       Class used to execute the regions balancing when the period occurs.
1978       See the class comment for more on how it works
1979       https://hbase.apache.org/devapidocs/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.html
1980       It replaces the DefaultLoadBalancer as the default (since renamed
1981       as the SimpleLoadBalancer).
1984 .Default
1985 `org.apache.hadoop.hbase.master.balancer.StochasticLoadBalancer`
1988 [[hbase.security.exec.permission.checks]]
1989 *`hbase.security.exec.permission.checks`*::
1991 .Description
1993       If this setting is enabled and ACL based access control is active (the
1994       AccessController coprocessor is installed either as a system coprocessor
1995       or on a table as a table coprocessor) then you must grant all relevant
1996       users EXEC privilege if they require the ability to execute coprocessor
1997       endpoint calls. EXEC privilege, like any other permission, can be
1998       granted globally to a user, or to a user on a per table or per namespace
1999       basis. For more information on coprocessor endpoints, see the coprocessor
2000       section of the HBase online manual. For more information on granting or
2001       revoking permissions using the AccessController, see the security
2002       section of the HBase online manual.
2005 .Default
2006 `false`
2009 [[hbase.procedure.regionserver.classes]]
2010 *`hbase.procedure.regionserver.classes`*::
2012 .Description
2013 A comma-separated list of
2014     org.apache.hadoop.hbase.procedure.RegionServerProcedureManager procedure managers that are
2015     loaded by default on the active HRegionServer process. The lifecycle methods (init/start/stop)
2016     will be called by the active HRegionServer process to perform the specific globally barriered
2017     procedure. After implementing your own RegionServerProcedureManager, just put it in
2018     HBase's classpath and add the fully qualified class name here.
2021 .Default
2025 [[hbase.procedure.master.classes]]
2026 *`hbase.procedure.master.classes`*::
2028 .Description
2029 A comma-separated list of
2030     org.apache.hadoop.hbase.procedure.MasterProcedureManager procedure managers that are
2031     loaded by default on the active HMaster process. A procedure is identified by its signature and
2032     users can use the signature and an instant name to trigger an execution of a globally barriered
2033     procedure. After implementing your own MasterProcedureManager, just put it in HBase's classpath
2034     and add the fully qualified class name here.
2036 .Default
2039 [[hbase.regionserver.storefile.refresh.period]]
2040 *`hbase.regionserver.storefile.refresh.period`*::
2042 .Description
2044       The period (in milliseconds) for refreshing the store files for the secondary regions. 0
2045       means this feature is disabled. Secondary regions sees new files (from flushes and
2046       compactions) from primary once the secondary region refreshes the list of files in the
2047       region (there is no notification mechanism). But too frequent refreshes might cause
2048       extra Namenode pressure. If the files cannot be refreshed for longer than HFile TTL
2049       (hbase.master.hfilecleaner.ttl) the requests are rejected. Configuring HFile TTL to a larger
2050       value is also recommended with this setting.
2053 .Default
2057 [[hbase.region.replica.replication.enabled]]
2058 *`hbase.region.replica.replication.enabled`*::
2060 .Description
2062       Whether asynchronous WAL replication to the secondary region replicas is enabled or not.
2063       If this is enabled, a replication peer named "region_replica_replication" will be created
2064       which will tail the logs and replicate the mutations to region replicas for tables that
2065       have region replication > 1. If this is enabled once, disabling this replication also
2066       requires disabling the replication peer using shell or Admin java class.
2067       Replication to secondary region replicas works over standard inter-cluster replication.
2071 .Default
2072 `false`
2075 [[hbase.http.filter.initializers]]
2076 *`hbase.http.filter.initializers`*::
2078 .Description
2080       A comma separated list of class names. Each class in the list must extend
2081       org.apache.hadoop.hbase.http.FilterInitializer. The corresponding Filter will
2082       be initialized. Then, the Filter will be applied to all user facing jsp
2083       and servlet web pages.
2084       The ordering of the list defines the ordering of the filters.
2085       The default StaticUserWebFilter adds a user principal as defined by the
2086       hbase.http.staticuser.user property.
2089 .Default
2090 `org.apache.hadoop.hbase.http.lib.StaticUserWebFilter`
2093 [[hbase.security.visibility.mutations.checkauths]]
2094 *`hbase.security.visibility.mutations.checkauths`*::
2096 .Description
2098       This property if enabled, will check whether the labels in the visibility expression are associated
2099       with the user issuing the mutation
2102 .Default
2103 `false`
2106 [[hbase.http.max.threads]]
2107 *`hbase.http.max.threads`*::
2109 .Description
2111       The maximum number of threads that the HTTP Server will create in its
2112       ThreadPool.
2115 .Default
2116 `16`
2119 [[hbase.replication.rpc.codec]]
2120 *`hbase.replication.rpc.codec`*::
2122 .Description
2124                 The codec that is to be used when replication is enabled so that
2125                 the tags are also replicated. This is used along with HFileV3 which
2126                 supports tags in them.  If tags are not used or if the hfile version used
2127                 is HFileV2 then KeyValueCodec can be used as the replication codec. Note that
2128                 using KeyValueCodecWithTags for replication when there are no tags causes no harm.
2131 .Default
2132 `org.apache.hadoop.hbase.codec.KeyValueCodecWithTags`
2135 [[hbase.http.staticuser.user]]
2136 *`hbase.http.staticuser.user`*::
2138 .Description
2140       The user name to filter as on static web filters
2141       while rendering content. For example, the HDFS
2142       web UI (user to be used for browsing files).
2145 .Default
2146 `dr.stack`
2149 [[hbase.regionserver.handler.abort.on.error.percent]]
2150 *`hbase.regionserver.handler.abort.on.error.percent`*::
2152 .Description
2153 The percent of region server RPC threads failed to abort RS.
2154     -1 Disable aborting; 0 Abort if even a single handler has died;
2155     0.x Abort only when this percent of handlers have died;
2156     1 Abort only all of the handlers have died.
2158 .Default
2159 `0.5`
2162 [[hbase.master.cleaner.snapshot.interval]]
2163 *`hbase.master.cleaner.snapshot.interval`*::
2165 .Description
2167     Snapshot Cleanup chore interval in milliseconds.
2168     The cleanup thread keeps running at this interval
2169     to find all snapshots that are expired based on TTL
2170     and delete them.
2173 .Default
2174 `1800000`
2177 [[hbase.master.snapshot.ttl]]
2178 *`hbase.master.snapshot.ttl`*::
2180 .Description
2182       Default Snapshot TTL to be considered when the user
2183       does not specify TTL while creating snapshot.
2184       Default value 0 indicates FOREVERE - snapshot should not be
2185       automatically deleted until it is manually deleted
2189 .Default
2193 [[hbase.master.regions.recovery.check.interval]]
2194 *`hbase.master.regions.recovery.check.interval`*::
2196 .Description
2198     Regions Recovery Chore interval in milliseconds.
2199     This chore keeps running at this interval to
2200     find all regions with configurable max store file ref count
2201     and reopens them.
2204 .Default
2205 `1200000`
2208 [[hbase.regions.recovery.store.file.ref.count]]
2209 *`hbase.regions.recovery.store.file.ref.count`*::
2211 .Description
2213       Very large number of ref count on a compacted
2214       store file indicates that it is a ref leak
2215       on that object(compacted store file).
2216       Such files can not be removed after
2217       it is invalidated via compaction.
2218       Only way to recover in such scenario is to
2219       reopen the region which can release
2220       all resources, like the refcount,
2221       leases, etc. This config represents Store files Ref
2222       Count threshold value considered for reopening
2223       regions. Any region with compacted store files
2224       ref count > this value would be eligible for
2225       reopening by master. Here, we get the max
2226       refCount among all refCounts on all
2227       compacted away store files that belong to a
2228       particular region. Default value -1 indicates
2229       this feature is turned off. Only positive
2230       integer value should be provided to
2231       enable this feature.
2234 .Default
2235 `-1`
2238 [[hbase.regionserver.slowlog.ringbuffer.size]]
2239 *`hbase.regionserver.slowlog.ringbuffer.size`*::
2241 .Description
2243       Default size of ringbuffer to be maintained by each RegionServer in order
2244       to store online slowlog responses. This is an in-memory ring buffer of
2245       requests that were judged to be too slow in addition to the responseTooSlow
2246       logging. The in-memory representation would be complete.
2247       For more details, please look into Doc Section:
2248       <<slow_log_responses, slow_log_responses>>
2252 .Default
2253 `256`
2257 [[hbase.regionserver.slowlog.buffer.enabled]]
2258 *`hbase.regionserver.slowlog.buffer.enabled`*::
2260 .Description
2262       Indicates whether RegionServers have ring buffer running for storing
2263       Online Slow logs in FIFO manner with limited entries. The size of
2264       the ring buffer is indicated by config: hbase.regionserver.slowlog.ringbuffer.size
2265       The default value is false, turn this on and get latest slowlog
2266       responses with complete data.
2267       For more details, please look into Doc Section:
2268       <<slow_log_responses, slow_log_responses>>
2272 .Default
2273 `false`
2276 [[hbase.regionserver.slowlog.systable.enabled]]
2277 *`hbase.regionserver.slowlog.systable.enabled`*::
2279 .Description
2281       Should be enabled only if hbase.regionserver.slowlog.buffer.enabled is enabled.
2282       If enabled (true), all slow/large RPC logs would be persisted to system table
2283       hbase:slowlog (in addition to in-memory ring buffer at each RegionServer).
2284       The records are stored in increasing order of time.
2285       Operators can scan the table with various combination of ColumnValueFilter and
2286       time range.
2287       More details are provided in the doc section:
2288       "Get Slow/Large Response Logs from System table hbase:slowlog"
2291 .Default
2292 `false`
2295 [[hbase.master.metafixer.max.merge.count]]
2296 *`hbase.master.metafixer.max.merge.count`*::
2298 .Description
2300       Maximum regions to merge at a time when we fix overlaps noted in
2301       CJ consistency report, but avoid merging 100 regions in one go!
2304 .Default
2305 `64`
2308 [[hbase.rpc.rows.size.threshold.reject]]
2309 *`hbase.rpc.rows.size.threshold.reject`*::
2311 .Description
2313       If value is true, RegionServer will abort batch requests of
2314       Put/Delete with number of rows in a batch operation exceeding
2315       threshold defined by value of config:
2316       hbase.rpc.rows.warning.threshold.
2317       The default value is false and hence, by default, only
2318       warning will be logged. This config should be turned on to
2319       prevent RegionServer from serving
2320       very large batch size of rows and this way we can improve
2321       CPU usages by discarding too large batch request.
2324 .Default
2325 `false`
2327 [[hbase.master.balancer.decision.buffer.enabled]]
2328 *`hbase.master.balancer.decision.buffer.enabled`*::
2330 .Description
2332       Indicates whether active HMaster has ring buffer running for storing
2333       balancer decisions in FIFO manner with limited entries. The size of
2334       the ring buffer is indicated by config:
2335       hbase.master.balancer.decision.queue.size
2338 .Default
2339 `false`
2341 [[hbase.master.balancer.rejection.buffer.enabled]]
2342 *`hbase.master.balancer.rejection.buffer.enabled`*::
2344 .Description
2346       Indicates whether active HMaster has ring buffer running for storing
2347       balancer rejection in FIFO manner with limited entries. The size of
2348       the ring buffer is indicated by config:
2349       hbase.master.balancer.rejection.queue.size
2352 .Default
2353 `false`