You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ns...@apache.org on 2011/10/11 21:13:25 UTC
svn commit: r1182038 - in /hbase/branches/0.89/src:
main/java/org/apache/hadoop/hbase/master/HMaster.java
test/java/org/apache/hadoop/hbase/client/TestAdmin.java
Author: nspiegelberg
Date: Tue Oct 11 19:13:25 2011
New Revision: 1182038
URL: http://svn.apache.org/viewvc?rev=1182038&view=rev
Log:
fix the issue of .META. getting ignored
Summary:
Add a test for getTableRegions to check if we get regions for a normal table
and also for the META table
Test Plan:
Tested on the dev cluster
on issuing
major_compact '.META.'
from the hbase shell
verified the output in the master logs
2011-10-04 19:11:26,657 INFO org.apache.hadoop.hbase.master.BaseScanner: All 1
.META. region(s) scanned
2011-10-04 19:12:01,879 DEBUG org.apache.hadoop.hbase.master.HMaster: Received
a modifyTable operation TABLE_MAJOR_COMPACT for .META.
2011-10-04 19:12:01,879 DEBUG org.apache.hadoop.hbase.master.HMaster: Came Here
- 22011-10-04 19:12:01,880 DEBUG org.apache.hadoop.hbase.master.HMaster:
Including {server: 10.30.223.192:60020, regionname: .META.,,1.1028785192,
startKey: <>}
2011-10-04 19:12:01,880 DEBUG org.apache.hadoop.hbase.master.HMaster: Came Here
- 2.12011-10-04 19:12:01,880 DEBUG org.apache.hadoop.hbase.master.HMaster: Came
Here - 2.1.2
2011-10-04 19:12:01,880 DEBUG org.apache.hadoop.hbase.master.RegionManager:
Adding operation TABLE_MAJOR_COMPACT from tasklist
2011-10-04 19:12:02,510 DEBUG org.apache.hadoop.hbase.master.RegionManager:
Sending MSG_REGION_MAJOR_COMPACT REGION => {NAME => '.META.,,1', STARTKEY => '',
ENDKEY => '', ENCODED => 1028785192, TABLE => {{NAME => '.META.', IS_META =>
'true', FAMILIES => [{NAME => 'info', BLOOMFILTER => 'NONE', REPLICATION_SCOPE
=> '0', VERSIONS => '10', COMPRESSION => 'NONE', TTL => '2147483647', BLOCKSIZE
=> '8192', IN_MEMORY => 'true', BLOCKCACHE => 'true'}]}} to 10.30.223.192:60020
2011-10-04 19:12:15,151 INFO org.apache.hadoop.hbase.master.ServerManager: 3
region servers, 0 dead, average load 0.6666666666666666
Reviewers: kannan, kranganathan
Reviewed By: kannan
CC: hbase-eng@lists, kannan, aaiyer
Differential Revision: 338463
Modified:
hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
hbase/branches/0.89/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java
Modified: hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/master/HMaster.java?rev=1182038&r1=1182037&r2=1182038&view=diff
==============================================================================
--- hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/master/HMaster.java (original)
+++ hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/master/HMaster.java Tue Oct 11 19:13:25 2011
@@ -1143,25 +1143,37 @@ public class HMaster extends Thread impl
throws IOException {
final ArrayList<Pair<HRegionInfo, HServerAddress>> result =
Lists.newArrayList();
- MetaScannerVisitor visitor =
- new MetaScannerVisitor() {
- @Override
- public boolean processRow(Result data) throws IOException {
- if (data == null || data.size() <= 0)
+
+ if (!Bytes.equals(HConstants.META_TABLE_NAME, tableName)) {
+ MetaScannerVisitor visitor =
+ new MetaScannerVisitor() {
+ @Override
+ public boolean processRow(Result data) throws IOException {
+ if (data == null || data.size() <= 0)
+ return true;
+ Pair<HRegionInfo, HServerAddress> pair =
+ metaRowToRegionPair(data);
+ if (pair == null) return false;
+ if (!Bytes.equals(pair.getFirst().getTableDesc().getName(),
+ tableName)) {
+ return false;
+ }
+ result.add(pair);
return true;
- Pair<HRegionInfo, HServerAddress> pair =
- metaRowToRegionPair(data);
- if (pair == null) return false;
- if (!Bytes.equals(pair.getFirst().getTableDesc().getName(),
- tableName)) {
- return false;
}
- result.add(pair);
- return true;
- }
- };
+ };
- MetaScanner.metaScan(conf, visitor, tableName);
+ MetaScanner.metaScan(conf, visitor, tableName);
+ }
+ else {
+ List<MetaRegion> metaRegions = regionManager.getListOfOnlineMetaRegions();
+ for (MetaRegion mRegion: metaRegions) {
+ if (Bytes.equals(mRegion.getRegionInfo().getTableDesc().getName(), tableName)) {
+ result.add(new Pair<HRegionInfo, HServerAddress>
+ (mRegion.getRegionInfo(), mRegion.getServer()));
+ }
+ }
+ }
return result;
}
Modified: hbase/branches/0.89/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java?rev=1182038&r1=1182037&r2=1182038&view=diff
==============================================================================
--- hbase/branches/0.89/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java (original)
+++ hbase/branches/0.89/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java Tue Oct 11 19:13:25 2011
@@ -92,6 +92,19 @@ public class TestAdmin {
}
@Test
+ public void testGetTableRegions() throws IOException {
+ TEST_UTIL.createTable(Bytes.toBytes("testCreateNormalTable"),
+ HConstants.CATALOG_FAMILY);
+ HMaster master = TEST_UTIL.getMiniHBaseCluster().getMaster();
+ List<Pair<HRegionInfo,HServerAddress>> tableRegions =
+ master.getTableRegions(Bytes.toBytes("testCreateTable"));
+ assertTrue(tableRegions.size() != 0);
+ List<Pair<HRegionInfo,HServerAddress>> metaRegions =
+ master.getTableRegions(HConstants.META_TABLE_NAME);
+ assertTrue(metaRegions.size() != 0);
+ }
+
+ @Test
public void testCreateTableWithRegions() throws IOException {
byte[] tableName = Bytes.toBytes("testCreateTableWithRegions");