blob: 54ab35d222e05896f1fff4a83aaa749eff6fbffe [file] [log] [blame]
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-->
<configuration supports_final="true">
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:8020/apps/hbase/data</value>
<description>The directory shared by region servers and into
which HBase persists. The URL should be 'fully-qualified'
to include the filesystem scheme. For example, to specify the
HDFS directory '/hbase' where the HDFS instance's namenode is
running at namenode.example.org on port 9000, set this value to:
hdfs://namenode.example.org:9000/hbase. By default HBase writes
into /tmp. Change this configuration else all data will be lost
on machine restart.
</description>
<on-ambari-upgrade add="false"/>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
<description>The mode the cluster will be in. Possible values are
false for standalone mode and true for distributed mode. If
false, startup will run all HBase and ZooKeeper daemons together
in the one JVM.
</description>
<on-ambari-upgrade add="true"/>
</property>
<property>
<name>hbase.master.port</name>
<value>60000</value>
<display-name>HBase Master Port</display-name>
<description>The port the HBase Master should bind to.</description>
<value-attributes>
<type>int</type>
<overridable>false</overridable>
</value-attributes>
<on-ambari-upgrade add="true"/>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>/tmp/hbase-${user.name}</value>
<display-name>HBase tmp directory</display-name>
<description>Temporary directory on the local filesystem.
Change this setting to point to a location more permanent
than '/tmp' (The '/tmp' directory is often cleared on
machine restart).
</description>
<value-attributes>
<type>directory</type>
</value-attributes>
<on-ambari-upgrade add="true"/>
</property>
<property>
<name>hbase.local.dir</name>
<value>${hbase.tmp.dir}/local</value>
<description>Directory on the local filesystem to be used as a local storage
</description>
<on-ambari-upgrade add="true"/>
</property>
<property>
<name>hbase.master.info.bindAddress</name>
<value>0.0.0.0</value>
<description>The bind address for the HBase Master web UI
</description>
<on-ambari-upgrade add="true"/>
</property>
<property>
<name>hbase.master.info.port</name>
<value>60010</value>
<description>The port for the HBase Master web UI.</description>
<on-ambari-upgrade add="true"/>
</property>
<property>
<name>hbase.regionserver.info.port</name>
<value>60030</value>
<description>The port for the HBase RegionServer web UI.</description>
<on-ambari-upgrade add="true"/>
</property>
<property>
<name>hbase.regionserver.global.memstore.upperLimit</name>
<value>0.4</value>
<description>
Percentage of RegionServer memory to allocate to write buffers.
Each column family within each region is allocated a smaller
pool (the memstore) within this shared write pool. If this buffer is full,
updates are blocked and data is flushed from memstores until a global low
watermark (hbase.regionserver.global.memstore.size.lower.limit) is reached.
</description>
<display-name>% of RegionServer Allocated to Write Buffers</display-name>
<value-attributes>
<type>float</type>
<minimum>0</minimum>
<maximum>0.8</maximum>
<increment-step>0.01</increment-step>
</value-attributes>
<on-ambari-upgrade add="true"/>
</property>
<property>
<name>hbase.regionserver.handler.count</name>
<value>30</value>
<description>
Count of RPC Listener instances spun up on RegionServers.
Same property is used by the Master for count of master handlers.
</description>
<display-name>Number of Handlers per RegionServer</display-name>
<value-attributes>
<type>int</type>
<minimum>5</minimum>
<maximum>240</maximum>
<increment-step>1</increment-step>
</value-attributes>
<on-ambari-upgrade add="true"/>
</property>
<property>
<name>hbase.hregion.majorcompaction</name>
<value>604800000</value>
<description>
Time between major compactions. Set to 0 to disable automatic major compactions.
</description>
<display-name>Major Compaction Interval</display-name>
<value-attributes>
<type>int</type>
<minimum>0</minimum>
<maximum>2592000000</maximum>
<unit>milliseconds</unit>
</value-attributes>
<on-ambari-upgrade add="true"/>
</property>
<property>
<name>hbase.regionserver.global.memstore.lowerLimit</name>
<value>0.38</value>
<description>When memstores are being forced to flush to make room in
memory, keep flushing until we hit this mark. Defaults to 35% of heap.
This value equal to hbase.regionserver.global.memstore.upperLimit causes
the minimum possible flushing to occur when updates are blocked due to
memstore limiting.
</description>
<value-attributes>
<type>float</type>
</value-attributes>
<on-ambari-upgrade add="true"/>
</property>
<property>
<name>hbase.hregion.memstore.block.multiplier</name>
<value>4</value>
<description>
Block updates if a memstore's size spikes this many times above the size that would cause it to be flushed.
Useful to prevent runaway memstores during a sudden spike in update traffic.
</description>
<display-name>Per-Column Family Memstore Block Multiplier</display-name>
<value-attributes>
<type>value-list</type>
<entries>
<entry>
<value>2</value>
</entry>
<entry>
<value>4</value>
</entry>
<entry>
<value>8</value>
</entry>
</entries>
<selection-cardinality>1</selection-cardinality>
</value-attributes>
<on-ambari-upgrade add="true"/>
</property>
<property>
<name>hbase.hregion.memstore.flush.size</name>
<value>134217728</value>
<description>
The size of an individual memstore. Each column familiy within each region is allocated its own memstore.
</description>
<display-name>Memstore Flush Size</display-name>
<value-attributes>
<type>int</type>
<minimum>33554432</minimum>
<maximum>268435456</maximum>
<increment-step>1048576</increment-step>
<unit>B</unit>
</value-attributes>
<on-ambari-upgrade add="true"/>
</property>
<property>
<name>hbase.hregion.memstore.mslab.enabled</name>
<value>true</value>
<description>
Enables the MemStore-Local Allocation Buffer,
a feature which works to prevent heap fragmentation under
heavy write loads. This can reduce the frequency of stop-the-world
GC pauses on large heaps.
</description>
<value-attributes>
<type>boolean</type>
</value-attributes>
<on-ambari-upgrade add="true"/>
</property>
<property>
<name>hbase.hregion.max.filesize</name>
<value>10737418240</value>
<description>
Maximum HFile size. If the sum of the sizes of a region's HFiles has grown to exceed this
value, the region is split in two.
</description>
<display-name>Maximum Region File Size</display-name>
<value-attributes>
<type>int</type>
<minimum>1073741824</minimum>
<maximum>107374182400</maximum>
<unit>B</unit>
<increment-step>1073741824</increment-step>
</value-attributes>
<on-ambari-upgrade add="true"/>
</property>
<property>
<name>hbase.client.scanner.caching</name>
<value>100</value>
<description>Number of rows that will be fetched when calling next
on a scanner if it is not served from (local, client) memory. Higher
caching values will enable faster scanners but will eat up more memory
and some calls of next may take longer and longer times when the cache is empty.
Do not set this value such that the time between invocations is greater
than the scanner timeout; i.e. hbase.regionserver.lease.period
</description>
<display-name>Number of Fetched Rows when Scanning from Disk</display-name>
<value-attributes>
<type>int</type>
<minimum>100</minimum>
<maximum>10000</maximum>
<increment-step>100</increment-step>
<unit>rows</unit>
</value-attributes>
<on-ambari-upgrade add="true"/>
</property>
<property>
<name>zookeeper.session.timeout</name>
<value>90000</value>
<description>ZooKeeper session timeout.
ZooKeeper session timeout in milliseconds. It is used in two different ways.
First, this value is used in the ZK client that HBase uses to connect to the ensemble.
It is also used by HBase when it starts a ZK server and it is passed as the 'maxSessionTimeout'. See
http://hadoop.apache.org/zookeeper/docs/current/zookeeperProgrammers.html#ch_zkSessions.
For example, if a HBase region server connects to a ZK ensemble that's also managed by HBase, then the
session timeout will be the one specified by this configuration. But, a region server that connects
to an ensemble managed with a different configuration will be subjected that ensemble's maxSessionTimeout. So,
even though HBase might propose using 90 seconds, the ensemble can have a max timeout lower than this and
it will take precedence.
</description>
<display-name>Zookeeper Session Timeout</display-name>
<value-attributes>
<type>int</type>
<minimum>10000</minimum>
<maximum>180000</maximum>
<unit>milliseconds</unit>
<increment-step>10000</increment-step>
</value-attributes>
<on-ambari-upgrade add="true"/>
</property>
<property>
<name>hbase.client.keyvalue.maxsize</name>
<value>1048576</value>
<description>
Specifies the combined maximum allowed size of a KeyValue
instance. This is to set an upper boundary for a single entry saved in a
storage file. Since they cannot be split it helps avoiding that a region
cannot be split any further because the data is too large. It seems wise
to set this to a fraction of the maximum region size. Setting it to zero
or less disables the check.
</description>
<display-name>Maximum Record Size</display-name>
<value-attributes>
<type>int</type>
<minimum>1048576</minimum>
<maximum>31457280</maximum>
<unit>B</unit>
<increment-step>262144</increment-step>
</value-attributes>
<on-ambari-upgrade add="true"/>
</property>
<property>
<name>hbase.hstore.compactionThreshold</name>
<value>3</value>
<description>
The maximum number of StoreFiles which will be selected for a single minor
compaction, regardless of the number of eligible StoreFiles. Effectively, the value of
hbase.hstore.compaction.max controls the length of time it takes a single compaction to
complete. Setting it larger means that more StoreFiles are included in a compaction. For most
cases, the default value is appropriate.
</description>
<display-name>Maximum Store Files before Minor Compaction</display-name>
<value-attributes>
<type>int</type>
<entries>
<entry>
<value>2</value>
</entry>
<entry>
<value>3</value>
</entry>
<entry>
<value>4</value>
</entry>
</entries>
</value-attributes>
<on-ambari-upgrade add="true"/>
</property>
<property>
<name>hbase.hstore.flush.retries.number</name>
<value>120</value>
<description>
The number of times the region flush operation will be retried.
</description>
<on-ambari-upgrade add="true"/>
</property>
<property>
<name>hbase.hstore.blockingStoreFiles</name>
<display-name>hstore blocking storefiles</display-name>
<value>10</value>
<description>
If more than this number of StoreFiles in any one Store
(one StoreFile is written per flush of MemStore) then updates are
blocked for this HRegion until a compaction is completed, or
until hbase.hstore.blockingWaitTime has been exceeded.
</description>
<value-attributes>
<type>int</type>
</value-attributes>
<on-ambari-upgrade add="true"/>
</property>
<property>
<name>hfile.block.cache.size</name>
<value>0.40</value>
<description>Percentage of RegionServer memory to allocate to read buffers.</description>
<display-name>% of RegionServer Allocated to Read Buffers</display-name>
<value-attributes>
<type>float</type>
<minimum>0</minimum>
<maximum>0.8</maximum>
<increment-step>0.01</increment-step>
</value-attributes>
<on-ambari-upgrade add="true"/>
</property>
<!-- Additional configuration specific to HBase security -->
<property>
<name>hbase.superuser</name>
<value>hbase</value>
<description>List of users or groups (comma-separated), who are allowed
full privileges, regardless of stored ACLs, across the cluster.
Only used when HBase security is enabled.
</description>
<depends-on>
<property>
<type>hbase-env</type>
<name>hbase_user</name>
</property>
</depends-on>
<on-ambari-upgrade add="true"/>
</property>
<property>
<name>hbase.security.authentication</name>
<value>simple</value>
<description>
Select Simple or Kerberos authentication. Note: Kerberos must be set up before the Kerberos option will take effect.
</description>
<display-name>Enable Authentication</display-name>
<value-attributes>
<type>value-list</type>
<entries>
<entry>
<label>Simple</label>
<value>simple</value>
</entry>
<entry>
<label>Kerberos</label>
<value>kerberos</value>
</entry>
</entries>
<selection-cardinality>1</selection-cardinality>
</value-attributes>
<on-ambari-upgrade add="true"/>
</property>
<property>
<name>hbase.security.authorization</name>
<value>false</value>
<description> Set Authorization Method.</description>
<display-name>Enable Authorization</display-name>
<value-attributes>
<type>value-list</type>
<entries>
<entry>
<value>true</value>
<label>Native</label>
</entry>
<entry>
<value>false</value>
<label>Off</label>
</entry>
</entries>
<selection-cardinality>1</selection-cardinality>
</value-attributes>
<on-ambari-upgrade add="true"/>
</property>
<property>
<name>hbase.coprocessor.region.classes</name>
<value>org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint</value>
<description>A comma-separated list of Coprocessors that are loaded by
default on all tables. For any override coprocessor method, these classes
will be called in order. After implementing your own Coprocessor, just put
it in HBase's classpath and add the fully qualified class name here.
A coprocessor can also be loaded on demand by setting HTableDescriptor.
</description>
<value-attributes>
<empty-value-valid>true</empty-value-valid>
</value-attributes>
<depends-on>
<property>
<type>hbase-site</type>
<name>hbase.security.authorization</name>
</property>
<property>
<type>hbase-site</type>
<name>hbase.security.authentication</name>
</property>
</depends-on>
<on-ambari-upgrade add="true"/>
</property>
<property>
<name>hbase.coprocessor.master.classes</name>
<value/>
<description>A comma-separated list of
org.apache.hadoop.hbase.coprocessor.MasterObserver coprocessors that are
loaded by default on the active HMaster process. For any implemented
coprocessor methods, the listed classes will be called in order. After
implementing your own MasterObserver, just put it in HBase's classpath
and add the fully qualified class name here.
</description>
<value-attributes>
<empty-value-valid>true</empty-value-valid>
</value-attributes>
<depends-on>
<property>
<type>hbase-site</type>
<name>hbase.security.authorization</name>
</property>
</depends-on>
<on-ambari-upgrade add="true"/>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
<description>Property from ZooKeeper's config zoo.cfg.
The port at which the clients will connect.
</description>
<on-ambari-upgrade add="true"/>
</property>
<!--
The following three properties are used together to create the list of
host:peer_port:leader_port quorum servers for ZooKeeper.
-->
<property>
<name>hbase.zookeeper.quorum</name>
<value>localhost</value>
<description>Comma separated list of servers in the ZooKeeper Quorum.
For example, "host1.mydomain.com,host2.mydomain.com,host3.mydomain.com".
By default this is set to localhost for local and pseudo-distributed modes
of operation. For a fully-distributed setup, this should be set to a full
list of ZooKeeper quorum servers. If HBASE_MANAGES_ZK is set in hbase-env.sh
this is the list of servers which we will start/stop ZooKeeper on.
</description>
<value-attributes>
<type>multiLine</type>
</value-attributes>
<on-ambari-upgrade add="true"/>
</property>
<!-- End of properties used to generate ZooKeeper host:port quorum list. -->
<property>
<name>hbase.zookeeper.useMulti</name>
<value>true</value>
<description>Instructs HBase to make use of ZooKeeper's multi-update functionality.
This allows certain ZooKeeper operations to complete more quickly and prevents some issues
with rare Replication failure scenarios (see the release note of HBASE-2611 for an example).&#xB7;
IMPORTANT: only set this to true if all ZooKeeper servers in the cluster are on version 3.4+
and will not be downgraded. ZooKeeper versions before 3.4 do not support multi-update and will
not fail gracefully if multi-update is invoked (see ZOOKEEPER-1495).
</description>
<on-ambari-upgrade add="true"/>
</property>
<property>
<name>zookeeper.znode.parent</name>
<value>/hbase-unsecure</value>
<description>Root ZNode for HBase in ZooKeeper. All of HBase's ZooKeeper
files that are configured with a relative path will go under this node.
By default, all of HBase's ZooKeeper file path are configured with a
relative path, so they will all go under this directory unless changed.
</description>
<on-ambari-upgrade add="true"/>
</property>
<property>
<name>hbase.client.retries.number</name>
<value>35</value>
<description>Maximum retries. Used as maximum for all retryable
operations such as the getting of a cell's value, starting a row update,
etc. Retry interval is a rough function based on hbase.client.pause. At
first we retry at this interval but then with backoff, we pretty quickly reach
retrying every ten seconds. See HConstants#RETRY_BACKOFF for how the backup
ramps up. Change this setting and hbase.client.pause to suit your workload.</description>
<display-name>Maximum Client Retries</display-name>
<value-attributes>
<type>int</type>
<minimum>5</minimum>
<maximum>50</maximum>
<increment-step>1</increment-step>
</value-attributes>
<on-ambari-upgrade add="true"/>
</property>
<property>
<name>hbase.rpc.timeout</name>
<value>90000</value>
<description>
This is for the RPC layer to define how long HBase client applications
take for a remote call to time out. It uses pings to check connections
but will eventually throw a TimeoutException.
</description>
<display-name>HBase RPC Timeout</display-name>
<value-attributes>
<type>int</type>
<minimum>10000</minimum>
<maximum>180000</maximum>
<unit>milliseconds</unit>
<increment-step>10000</increment-step>
</value-attributes>
<on-ambari-upgrade add="true"/>
</property>
<property>
<name>hbase.defaults.for.version.skip</name>
<value>true</value>
<description>Disables version verification.</description>
<on-ambari-upgrade add="true"/>
</property>
<property>
<name>phoenix.query.timeoutMs</name>
<value>60000</value>
<description>Number of milliseconds after which a Phoenix query will timeout on the client.</description>
<display-name>Phoenix Query Timeout</display-name>
<value-attributes>
<type>int</type>
<minimum>30000</minimum>
<maximum>180000</maximum>
<unit>milliseconds</unit>
<increment-step>10000</increment-step>
</value-attributes>
<on-ambari-upgrade add="true"/>
</property>
<property>
<name>dfs.domain.socket.path</name>
<value>/var/lib/hadoop-hdfs/dn_socket</value>
<description>Path to domain socket.</description>
<on-ambari-upgrade add="true"/>
</property>
<property>
<name>hbase.rpc.protection</name>
<value>authentication</value>
<on-ambari-upgrade add="true"/>
</property>
</configuration>