2007-04-24 17:13:08 -04:00
|
|
|
<?xml version="1.0"?>
|
|
|
|
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
|
2007-07-12 18:08:25 -04:00
|
|
|
<!--
|
|
|
|
/**
|
|
|
|
* Copyright 2007 The Apache Software Foundation
|
|
|
|
*
|
|
|
|
* 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.
|
|
|
|
*/
|
|
|
|
-->
|
2007-04-24 17:13:08 -04:00
|
|
|
<configuration>
|
|
|
|
<property>
|
|
|
|
<name>hbase.master</name>
|
2007-10-25 12:12:51 -04:00
|
|
|
<value>local</value>
|
2007-04-24 17:13:08 -04:00
|
|
|
<description>The host and port that the HBase master runs at.
|
2007-10-25 12:12:51 -04:00
|
|
|
A value of 'local' runs the master and a regionserver in
|
|
|
|
a single process.
|
2007-04-24 17:13:08 -04:00
|
|
|
</description>
|
|
|
|
</property>
|
2008-02-08 17:56:57 -05:00
|
|
|
<property>
|
|
|
|
<name>hbase.rootdir</name>
|
2008-02-08 20:43:59 -05:00
|
|
|
<value>file:///tmp/hbase-${user.home}/hbase</value>
|
2008-02-08 17:56:57 -05:00
|
|
|
<description>The directory shared by region servers.
|
2008-02-08 20:43:59 -05:00
|
|
|
Should be fully-qualified to include the filesystem to use.
|
|
|
|
E.g: hdfs://NAMENODE_SERVER:PORT/HBASE_ROOTDIR
|
2008-02-08 17:56:57 -05:00
|
|
|
</description>
|
|
|
|
</property>
|
2007-10-05 23:09:50 -04:00
|
|
|
<property>
|
|
|
|
<name>hbase.master.info.port</name>
|
|
|
|
<value>60010</value>
|
|
|
|
<description>The port for the hbase master web UI
|
|
|
|
Set to -1 if you do not want the info server to run.
|
|
|
|
</description>
|
|
|
|
</property>
|
|
|
|
<property>
|
|
|
|
<name>hbase.master.info.bindAddress</name>
|
|
|
|
<value>0.0.0.0</value>
|
|
|
|
<description>The address for the hbase master web UI
|
|
|
|
</description>
|
|
|
|
</property>
|
2007-04-24 17:13:08 -04:00
|
|
|
<property>
|
|
|
|
<name>hbase.regionserver</name>
|
2007-10-05 23:09:50 -04:00
|
|
|
<value>0.0.0.0:60020</value>
|
2007-04-24 17:13:08 -04:00
|
|
|
<description>The host and port a HBase region server runs at.
|
|
|
|
</description>
|
|
|
|
</property>
|
2007-10-05 23:09:50 -04:00
|
|
|
<property>
|
|
|
|
<name>hbase.regionserver.info.port</name>
|
|
|
|
<value>60030</value>
|
|
|
|
<description>The port for the hbase regionserver web UI
|
|
|
|
Set to -1 if you do not want the info server to run.
|
|
|
|
</description>
|
|
|
|
</property>
|
|
|
|
<property>
|
|
|
|
<name>hbase.regionserver.info.bindAddress</name>
|
|
|
|
<value>0.0.0.0</value>
|
|
|
|
<description>The address for the hbase regionserver web UI
|
|
|
|
</description>
|
|
|
|
</property>
|
2007-06-25 18:54:56 -04:00
|
|
|
<property>
|
|
|
|
<name>hbase.regionserver.class</name>
|
2008-02-25 14:54:26 -05:00
|
|
|
<value>org.apache.hadoop.hbase.ipc.HRegionInterface</value>
|
2007-06-25 18:54:56 -04:00
|
|
|
<description>An interface that is assignable to HRegionInterface. Used in HClient for
|
|
|
|
opening proxy to remote region server.
|
|
|
|
</description>
|
|
|
|
</property>
|
2007-04-24 17:13:08 -04:00
|
|
|
<property>
|
2007-06-04 13:14:10 -04:00
|
|
|
<name>hbase.client.pause</name>
|
2007-09-10 19:27:34 -04:00
|
|
|
<value>10000</value>
|
2007-06-04 13:14:10 -04:00
|
|
|
<description>General client pause value. Used mostly as value to wait
|
|
|
|
before running a retry of a failed get, region lookup, etc.</description>
|
2007-04-24 17:13:08 -04:00
|
|
|
</property>
|
|
|
|
<property>
|
|
|
|
<name>hbase.client.retries.number</name>
|
2007-06-04 13:14:10 -04:00
|
|
|
<value>5</value>
|
|
|
|
<description>Maximum retries. Used as maximum for all retryable
|
|
|
|
operations such as fetching of the root region from root region
|
|
|
|
server, getting a cell's value, starting a row update, etc.
|
|
|
|
Default: 5.
|
2007-04-24 17:13:08 -04:00
|
|
|
</description>
|
|
|
|
</property>
|
|
|
|
<property>
|
|
|
|
<name>hbase.master.meta.thread.rescanfrequency</name>
|
|
|
|
<value>60000</value>
|
|
|
|
<description>How long the HMaster sleeps (in milliseconds) between scans of
|
2007-05-07 15:58:53 -04:00
|
|
|
the root and meta tables.
|
2007-04-24 17:13:08 -04:00
|
|
|
</description>
|
|
|
|
</property>
|
2007-05-07 15:58:53 -04:00
|
|
|
<property>
|
|
|
|
<name>hbase.master.lease.period</name>
|
2008-03-14 13:47:49 -04:00
|
|
|
<value>60000</value>
|
2007-05-07 15:58:53 -04:00
|
|
|
<description>HMaster server lease period in milliseconds. Default is
|
2008-03-14 14:14:45 -04:00
|
|
|
60 seconds. Region servers must report in within this period else
|
2007-07-01 20:47:13 -04:00
|
|
|
they are considered dead. On loaded cluster, may need to up this
|
|
|
|
period.</description>
|
2007-05-07 15:58:53 -04:00
|
|
|
</property>
|
2008-03-13 15:37:21 -04:00
|
|
|
<property>
|
|
|
|
<name>hbase.hbasemaster.maxregionopen</name>
|
|
|
|
<value>60000</value>
|
|
|
|
<description>Period to wait for a region open. If regionserver
|
|
|
|
takes longer than this interval, assign to a new regionserver.
|
|
|
|
</description>
|
|
|
|
</property>
|
2007-06-04 13:14:10 -04:00
|
|
|
<property>
|
|
|
|
<name>hbase.regionserver.lease.period</name>
|
2007-07-01 20:47:13 -04:00
|
|
|
<value>30000</value>
|
2007-06-04 13:14:10 -04:00
|
|
|
<description>HRegion server lease period in milliseconds. Default is
|
2007-07-01 20:47:13 -04:00
|
|
|
30 seconds. Clients must report in within this period else they are
|
|
|
|
considered dead.</description>
|
2007-06-04 13:14:10 -04:00
|
|
|
</property>
|
2007-05-07 15:58:53 -04:00
|
|
|
<property>
|
|
|
|
<name>hbase.server.thread.wakefrequency</name>
|
|
|
|
<value>10000</value>
|
|
|
|
<description>Time to sleep in between searches for work (in milliseconds).
|
|
|
|
Used as sleep interval by service threads such as META scanner and log roller.
|
|
|
|
</description>
|
|
|
|
</property>
|
|
|
|
<property>
|
|
|
|
<name>hbase.regionserver.handler.count</name>
|
|
|
|
<value>10</value>
|
|
|
|
<description>Count of RPC Server instances spun up on RegionServers
|
|
|
|
Same property is used by the HMaster for count of master handlers.
|
|
|
|
Default is 10.
|
|
|
|
</description>
|
|
|
|
</property>
|
|
|
|
<property>
|
|
|
|
<name>hbase.regionserver.msginterval</name>
|
2007-09-10 19:27:34 -04:00
|
|
|
<value>3000</value>
|
2007-05-07 15:58:53 -04:00
|
|
|
<description>Interval between messages from the RegionServer to HMaster
|
|
|
|
in milliseconds. Default is 15. Set this value low if you want unit
|
|
|
|
tests to be responsive.
|
|
|
|
</description>
|
|
|
|
</property>
|
2007-06-04 13:14:10 -04:00
|
|
|
<property>
|
|
|
|
<name>hbase.regionserver.maxlogentries</name>
|
|
|
|
<value>30000</value>
|
2007-07-26 17:30:55 -04:00
|
|
|
<description>Rotate the HRegion HLogs when count of entries exceeds this
|
|
|
|
value. Default: 30,000. Value is checked by a thread that runs every
|
|
|
|
hbase.server.thread.wakefrequency.
|
2007-06-04 13:14:10 -04:00
|
|
|
</description>
|
|
|
|
</property>
|
2007-11-25 02:17:38 -05:00
|
|
|
<property>
|
|
|
|
<name>hbase.regionserver.optionalcacheflushinterval</name>
|
2008-01-17 18:38:09 -05:00
|
|
|
<value>1800000</value>
|
2007-11-25 02:17:38 -05:00
|
|
|
<description>
|
|
|
|
Amount of time to wait since the last time a region was flushed before
|
2008-01-17 18:38:09 -05:00
|
|
|
invoking an optional cache flush (An optional cache flush is a
|
|
|
|
flush even though memcache is not at the memcache.flush.size).
|
|
|
|
Default: 30 minutes (in miliseconds)
|
2007-11-25 02:17:38 -05:00
|
|
|
</description>
|
|
|
|
</property>
|
2008-02-12 17:19:24 -05:00
|
|
|
<property>
|
|
|
|
<name>hbase.regionserver.optionallogrollinterval</name>
|
|
|
|
<value>1800000</value>
|
|
|
|
<description>
|
|
|
|
Amount of time to wait since the last time a the region server's log was
|
|
|
|
rolled before invoking an optional log roll (An optional log roll is a
|
|
|
|
one in which the log does not contain hbase.regionserver.maxlogentries).
|
|
|
|
Default: 30 minutes (in miliseconds)
|
|
|
|
</description>
|
|
|
|
</property>
|
2007-06-04 13:14:10 -04:00
|
|
|
<property>
|
2007-07-26 17:30:55 -04:00
|
|
|
<name>hbase.hregion.memcache.flush.size</name>
|
2007-12-07 14:49:19 -05:00
|
|
|
<value>67108864</value>
|
2007-07-26 17:30:55 -04:00
|
|
|
<description>
|
|
|
|
A HRegion memcache will be flushed to disk if size of the memcache
|
|
|
|
exceeds this number of bytes. Value is checked by a thread that runs
|
|
|
|
every hbase.server.thread.wakefrequency.
|
|
|
|
</description>
|
|
|
|
</property>
|
|
|
|
<property>
|
|
|
|
<name>hbase.hregion.memcache.block.multiplier</name>
|
2008-02-01 19:36:53 -05:00
|
|
|
<value>1</value>
|
2007-06-04 13:14:10 -04:00
|
|
|
<description>
|
2007-07-26 17:30:55 -04:00
|
|
|
Block updates if memcache has hbase.hregion.block.memcache
|
|
|
|
time hbase.hregion.flush.size bytes. Useful preventing
|
|
|
|
runaway memcache during spikes in update traffic. Without an
|
|
|
|
upper-bound, memcache fills such that when it flushes the
|
|
|
|
resultant flush files take a long time to compact or split, or
|
|
|
|
worse, we OOME.
|
2007-06-04 13:14:10 -04:00
|
|
|
</description>
|
|
|
|
</property>
|
|
|
|
<property>
|
|
|
|
<name>hbase.hregion.max.filesize</name>
|
2007-12-07 14:49:19 -05:00
|
|
|
<value>268435456</value>
|
2007-06-04 13:14:10 -04:00
|
|
|
<description>
|
2008-01-18 01:11:06 -05:00
|
|
|
Maximum HStoreFile size. If any one of a column families' HStoreFiles has
|
2008-02-01 19:36:53 -05:00
|
|
|
grown to exceed this value, the hosting HRegion is split in two.
|
2008-01-18 01:11:06 -05:00
|
|
|
Default: 256M.
|
2007-07-26 17:30:55 -04:00
|
|
|
</description>
|
|
|
|
</property>
|
|
|
|
<property>
|
HADOOP-1644 [hbase] Compactions should not block updates
Disentangles flushes and compactions; flushes can proceed while a
compaction is happening. Also, don't compact unless we hit
compaction threshold: i.e. don't automatically compact on HRegion
startup so regions can come online the faster.
M src/contrib/hbase/conf/hbase-default.xml
(hbase.hregion.compactionThreashold): Moved to be a hstore property
as part of encapsulating compaction decision inside hstore.
M src/contrib/hbase/src/test/org/apache/hadoop/hbase/HBaseTestCase.java
Refactored. Moved here generalized content loading code that can
be shared by tests. Add to setup and teardown the setup and removal
of local test dir (if it exists).
M src/contrib/hbase/src/test/org/apache/hadoop/hbase/TestCompare.java
Added test of HStoreKey compare (It works other than one would at
first expect).
M src/contrib/hbase/src/test/org/apache/hadoop/hbase/TestSplit.java
Bulk of content loading code has been moved up into the parent class.
M src/contrib/hbase/src/java/org/apache/hadoop/hbase/HConnectionManager.java
(tableExists): Restore to a check of if the asked-for table is in list of
tables. As it was, a check for tableExists would just wait on all timeouts
and retries to expire and then report table does not exist.. Fixed up
debug message listing regions of a table. Added protection against meta
table not having a COL_REGINFO (Seen in cluster testing -- probably a bug
in row removal).
M src/contrib/hbase/src/java/org/apache/hadoop/hbase/HStoreFile.java
Loading store files, even if it was noticed that there was no corresponding
map file, was still counting file as valid. Also fix merger -- was
constructing MapFile.Reader directly rather than asking HStoreFile for
the reader (HStoreFile knows how to do MapFile references)
(rename): Added check that move succeeded and logging. In cluster-testing,
the hdfs move of compacted file into place has failed on occasion (Need
more info).
M src/contrib/hbase/src/java/org/apache/hadoop/hbase/HStore.java
Encapsulate ruling on whether a compaction should take place inside HStore.
Added reading of the compactionThreshold her. Compaction threshold is
currently just number of store files. Later may include other factors such
as count of reference files. Cleaned up debug messages around
reconstruction log. Removed compaction if size > 1 from constructor. Let
compaction happen after we've been deployed (Compactions that happen while
we are online can continue to take updates. Compaction in the constructor
puts off our being able to take in updates).
(close): Changed so it now returns set of store files. This used to be done
by calls to flush. Since flush and compaction have been disentangled, a
compaction can come in after flush and the list of files could be off.
Having it done by close, can be sure list of files is complete.
(flushCache): No longer returns set of store files. Added 'merging compaction'
where we pick an arbitrary store file from disk and merge into it the content
of memcache (Needs work).
(getAllMapFiles): Renamed getAllStoreFiles.
(needsCompaction): Added.
(compactHelper): Added passing of maximum sequence number if already
calculated. If compacting one file only, we used skip without rewriting
the info file. Fixed.
Refactored. Moved guts to new compact(outFile, listOfStores) method.
(compact, CompactionReader): Added overrides and interface to support
'merging compaction' that takes files and memcache. In compaction,
if we failed the move of the compacted file, all data had already been
deleted. Changing, so deletion happens after confirmed move of
compacted file.
(getFull): Fixed bug where NPE when read of maps came back null.
Revealed by our NOT compacting stores on startup. Meant could be two
backing stores one of which had no data regards queried key.
(getNMaps): Renamed countOfStoreFiles.
(toString): Added.
M src/contrib/hbase/src/java/org/apache/hadoop/hbase/HStoreKey.java
Added comment on 'odd'-looking comparison.
M src/contrib/hbase/src/java/org/apache/hadoop/hbase/HRegionServer.java
Javadoc edit.
M src/contrib/hbase/src/java/org/apache/hadoop/hbase/HLogEdit.java
Only return first 128 bytes of value when toStringing (On cluster,
was returning complete web pages in log).
M src/contrib/hbase/src/java/org/apache/hadoop/hbase/HMaster.java
Removed confusing debug message (made sense once -- but not now).
Test rootRegionLocation for null before using it (can be null).
M src/contrib/hbase/src/java/org/apache/hadoop/hbase/HMemcache.java
Added comment that delete behavior needs study.
M src/contrib/hbase/src/java/org/apache/hadoop/hbase/HRegion.java
Fixed merge so it doesn't do the incremental based off files
returned by flush. Instead all is done in the one go after
region closes (using files returned by close).
Moved duplicated code to new filesByFamily method.
(WriteState): Removed writesOngoing in favor of compacting and
flushing flags.
(flushCache): No longer returns list of files.
M src/contrib/hbase/src/java/org/apache/hadoop/hbase/util/Writables.java
Fix javadoc.
git-svn-id: https://svn.apache.org/repos/asf/lucene/hadoop/trunk/src/contrib/hbase@566459 13f79535-47bb-0310-9956-ffa450edef68
2007-08-15 21:07:51 -04:00
|
|
|
<name>hbase.hstore.compactionThreshold</name>
|
2007-07-26 17:30:55 -04:00
|
|
|
<value>3</value>
|
|
|
|
<description>
|
|
|
|
If more than this number of HStoreFiles in any one HStore
|
|
|
|
(one HStoreFile is written per flush of memcache) then a compaction
|
|
|
|
is run to rewrite all HStoreFiles files as one. Larger numbers
|
|
|
|
put off compaction but when it runs, it takes longer to complete.
|
|
|
|
During a compaction, updates cannot be flushed to disk. Long
|
|
|
|
compactions require memory sufficient to carry the logging of
|
|
|
|
all updates across the duration of the compaction.
|
|
|
|
|
|
|
|
If too large, clients timeout during compaction.
|
|
|
|
</description>
|
|
|
|
</property>
|
|
|
|
<property>
|
|
|
|
<name>hbase.regionserver.thread.splitcompactcheckfrequency</name>
|
2008-02-01 19:36:53 -05:00
|
|
|
<value>20000</value>
|
2007-07-26 17:30:55 -04:00
|
|
|
<description>How often a region server runs the split/compaction check.
|
2007-06-04 13:14:10 -04:00
|
|
|
</description>
|
|
|
|
</property>
|
2007-12-27 17:26:27 -05:00
|
|
|
<property>
|
|
|
|
<name>hbase.io.index.interval</name>
|
|
|
|
<value>32</value>
|
|
|
|
<description>The interval at which we record offsets in hbase
|
|
|
|
store files/mapfiles. Default for stock mapfiles is 128. Index
|
|
|
|
files are read into memory. If there are many of them, could prove
|
|
|
|
a burden. If so play with the hadoop io.map.index.skip property and
|
|
|
|
skip every nth index member when reading back the index into memory.
|
|
|
|
</description>
|
|
|
|
</property>
|
2007-12-30 17:22:16 -05:00
|
|
|
<property>
|
|
|
|
<name>hbase.io.seqfile.compression.type</name>
|
|
|
|
<value>NONE</value>
|
|
|
|
<description>The compression type for hbase sequencefile.Writers
|
|
|
|
such as hlog.
|
|
|
|
</description>
|
|
|
|
</property>
|
2008-02-07 12:49:15 -05:00
|
|
|
<property>
|
|
|
|
<name>hbase.hstore.blockCache.blockSize</name>
|
|
|
|
<value>65536</value>
|
|
|
|
<description>The size of each block in any block caches.
|
|
|
|
</description>
|
|
|
|
</property>
|
2007-07-11 17:54:15 -04:00
|
|
|
|
|
|
|
<!-- HbaseShell Configurations -->
|
|
|
|
<property>
|
|
|
|
<name>hbaseshell.jline.bell.enabled</name>
|
|
|
|
<value>true</value>
|
|
|
|
<description>
|
|
|
|
if true, enable audible keyboard bells if an alert is required.
|
|
|
|
</description>
|
|
|
|
</property>
|
2007-10-05 23:09:50 -04:00
|
|
|
<property>
|
|
|
|
<name>hbaseshell.formatter</name>
|
2008-01-15 00:14:34 -05:00
|
|
|
<value>org.apache.hadoop.hbase.hql.formatter.AsciiTableFormatter</value>
|
2007-10-05 23:09:50 -04:00
|
|
|
<description>TableFormatter to use outputting HQL result sets.
|
|
|
|
</description>
|
|
|
|
</property>
|
2008-04-07 20:09:20 -04:00
|
|
|
<property>
|
|
|
|
<name>hbase.regionserver.globalMemcacheLimit</name>
|
|
|
|
<value>536870912</value>
|
|
|
|
<description>Maximum size of all memcaches in a region server before new
|
|
|
|
updates are blocked and flushes are forced. Defaults to 512MB.
|
|
|
|
</description>
|
|
|
|
</property>
|
|
|
|
<property>
|
|
|
|
<name>hbase.regionserver.globalMemcacheLimitlowMark</name>
|
|
|
|
<value>256435456</value>
|
|
|
|
<description>When memcaches are being forced to flush to make room in
|
|
|
|
memory, keep flushing until we hit this mark. Defaults to 256MB. Setting
|
|
|
|
this value equal to hbase.regionserver.globalmemcachelimit causes the
|
|
|
|
minimum possible flushing to occur when updates are blocked due to
|
|
|
|
memcache limiting.
|
|
|
|
</description>
|
|
|
|
</property>
|
2007-04-24 17:13:08 -04:00
|
|
|
</configuration>
|