You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by ct...@apache.org on 2015/01/23 23:26:57 UTC

[11/12] accumulo git commit: Merge branch '1.5' into 1.6

Merge branch '1.5' into 1.6

Conflicts:
	server/master/src/main/java/org/apache/accumulo/master/util/FateAdmin.java


Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/69ca8c9c
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/69ca8c9c
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/69ca8c9c

Branch: refs/heads/1.6
Commit: 69ca8c9c0b1d4b069df82e47fba5b823e18f503e
Parents: 9f2fcf4 145f83a
Author: Christopher Tubbs <ct...@apache.org>
Authored: Fri Jan 23 17:24:26 2015 -0500
Committer: Christopher Tubbs <ct...@apache.org>
Committed: Fri Jan 23 17:24:26 2015 -0500

----------------------------------------------------------------------
 .../accumulo/core/file/rfile/SplitLarge.java    |  3 +--
 .../org/apache/accumulo/server/util/ZooZap.java | 18 ++++++-------
 .../apache/accumulo/master/util/FateAdmin.java  | 28 +++++++++++++-------
 3 files changed, 28 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/69ca8c9c/core/src/main/java/org/apache/accumulo/core/file/rfile/SplitLarge.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/accumulo/blob/69ca8c9c/server/base/src/main/java/org/apache/accumulo/server/util/ZooZap.java
----------------------------------------------------------------------
diff --cc server/base/src/main/java/org/apache/accumulo/server/util/ZooZap.java
index fe1cc3c,0000000..f9bb208
mode 100644,000000..100644
--- a/server/base/src/main/java/org/apache/accumulo/server/util/ZooZap.java
+++ b/server/base/src/main/java/org/apache/accumulo/server/util/ZooZap.java
@@@ -1,110 -1,0 +1,108 @@@
 +/*
 + * Licensed to the Apache Software Foundation (ASF) under one or more
 + * contributor license agreements.  See the NOTICE file distributed with
 + * this work for additional information regarding copyright ownership.
 + * The ASF licenses this file to You under the Apache License, Version 2.0
 + * (the "License"); you may not use this file except in compliance with
 + * the License.  You may obtain a copy of the License at
 + *
 + *     http://www.apache.org/licenses/LICENSE-2.0
 + *
 + * Unless required by applicable law or agreed to in writing, software
 + * distributed under the License is distributed on an "AS IS" BASIS,
 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 + * See the License for the specific language governing permissions and
 + * limitations under the License.
 + */
 +package org.apache.accumulo.server.util;
 +
 +import java.util.List;
 +
 +import org.apache.accumulo.core.Constants;
 +import org.apache.accumulo.fate.zookeeper.IZooReaderWriter;
 +import org.apache.accumulo.fate.zookeeper.ZooUtil.NodeMissingPolicy;
 +import org.apache.accumulo.server.cli.ClientOpts;
 +import org.apache.accumulo.server.zookeeper.ZooLock;
 +import org.apache.accumulo.server.zookeeper.ZooReaderWriter;
 +
 +import com.beust.jcommander.JCommander;
 +import com.beust.jcommander.Parameter;
 +
 +public class ZooZap {
 +
-   static boolean verbose = false;
- 
-   private static void message(String msg) {
-     if (verbose)
++  private static void message(String msg, Opts opts) {
++    if (opts.verbose)
 +      System.out.println(msg);
 +  }
 +
 +  static class Opts extends ClientOpts {
 +    @Parameter(names = "-master", description = "remove master locks")
 +    boolean zapMaster = false;
 +    @Parameter(names = "-tservers", description = "remove tablet server locks")
 +    boolean zapTservers = false;
 +    @Parameter(names = "-tracers", description = "remove tracer locks")
 +    boolean zapTracers = false;
 +    @Parameter(names = "-verbose", description = "print out messages about progress")
 +    boolean verbose = false;
 +  }
 +
 +  public static void main(String[] args) {
 +    Opts opts = new Opts();
 +    opts.parseArgs(ZooZap.class.getName(), args);
 +
 +    if (!opts.zapMaster && !opts.zapTservers && !opts.zapTracers) {
 +      new JCommander(opts).usage();
 +      return;
 +    }
 +
 +    String iid = opts.getInstance().getInstanceID();
 +    IZooReaderWriter zoo = ZooReaderWriter.getInstance();
 +
 +    if (opts.zapMaster) {
 +      String masterLockPath = Constants.ZROOT + "/" + iid + Constants.ZMASTER_LOCK;
 +
-       zapDirectory(zoo, masterLockPath);
++      zapDirectory(zoo, masterLockPath, opts);
 +    }
 +
 +    if (opts.zapTservers) {
 +      String tserversPath = Constants.ZROOT + "/" + iid + Constants.ZTSERVERS;
 +      try {
 +        List<String> children = zoo.getChildren(tserversPath);
 +        for (String child : children) {
-           message("Deleting " + tserversPath + "/" + child + " from zookeeper");
++          message("Deleting " + tserversPath + "/" + child + " from zookeeper", opts);
 +
 +          if (opts.zapMaster)
 +            ZooReaderWriter.getInstance().recursiveDelete(tserversPath + "/" + child, NodeMissingPolicy.SKIP);
 +          else {
 +            String path = tserversPath + "/" + child;
 +            if (zoo.getChildren(path).size() > 0) {
 +              if (!ZooLock.deleteLock(path, "tserver")) {
-                 message("Did not delete " + tserversPath + "/" + child);
++                message("Did not delete " + tserversPath + "/" + child, opts);
 +              }
 +            }
 +          }
 +        }
 +      } catch (Exception e) {
 +        e.printStackTrace();
 +      }
 +    }
 +
 +    if (opts.zapTracers) {
 +      String path = Constants.ZROOT + "/" + iid + Constants.ZTRACERS;
-       zapDirectory(zoo, path);
++      zapDirectory(zoo, path, opts);
 +    }
 +
 +  }
 +
-   private static void zapDirectory(IZooReaderWriter zoo, String path) {
++  private static void zapDirectory(IZooReaderWriter zoo, String path, Opts opts) {
 +    try {
 +      List<String> children = zoo.getChildren(path);
 +      for (String child : children) {
-         message("Deleting " + path + "/" + child + " from zookeeper");
++        message("Deleting " + path + "/" + child + " from zookeeper", opts);
 +        zoo.recursiveDelete(path + "/" + child, NodeMissingPolicy.SKIP);
 +      }
 +    } catch (Exception e) {
 +      e.printStackTrace();
 +    }
 +  }
 +}

http://git-wip-us.apache.org/repos/asf/accumulo/blob/69ca8c9c/server/master/src/main/java/org/apache/accumulo/master/util/FateAdmin.java
----------------------------------------------------------------------
diff --cc server/master/src/main/java/org/apache/accumulo/master/util/FateAdmin.java
index 5ab5d75,0000000..953d630
mode 100644,000000..100644
--- a/server/master/src/main/java/org/apache/accumulo/master/util/FateAdmin.java
+++ b/server/master/src/main/java/org/apache/accumulo/master/util/FateAdmin.java
@@@ -1,94 -1,0 +1,104 @@@
 +/*
 + * Licensed to the Apache Software Foundation (ASF) under one or more
 + * contributor license agreements.  See the NOTICE file distributed with
 + * this work for additional information regarding copyright ownership.
 + * The ASF licenses this file to You under the Apache License, Version 2.0
 + * (the "License"); you may not use this file except in compliance with
 + * the License.  You may obtain a copy of the License at
 + *
 + *     http://www.apache.org/licenses/LICENSE-2.0
 + *
 + * Unless required by applicable law or agreed to in writing, software
 + * distributed under the License is distributed on an "AS IS" BASIS,
 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 + * See the License for the specific language governing permissions and
 + * limitations under the License.
 + */
 +package org.apache.accumulo.master.util;
 +
 +import java.util.ArrayList;
++import java.util.LinkedHashMap;
 +import java.util.List;
++import java.util.Map.Entry;
 +
 +import org.apache.accumulo.core.Constants;
 +import org.apache.accumulo.core.cli.Help;
 +import org.apache.accumulo.core.client.Instance;
 +import org.apache.accumulo.core.zookeeper.ZooUtil;
 +import org.apache.accumulo.fate.AdminUtil;
 +import org.apache.accumulo.fate.ReadOnlyStore;
 +import org.apache.accumulo.fate.ZooStore;
 +import org.apache.accumulo.fate.zookeeper.IZooReaderWriter;
 +import org.apache.accumulo.master.Master;
 +import org.apache.accumulo.server.client.HdfsZooInstance;
 +import org.apache.accumulo.server.zookeeper.ZooReaderWriter;
 +
 +import com.beust.jcommander.JCommander;
 +import com.beust.jcommander.Parameter;
 +import com.beust.jcommander.Parameters;
 +
 +/**
 + * A utility to administer FATE operations
 + */
 +public class FateAdmin {
 +
 +  static class TxOpts {
-     @Parameter(description = "<txid>", required = true)
-     List<String> args = new ArrayList<String>();
++    @Parameter(description = "<txid>...", required = true)
++    List<String> txids = new ArrayList<String>();
 +  }
 +
 +  @Parameters(commandDescription = "Stop an existing FATE by transaction id")
 +  static class FailOpts extends TxOpts {}
 +
 +  @Parameters(commandDescription = "Delete an existing FATE by transaction id")
 +  static class DeleteOpts extends TxOpts {}
 +
 +  @Parameters(commandDescription = "List the existing FATE transactions")
 +  static class PrintOpts {}
 +
 +  public static void main(String[] args) throws Exception {
 +    Help opts = new Help();
 +    JCommander jc = new JCommander(opts);
 +    jc.setProgramName(FateAdmin.class.getName());
-     jc.addCommand("fail", new FailOpts());
-     jc.addCommand("delete", new DeleteOpts());
++    LinkedHashMap<String,TxOpts> txOpts = new LinkedHashMap<String,TxOpts>(2);
++    txOpts.put("fail", new FailOpts());
++    txOpts.put("delete", new DeleteOpts());
++    for (Entry<String,TxOpts> entry : txOpts.entrySet()) {
++      jc.addCommand(entry.getKey(), entry.getValue());
++    }
 +    jc.addCommand("print", new PrintOpts());
 +    jc.parse(args);
 +    if (opts.help || jc.getParsedCommand() == null) {
 +      jc.usage();
 +      System.exit(1);
 +    }
 +
 +    System.err
 +        .printf("This tool has been deprecated%nFATE administration now available within 'accumulo shell'%n$ fate fail <txid>... | delete <txid>... | print [<txid>...]%n%n");
 +
 +    AdminUtil<Master> admin = new AdminUtil<Master>();
 +
 +    Instance instance = HdfsZooInstance.getInstance();
 +    String path = ZooUtil.getRoot(instance) + Constants.ZFATE;
 +    String masterPath = ZooUtil.getRoot(instance) + Constants.ZMASTER_LOCK;
 +    IZooReaderWriter zk = ZooReaderWriter.getInstance();
 +    ZooStore<Master> zs = new ZooStore<Master>(path, zk);
 +
 +    if (jc.getParsedCommand().equals("fail")) {
-       if (!admin.prepFail(zs, zk, masterPath, args[1])) {
-         System.exit(1);
++      for (String txid : txOpts.get(jc.getParsedCommand()).txids) {
++        if (!admin.prepFail(zs, zk, masterPath, txid)) {
++          System.exit(1);
++        }
 +      }
 +    } else if (jc.getParsedCommand().equals("delete")) {
-       if (!admin.prepDelete(zs, zk, masterPath, args[1])) {
-         System.exit(1);
++      for (String txid : txOpts.get(jc.getParsedCommand()).txids) {
++        if (!admin.prepDelete(zs, zk, masterPath, txid)) {
++          System.exit(1);
++        }
++        admin.deleteLocks(zs, zk, ZooUtil.getRoot(instance) + Constants.ZTABLE_LOCKS, txid);
 +      }
-       admin.deleteLocks(zs, zk, ZooUtil.getRoot(instance) + Constants.ZTABLE_LOCKS, args[1]);
 +    } else if (jc.getParsedCommand().equals("print")) {
 +      admin.print(new ReadOnlyStore<Master>(zs), zk, ZooUtil.getRoot(instance) + Constants.ZTABLE_LOCKS);
 +    }
 +  }
 +}