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


Reply via email to