diff --git a/hbase-it/pom.xml b/hbase-it/pom.xml index 4522f9c..a527e77 100644 --- a/hbase-it/pom.xml +++ b/hbase-it/pom.xml @@ -35,8 +35,6 @@ **/Test*.java **/IntegrationTest*.java - - 3g @@ -148,7 +146,7 @@ 1800 - -enableassertions -Xmx${failsafe.Xmx} + -enableassertions -Xmx1900m -Djava.security.egd=file:/dev/./urandom false diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.java index ccb16bf..db6312f 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.java @@ -25,7 +25,6 @@ import org.apache.hadoop.hbase.classification.InterfaceAudience; import org.apache.hadoop.hbase.classification.InterfaceStability; import org.apache.hadoop.hbase.CoprocessorEnvironment; import org.apache.hadoop.hbase.HBaseInterfaceAudience; -import org.apache.hadoop.hbase.HRegionInfo; import org.apache.hadoop.hbase.regionserver.HRegion; import org.apache.hadoop.hbase.regionserver.RegionServerServices; @@ -35,12 +34,10 @@ public interface RegionCoprocessorEnvironment extends CoprocessorEnvironment { /** @return the region associated with this coprocessor */ HRegion getRegion(); - /** @return region information for the region this coprocessor is running on */ - HRegionInfo getRegionInfo(); - /** @return reference to the region server services */ RegionServerServices getRegionServerServices(); /** @return shared data between all instances of this coprocessor */ - ConcurrentMap getSharedData(); + ConcurrentMap getSharedData(); + } diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java index a32a478..87c8b9e 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java @@ -168,11 +168,6 @@ public class RegionCoprocessorHost return latencies; } - @Override - public HRegionInfo getRegionInfo() { - return region.getRegionInfo(); - } - } static class TableCoprocessorAttribute { diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/fs/TestBlockReorder.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/fs/TestBlockReorder.java index 613d1ea..db751b2 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/fs/TestBlockReorder.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/fs/TestBlockReorder.java @@ -175,12 +175,11 @@ public class TestBlockReorder { public void reorderBlocks(Configuration c, LocatedBlocks lbs, String src) { for (LocatedBlock lb : lbs.getLocatedBlocks()) { if (lb.getLocations().length > 1) { - DatanodeInfo[] infos = lb.getLocations(); - if (infos[0].getHostName().equals(lookup)) { + if (lb.getLocations()[0].getHostName().equals(lookup)) { LOG.info("HFileSystem bad host, inverting"); - DatanodeInfo tmp = infos[0]; - infos[0] = infos[1]; - infos[1] = tmp; + DatanodeInfo tmp = lb.getLocations()[0]; + lb.getLocations()[0] = lb.getLocations()[1]; + lb.getLocations()[1] = tmp; } } } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/security/token/TestTokenAuthentication.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/security/token/TestTokenAuthentication.java index 3bd20b2..22f1a24 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/security/token/TestTokenAuthentication.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/security/token/TestTokenAuthentication.java @@ -40,7 +40,6 @@ import org.apache.hadoop.hbase.CoordinatedStateManager; import org.apache.hadoop.hbase.Coprocessor; import org.apache.hadoop.hbase.HBaseTestingUtility; import org.apache.hadoop.hbase.HConstants; -import org.apache.hadoop.hbase.HRegionInfo; import org.apache.hadoop.hbase.Server; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.TableName; @@ -245,11 +244,6 @@ public class TestTokenAuthentication { public ClassLoader getClassLoader() { return Thread.currentThread().getContextClassLoader(); } - - @Override - public HRegionInfo getRegionInfo() { - return null; - } }); started = true; diff --git a/pom.xml b/pom.xml index 132215d..975f1f8 100644 --- a/pom.xml +++ b/pom.xml @@ -1086,14 +1086,11 @@ true 900 - - 1900m - 1900m - -enableassertions -XX:MaxDirectMemorySize=1G -Xmx${surefire.Xmx} + -enableassertions -XX:MaxDirectMemorySize=1G -Xmx1900m -XX:MaxPermSize=256m -Djava.security.egd=file:/dev/./urandom -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true - -enableassertions -Xmx${surefire.cygwinXmx} -XX:MaxPermSize=256m + -enableassertions -Xmx1900m -XX:MaxPermSize=256m -Djava.security.egd=file:/dev/./urandom -Djava.net.preferIPv4Stack=true "-Djava.library.path=${hadoop.library.path};${java.library.path}" diff --git a/src/main/asciidoc/_chapters/architecture.adoc b/src/main/asciidoc/_chapters/architecture.adoc index cd9a4a9..1833cfc 100644 --- a/src/main/asciidoc/_chapters/architecture.adoc +++ b/src/main/asciidoc/_chapters/architecture.adoc @@ -1331,6 +1331,35 @@ The RegionServer splits a region, offlines the split region and then adds the da See <> for how to manually manage splits (and for why you might do this). ==== Custom Split Policies +ou can override the default split policy using a custom link:http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/regionserver/RegionSplitPolicy.html[RegionSplitPolicy](HBase 0.94+). Typically a custom split policy should extend +HBase's default split policy: link:http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/regionserver/IncreasingToUpperBoundRegionSplitPolicy.html[IncreasingToUpperBoundRegionSplitPolicy]. + +The policy can set globally through the HBase configuration or on a per-table +basis. + +.Configuring the Split Policy Globally in _hbase-site.xml_ +[source,xml] +---- + + hbase.regionserver.region.split.policy + org.apache.hadoop.hbase.regionserver.IncreasingToUpperBoundRegionSplitPolicy + +---- + +.Configuring a Split Policy On a Table Using the Java API +[source,java] +HTableDescriptor tableDesc = new HTableDescriptor("test"); +tableDesc.setValue(HTableDescriptor.SPLIT_POLICY, ConstantSizeRegionSplitPolicy.class.getName()); +tableDesc.addFamily(new HColumnDescriptor(Bytes.toBytes("cf1"))); +admin.createTable(tableDesc); +---- + +[source] +.Configuring the Split Policy On a Table Using HBase Shell +---- +hbase> create 'test', {METHOD => 'table_att', CONFIG => {'SPLIT_POLICY' => 'org.apache.hadoop.hbase.regionserver.ConstantSizeRegionSplitPolicy'}}, +{NAME => 'cf1'} +---- The default split policy can be overwritten using a custom link:http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/regionserver/RegionSplitPolicy.html[RegionSplitPolicy(HBase 0.94+)]. Typically a custom split policy should extend HBase's default split policy: link:http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/regionserver/ConstantSizeRegionSplitPolicy.html[ConstantSizeRegionSplitPolicy].