You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2011/05/24 07:19:21 UTC
svn commit: r1126872 - in /hbase/trunk: ./ conf/
src/main/java/org/apache/hadoop/hbase/executor/
src/main/java/org/apache/hadoop/hbase/master/
src/main/java/org/apache/hadoop/hbase/util/
src/main/java/org/apache/hadoop/hbase/zookeeper/
Author: stack
Date: Tue May 24 05:19:20 2011
New Revision: 1126872
URL: http://svn.apache.org/viewvc?rev=1126872&view=rev
Log:
HBASE-3195 Binary row keys in hbck and other miscellaneous binary key display issues
Modified:
hbase/trunk/CHANGES.txt
hbase/trunk/conf/hbase-env.sh
hbase/trunk/src/main/java/org/apache/hadoop/hbase/executor/RegionTransitionData.java
hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java
hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java
hbase/trunk/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKUtil.java
Modified: hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hbase/trunk/CHANGES.txt?rev=1126872&r1=1126871&r2=1126872&view=diff
==============================================================================
--- hbase/trunk/CHANGES.txt (original)
+++ hbase/trunk/CHANGES.txt Tue May 24 05:19:20 2011
@@ -283,6 +283,8 @@ Release 0.90.4 - Unreleased
HBASE-3905 HBaseAdmin.createTableAsync() should check for invalid split
keys (Ted Yu)
HBASE-3908 TableSplit not implementing "hashCode" problem (Daniel Iancu)
+ HBASE-3915 Binary row keys in hbck and other miscellaneous binary key
+ display issues
IMPROVEMENT
HBASE-3882 hbase-config.sh needs to be updated so it can auto-detects the
Modified: hbase/trunk/conf/hbase-env.sh
URL: http://svn.apache.org/viewvc/hbase/trunk/conf/hbase-env.sh?rev=1126872&r1=1126871&r2=1126872&view=diff
==============================================================================
--- hbase/trunk/conf/hbase-env.sh (original)
+++ hbase/trunk/conf/hbase-env.sh Tue May 24 05:19:20 2011
@@ -36,8 +36,8 @@
# see http://wiki.apache.org/hadoop/PerformanceTuning
export HBASE_OPTS="-ea -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode"
-# Uncomment below to enable java garbage collection logging.
-# export HBASE_OPTS="$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:$HBASE_HOME/logs/gc-hbase.log"
+# Uncomment below to enable java garbage collection logging in the .out file.
+# export HBASE_OPTS="$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps"
# Uncomment and adjust to enable JMX exporting
# See jmxremote.password and jmxremote.access in $JRE_HOME/lib/management to configure remote password access.
Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/executor/RegionTransitionData.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/executor/RegionTransitionData.java?rev=1126872&r1=1126871&r2=1126872&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/executor/RegionTransitionData.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/executor/RegionTransitionData.java Tue May 24 05:19:20 2011
@@ -243,7 +243,7 @@ public class RegionTransitionData implem
@Override
public String toString() {
- return "region=" + Bytes.toString(regionName) + ", origin=" + this.origin +
+ return "region=" + Bytes.toStringBinary(regionName) + ", origin=" + this.origin +
", state=" + eventType;
}
-}
\ No newline at end of file
+}
Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java?rev=1126872&r1=1126871&r2=1126872&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java Tue May 24 05:19:20 2011
@@ -1943,7 +1943,11 @@ public class AssignmentManager extends Z
case OPEN:
LOG.error("Region has been OPEN for too long, " +
"we don't know where region was opened so can't do anything");
+ synchronized(regionState) {
+ regionState.updateTimestampToNow();
+ }
break;
+
case PENDING_CLOSE:
LOG.info("Region has been PENDING_CLOSE for too " +
"long, running forced unassign again on region=" +
Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java?rev=1126872&r1=1126871&r2=1126872&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java Tue May 24 05:19:20 2011
@@ -51,7 +51,6 @@ import org.apache.hadoop.hbase.UnknownRe
import org.apache.hadoop.hbase.catalog.CatalogTracker;
import org.apache.hadoop.hbase.catalog.MetaEditor;
import org.apache.hadoop.hbase.catalog.MetaReader;
-import org.apache.hadoop.hbase.client.HConnectionManager;
import org.apache.hadoop.hbase.client.MetaScanner;
import org.apache.hadoop.hbase.client.MetaScanner.MetaScannerVisitor;
import org.apache.hadoop.hbase.client.Result;
@@ -915,13 +914,17 @@ implements HMasterInterface, HMasterRegi
region.getLog().closeAndDelete();
}
- // 5. Trigger immediate assignment of the regions in round-robin fashion
- List<ServerName> servers = serverManager.getOnlineServersList();
- try {
- this.assignmentManager.assignUserRegions(Arrays.asList(newRegions), servers);
- } catch (InterruptedException ie) {
- LOG.error("Caught " + ie + " during round-robin assignment");
- throw new IOException(ie);
+ if (newRegions.length == 1) {
+ this.assignmentManager.assign(newRegions[0], true);
+ } else {
+ // 5. Trigger immediate assignment of the regions in round-robin fashion
+ List<ServerName> servers = serverManager.getOnlineServersList();
+ try {
+ this.assignmentManager.assignUserRegions(Arrays.asList(newRegions), servers);
+ } catch (InterruptedException ie) {
+ LOG.error("Caught " + ie + " during round-robin assignment");
+ throw new IOException(ie);
+ }
}
// 6. If sync, wait for assignment of regions
Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java?rev=1126872&r1=1126871&r2=1126872&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java Tue May 24 05:19:20 2011
@@ -422,12 +422,8 @@ public class HBaseFsck {
if (inMeta && inHdfs && isDeployed && deploymentMatchesMeta && shouldBeDeployed) {
return;
} else if (inMeta && !isDeployed && splitParent) {
- // Offline regions shouldn't cause complaints
- LOG.debug("Region " + descriptiveName + " offline, split, parent, ignoring.");
return;
} else if (inMeta && !shouldBeDeployed && !isDeployed) {
- // offline regions shouldn't cause complaints
- LOG.debug("Region " + descriptiveName + " offline, ignoring.");
return;
} else if (recentlyModified) {
LOG.warn("Region " + descriptiveName + " was recently modified -- skipping");
@@ -444,7 +440,7 @@ public class HBaseFsck {
} else if (!inMeta && inHdfs && !isDeployed) {
errors.reportError(ERROR_CODE.NOT_IN_META_OR_DEPLOYED, "Region "
+ descriptiveName + " on HDFS, but not listed in META " +
- "or deployed on any region server.");
+ "or deployed on any region server");
} else if (!inMeta && inHdfs && isDeployed) {
errors.reportError(ERROR_CODE.NOT_IN_META, "Region " + descriptiveName
+ " not in META, but deployed on " + Joiner.on(", ").join(hbi.deployedOn));
@@ -584,6 +580,7 @@ public class HBaseFsck {
public boolean checkRegionChain() {
Collections.sort(regions);
HbckInfo last = null;
+ int originalErrorsCount = errors.getErrorList().size();
for (HbckInfo r : regions) {
if (last == null) {
@@ -607,8 +604,8 @@ public class HBaseFsck {
errors.reportError(ERROR_CODE.REGION_CYCLE,
String.format("The endkey for this region comes before the "
+ "startkey, startkey=%s, endkey=%s",
- Bytes.toString(r.metaEntry.getStartKey()),
- Bytes.toString(r.metaEntry.getEndKey())),
+ Bytes.toStringBinary(r.metaEntry.getStartKey()),
+ Bytes.toStringBinary(r.metaEntry.getEndKey())),
this, r, last);
}
}
@@ -617,7 +614,7 @@ public class HBaseFsck {
if (Bytes.equals(r.metaEntry.getStartKey(), last.metaEntry.getStartKey())) {
errors.reportError(ERROR_CODE.DUPE_STARTKEYS,
"Two regions have the same startkey: "
- + Bytes.toString(r.metaEntry.getStartKey()),
+ + Bytes.toStringBinary(r.metaEntry.getStartKey()),
this, r, last);
} else {
// Check that the startkey is the same as the previous end key
@@ -641,7 +638,7 @@ public class HBaseFsck {
last = r;
}
- return errors.getErrorList().size() == 0;
+ return errors.getErrorList().size() == originalErrorsCount;
}
}
Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKUtil.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKUtil.java?rev=1126872&r1=1126871&r2=1126872&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKUtil.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKUtil.java Tue May 24 05:19:20 2011
@@ -1021,6 +1021,6 @@ public class ZKUtil {
(data == null? "null": data.length == 0? "empty": (
znode.startsWith(zkw.assignmentZNode) ?
RegionTransitionData.fromBytes(data).toString()
- : StringUtils.abbreviate(Bytes.toString(data), 32)))));
+ : StringUtils.abbreviate(Bytes.toStringBinary(data), 32)))));
}
}