Author: ecn
Date: Mon Oct 15 13:39:17 2012
New Revision: 1398286
URL: http://svn.apache.org/viewvc?rev=1398286&view=rev
Log:
ACCUMULO-812 add a utility to find unhosted tablets
Added:
accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/util/FindOfflineTablets.java
(with props)
Added:
accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/util/FindOfflineTablets.java
URL:
http://svn.apache.org/viewvc/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/util/FindOfflineTablets.java?rev=1398286&view=auto
==============================================================================
---
accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/util/FindOfflineTablets.java
(added)
+++
accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/util/FindOfflineTablets.java
Mon Oct 15 13:39:17 2012
@@ -0,0 +1,51 @@
+package org.apache.accumulo.server.util;
+
+import java.util.Set;
+
+import org.apache.accumulo.core.client.Instance;
+import org.apache.accumulo.core.client.ZooKeeperInstance;
+import org.apache.accumulo.core.data.Range;
+import org.apache.accumulo.core.master.state.tables.TableState;
+import org.apache.accumulo.server.master.LiveTServerSet;
+import org.apache.accumulo.server.master.LiveTServerSet.Listener;
+import org.apache.accumulo.server.master.state.MetaDataTableScanner;
+import org.apache.accumulo.server.master.state.TServerInstance;
+import org.apache.accumulo.server.master.state.TabletLocationState;
+import org.apache.accumulo.server.master.state.TabletState;
+import org.apache.accumulo.server.master.state.tables.TableManager;
+import org.apache.accumulo.server.security.SecurityConstants;
+import org.apache.log4j.Logger;
+
+public class FindOfflineTablets {
+ private static final Logger log = Logger.getLogger(FindOfflineTablets.class);
+
+ /**
+ * @param args
+ */
+ public static void main(String[] args) throws Exception {
+ if (args.length != 4) {
+ System.err.println("Usage: accumulo.server.util.FindOfflineTablets
instance zookeepers");
+ System.exit(1);
+ }
+ String instance = args[0];
+ String keepers = args[1];
+ Instance zooInst = new ZooKeeperInstance(instance, keepers);
+ MetaDataTableScanner scanner = new MetaDataTableScanner(zooInst,
SecurityConstants.getSystemCredentials(), new Range());
+ LiveTServerSet tservers = new LiveTServerSet(zooInst, new Listener() {
+ @Override
+ public void update(LiveTServerSet current, Set<TServerInstance> deleted,
Set<TServerInstance> added) {
+ if (!deleted.isEmpty())
+ log.warn("Tablet servers deleted while scanning: " + deleted);
+ if (!added.isEmpty())
+ log.warn("Tablet servers added while scanning: " + added);
+ }
+ });
+ while (scanner.hasNext()) {
+ TabletLocationState locationState = scanner.next();
+ TabletState state = locationState.getState(tservers.getCurrentServers());
+ if (state != TabletState.HOSTED &&
TableManager.getInstance().getTableState(locationState.extent.getTableId().toString())
!= TableState.OFFLINE)
+ System.out.println(locationState + " is " + state);
+ }
+ }
+
+}
Propchange:
accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/util/FindOfflineTablets.java
------------------------------------------------------------------------------
svn:eol-style = native