diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionConfiguration.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionConfiguration.java
index 6727929fa60..ec3733d5e6a 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionConfiguration.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionConfiguration.java
@@ -31,7 +31,7 @@ public class ConnectionConfiguration {
public static final String WRITE_BUFFER_SIZE_KEY = "hbase.client.write.buffer";
public static final long WRITE_BUFFER_SIZE_DEFAULT = 2097152;
public static final String MAX_KEYVALUE_SIZE_KEY = "hbase.client.keyvalue.maxsize";
- public static final int MAX_KEYVALUE_SIZE_DEFAULT = -1;
+ public static final int MAX_KEYVALUE_SIZE_DEFAULT = 10485760;
private final long writeBufferSize;
private final int metaOperationTimeout;
diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/HConstants.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/HConstants.java
index 8ed3508f23b..fd45d2c7bd5 100644
--- a/hbase-common/src/main/java/org/apache/hadoop/hbase/HConstants.java
+++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/HConstants.java
@@ -244,7 +244,7 @@ public final class HConstants {
public static final String ZK_SESSION_TIMEOUT = "zookeeper.session.timeout";
/** Default value for ZooKeeper session timeout */
- public static final int DEFAULT_ZK_SESSION_TIMEOUT = 180 * 1000;
+ public static final int DEFAULT_ZK_SESSION_TIMEOUT = 90 * 1000;
/** Parameter name for port region server listens on. */
public static final String REGIONSERVER_PORT = "hbase.regionserver.port";
@@ -798,7 +798,7 @@ public final class HConstants {
/**
* Default value of {@link #HBASE_CLIENT_RETRIES_NUMBER}.
*/
- public static final int DEFAULT_HBASE_CLIENT_RETRIES_NUMBER = 31;
+ public static final int DEFAULT_HBASE_CLIENT_RETRIES_NUMBER = 35;
/**
* Parameter name to set the default scanner caching for all clients.
@@ -1356,7 +1356,7 @@ public final class HConstants {
public static final String SNAPSHOT_RESTORE_TAKE_FAILSAFE_SNAPSHOT =
"hbase.snapshot.restore.take.failsafe.snapshot";
- public static final boolean DEFAULT_SNAPSHOT_RESTORE_TAKE_FAILSAFE_SNAPSHOT = false;
+ public static final boolean DEFAULT_SNAPSHOT_RESTORE_TAKE_FAILSAFE_SNAPSHOT = true;
public static final String SNAPSHOT_RESTORE_FAILSAFE_NAME =
"hbase.snapshot.restore.failsafe.name";
diff --git a/hbase-common/src/main/resources/hbase-default.xml b/hbase-common/src/main/resources/hbase-default.xml
index 01c4c5809e5..379cdd9a334 100644
--- a/hbase-common/src/main/resources/hbase-default.xml
+++ b/hbase-common/src/main/resources/hbase-default.xml
@@ -323,7 +323,7 @@ possible configurations would overwhelm and obscure the important.
A split policy determines when a region should be split. The various other split policies that
are available currently are BusyRegionSplitPolicy, ConstantSizeRegionSplitPolicy, DisabledRegionSplitPolicy,
- DelimitedKeyPrefixRegionSplitPolicy, and KeyPrefixRegionSplitPolicy.
+ DelimitedKeyPrefixRegionSplitPolicy, KeyPrefixRegionSplitPolicy, and SteppingSplitPolicy.
DisabledRegionSplitPolicy blocks manual region splitting.
@@ -490,7 +490,7 @@ possible configurations would overwhelm and obscure the important.
hbase.client.max.perserver.tasks
- 5
+ 2
The maximum number of concurrent mutation tasks a single HTable instance will
send to a single region server.
@@ -581,7 +581,7 @@ possible configurations would overwhelm and obscure the important.
hbase.normalizer.period
- 1800000
+ 300000
Period at which the region normalizer runs in the Master.
diff --git a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RESTServer.java b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RESTServer.java
index 95b34713190..278b6a6e028 100644
--- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RESTServer.java
+++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RESTServer.java
@@ -41,6 +41,7 @@ import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.http.InfoServer;
import org.apache.hadoop.hbase.rest.filter.AuthFilter;
+import org.apache.hadoop.hbase.rest.filter.GzipFilter;
import org.apache.hadoop.hbase.rest.filter.RestCsrfPreventionFilter;
import org.apache.hadoop.hbase.security.UserProvider;
import org.apache.hadoop.hbase.util.DNS;
@@ -337,7 +338,7 @@ public class RESTServer implements Constants {
// Load filters from configuration.
String[] filterClasses = servlet.getConfiguration().getStrings(FILTER_CLASSES,
- ArrayUtils.EMPTY_STRING_ARRAY);
+ GzipFilter.class.getName());
for (String filter : filterClasses) {
filter = filter.trim();
ctxHandler.addFilter(filter, PATH_SPEC_ANY, EnumSet.of(DispatcherType.REQUEST));
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/http/HttpServer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/http/HttpServer.java
index c9561e8c64a..c7e8fe1956a 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/http/HttpServer.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/http/HttpServer.java
@@ -513,10 +513,10 @@ public class HttpServer implements FilterContainer {
final String appDir = getWebAppsPath(b.name);
- int maxThreads = b.conf.getInt(HTTP_MAX_THREADS, -1);
- // If HTTP_MAX_THREADS is not configured, QueueThreadPool() will use the
- // default value (currently 250).
- QueuedThreadPool threadPool = maxThreads == -1 ? new QueuedThreadPool()
+ int maxThreads = b.conf.getInt(HTTP_MAX_THREADS, 16);
+ // If HTTP_MAX_THREADS is less than or equal to 0, QueueThreadPool() will use the
+ // default value (currently 200).
+ QueuedThreadPool threadPool = maxThreads <= 0 ? new QueuedThreadPool()
: new QueuedThreadPool(maxThreads);
threadPool.setDaemon(true);
this.webServer = new Server(threadPool);
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcExecutor.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcExecutor.java
index 301f0e79a72..0096f767c02 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcExecutor.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcExecutor.java
@@ -112,7 +112,7 @@ public abstract class RpcExecutor {
this.conf = conf;
this.abortable = abortable;
- float callQueuesHandlersFactor = this.conf.getFloat(CALL_QUEUE_HANDLER_FACTOR_CONF_KEY, 0);
+ float callQueuesHandlersFactor = this.conf.getFloat(CALL_QUEUE_HANDLER_FACTOR_CONF_KEY, 0.1f);
this.numCallQueues = computeNumCallQueues(handlerCount, callQueuesHandlersFactor);
this.queues = new ArrayList<>(this.numCallQueues);
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java
index df1fdec54bc..11584ee5612 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java
@@ -124,7 +124,7 @@ public class HStore implements Store {
// keep in accordance with HDFS default storage policy
public static final String DEFAULT_BLOCK_STORAGE_POLICY = "HOT";
public static final int DEFAULT_COMPACTCHECKER_INTERVAL_MULTIPLIER = 1000;
- public static final int DEFAULT_BLOCKING_STOREFILE_COUNT = 7;
+ public static final int DEFAULT_BLOCKING_STOREFILE_COUNT = 10;
private static final Log LOG = LogFactory.getLog(HStore.class);
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionSplitPolicy.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionSplitPolicy.java
index 2249de867d4..0217aa9dd01 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionSplitPolicy.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionSplitPolicy.java
@@ -33,6 +33,7 @@ import org.apache.hadoop.hbase.shaded.com.google.common.base.Preconditions;
/**
* A split policy determines when a region should be split.
+ * @see SteppingSplitPolicy Default split policy since 2.0.0
* @see IncreasingToUpperBoundRegionSplitPolicy Default split policy since
* 0.94.0
* @see ConstantSizeRegionSplitPolicy Default split policy before 0.94.0
@@ -40,7 +41,7 @@ import org.apache.hadoop.hbase.shaded.com.google.common.base.Preconditions;
@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CONFIG)
public abstract class RegionSplitPolicy extends Configured {
private static final Class extends RegionSplitPolicy>
- DEFAULT_SPLIT_POLICY_CLASS = IncreasingToUpperBoundRegionSplitPolicy.class;
+ DEFAULT_SPLIT_POLICY_CLASS = SteppingSplitPolicy.class;
/**
* The region configured for this split policy.
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/FSHLog.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/FSHLog.java
index 0aa0eb87946..3b25e15c9d8 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/FSHLog.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/FSHLog.java
@@ -216,7 +216,7 @@ public class FSHLog extends AbstractFSWAL {
FSUtils.getDefaultReplication(fs, this.walDir));
this.lowReplicationRollLimit = conf.getInt("hbase.regionserver.hlog.lowreplication.rolllimit",
5);
- this.closeErrorsTolerated = conf.getInt("hbase.regionserver.logroll.errors.tolerated", 0);
+ this.closeErrorsTolerated = conf.getInt("hbase.regionserver.logroll.errors.tolerated", 2);
// rollWriter sets this.hdfs_out if it can.
rollWriter();
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/FSHDFSUtils.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/FSHDFSUtils.java
index 5817a77b786..5677ca420c4 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/FSHDFSUtils.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/FSHDFSUtils.java
@@ -201,11 +201,11 @@ public class FSHDFSUtils extends FSUtils {
// This setting should be a little bit above what the cluster dfs heartbeat is set to.
long firstPause = conf.getInt("hbase.lease.recovery.first.pause", 4000);
// This should be set to how long it'll take for us to timeout against primary datanode if it
- // is dead. We set it to 61 seconds, 1 second than the default READ_TIMEOUT in HDFS, the
+ // is dead. We set it to 64 seconds, 4 second than the default READ_TIMEOUT in HDFS, the
// default value for DFS_CLIENT_SOCKET_TIMEOUT_KEY. If recovery is still failing after this
// timeout, then further recovery will take liner backoff with this base, to avoid endless
// preemptions when this value is not properly configured.
- long subsequentPauseBase = conf.getLong("hbase.lease.recovery.dfs.timeout", 61 * 1000);
+ long subsequentPauseBase = conf.getLong("hbase.lease.recovery.dfs.timeout", 64 * 1000);
Method isFileClosedMeth = null;
// whether we need to look for isFileClosed method
diff --git a/src/main/asciidoc/_chapters/hbase-default.adoc b/src/main/asciidoc/_chapters/hbase-default.adoc
index 60c084919d8..fa5f5ab06bc 100644
--- a/src/main/asciidoc/_chapters/hbase-default.adoc
+++ b/src/main/asciidoc/_chapters/hbase-default.adoc
@@ -461,11 +461,12 @@ The host name or IP address of the name server (DNS)
A split policy determines when a region should be split. The various other split policies that
are available currently are ConstantSizeRegionSplitPolicy, DisabledRegionSplitPolicy,
- DelimitedKeyPrefixRegionSplitPolicy, KeyPrefixRegionSplitPolicy etc.
+ DelimitedKeyPrefixRegionSplitPolicy, KeyPrefixRegionSplitPolicy,
+ BusyRegionSplitPolicy, SteppingSplitPolicy etc.
+
.Default
-`org.apache.hadoop.hbase.regionserver.IncreasingToUpperBoundRegionSplitPolicy`
+`org.apache.hadoop.hbase.regionserver.SteppingSplitPolicy`
[[zookeeper.session.timeout]]
@@ -694,7 +695,7 @@ The maximum number of concurrent tasks a single HTable instance will
send to a single region server.
+
.Default
-`5`
+`2`
[[hbase.client.max.perregion.tasks]]
@@ -2111,7 +2112,7 @@ Fully qualified name of class implementing coordinated state manager.
+
.Default
-`10`
+`16`
[[hbase.replication.rpc.codec]]