Updated Branches:
  refs/heads/trunk 8046f5f57 -> 5542c8a4f

GIRAPH-833: Upgrade to ZooKeeper 3.4.5 (aching)


Project: http://git-wip-us.apache.org/repos/asf/giraph/repo
Commit: http://git-wip-us.apache.org/repos/asf/giraph/commit/5542c8a4
Tree: http://git-wip-us.apache.org/repos/asf/giraph/tree/5542c8a4
Diff: http://git-wip-us.apache.org/repos/asf/giraph/diff/5542c8a4

Branch: refs/heads/trunk
Commit: 5542c8a4f819cc6cb79ffd14fbcaa4722e25fa55
Parents: 8046f5f
Author: Avery Ching <[email protected]>
Authored: Tue Jan 28 07:53:52 2014 -0800
Committer: Avery Ching <[email protected]>
Committed: Sat Feb 8 10:31:11 2014 -0800

----------------------------------------------------------------------
 CHANGELOG                                       |   2 +
 giraph-core/pom.xml                             |  13 +-
 .../giraph/utils/InternalVertexRunner.java      | 123 ++++++++-----------
 .../apache/giraph/io/TestJsonBase64Format.java  |   1 -
 giraph-examples/pom.xml                         |  12 +-
 giraph-gora/pom.xml                             |   8 ++
 giraph-hbase/pom.xml                            |  13 +-
 .../hbase/TestHBaseRootMarkerVertextFormat.java | 120 +++++++-----------
 giraph-hcatalog/pom.xml                         |   7 ++
 giraph-hive/pom.xml                             |   7 ++
 giraph-rexster/giraph-rexster-io/pom.xml        |   7 ++
 pom.xml                                         |  13 +-
 12 files changed, 162 insertions(+), 164 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/giraph/blob/5542c8a4/CHANGELOG
----------------------------------------------------------------------
diff --git a/CHANGELOG b/CHANGELOG
index 3f2c047..cda5e26 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,8 @@
 Giraph Change Log
 
 Release 1.1.0 - unreleased
+  GIRAPH-833: Upgrade to ZooKeeper 3.4.5 (aching)
+
   GIRAPH-836: Delay hive preparation until after the arguments are parsed 
(this allows 
   functionality such as creating a table) (aching)
 

http://git-wip-us.apache.org/repos/asf/giraph/blob/5542c8a4/giraph-core/pom.xml
----------------------------------------------------------------------
diff --git a/giraph-core/pom.xml b/giraph-core/pom.xml
index 2a1e838..38bae9b 100644
--- a/giraph-core/pom.xml
+++ b/giraph-core/pom.xml
@@ -507,6 +507,13 @@ under the License.
       <artifactId>jython</artifactId>
     </dependency>
 
+    <!-- runtime dependency -->
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <scope>runtime</scope>
+    </dependency>
+
     <!-- test dependencies. sorted lexicographically. -->
     <dependency>
       <groupId>junit</groupId>
@@ -518,10 +525,6 @@ under the License.
       <artifactId>mockito-core</artifactId>
       <scope>test</scope>
     </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-      <scope>test</scope>
-    </dependency>
+
  </dependencies>
 </project>

http://git-wip-us.apache.org/repos/asf/giraph/blob/5542c8a4/giraph-core/src/main/java/org/apache/giraph/utils/InternalVertexRunner.java
----------------------------------------------------------------------
diff --git 
a/giraph-core/src/main/java/org/apache/giraph/utils/InternalVertexRunner.java 
b/giraph-core/src/main/java/org/apache/giraph/utils/InternalVertexRunner.java
index 3f49395..09dd46d 100644
--- 
a/giraph-core/src/main/java/org/apache/giraph/utils/InternalVertexRunner.java
+++ 
b/giraph-core/src/main/java/org/apache/giraph/utils/InternalVertexRunner.java
@@ -18,6 +18,9 @@
 
 package org.apache.giraph.utils;
 
+import com.google.common.base.Charsets;
+import com.google.common.collect.ImmutableList;
+import com.google.common.io.Files;
 import org.apache.giraph.conf.GiraphConfiguration;
 import org.apache.giraph.conf.GiraphConstants;
 import org.apache.giraph.io.formats.GiraphFileInputFormat;
@@ -29,21 +32,16 @@ import org.apache.hadoop.io.WritableComparable;
 import org.apache.hadoop.mapreduce.Job;
 import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
 import org.apache.log4j.Logger;
-import org.apache.zookeeper.server.NIOServerCnxn;
 import org.apache.zookeeper.server.ServerConfig;
 import org.apache.zookeeper.server.ZooKeeperServerMain;
 import org.apache.zookeeper.server.quorum.QuorumPeerConfig;
 
-import com.google.common.base.Charsets;
-import com.google.common.collect.ImmutableList;
-import com.google.common.io.Files;
-
 import java.io.File;
 import java.io.IOException;
-import java.lang.reflect.Field;
 import java.util.Properties;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
 
 /**
  * A base class for running internal tests on a vertex
@@ -84,6 +82,48 @@ public class InternalVertexRunner {
   }
 
   /**
+   * Run the standalone ZooKeeper process and the job.
+   *
+   * @param quorumPeerConfig Quorum peer configuration
+   * @param giraphJob Giraph job to run
+   * @return True if successful, false otherwise
+   */
+  private static boolean runZooKeeperAndJob(QuorumPeerConfig quorumPeerConfig,
+                                            GiraphJob giraphJob) {
+    final InternalZooKeeper zookeeper = new InternalZooKeeper();
+    final ServerConfig zkConfig = new ServerConfig();
+    zkConfig.readFrom(quorumPeerConfig);
+
+    ExecutorService executorService = Executors.newSingleThreadExecutor();
+    executorService.execute(new Runnable() {
+      @Override
+      public void run() {
+        try {
+          zookeeper.runFromConfig(zkConfig);
+        } catch (IOException e) {
+          throw new RuntimeException(e);
+        }
+      }
+    });
+    try {
+      return giraphJob.run(true);
+    } catch (InterruptedException |
+        ClassNotFoundException | IOException e) {
+      LOG.error("runZooKeeperAndJob: Got exception on running", e);
+    } finally {
+      zookeeper.end();
+      executorService.shutdown();
+      try {
+        executorService.awaitTermination(1, TimeUnit.MINUTES);
+      } catch (InterruptedException e) {
+        LOG.error("runZooKeeperAndJob: Interrupted on waiting", e);
+      }
+    }
+
+    return false;
+  }
+
+  /**
    * Attempts to run the vertex internally in the current JVM, reading from and
    * writing to a temporary folder on local disk. Will start its own zookeeper
    * instance.
@@ -158,29 +198,9 @@ public class InternalVertexRunner {
       QuorumPeerConfig qpConfig = new QuorumPeerConfig();
       qpConfig.parseProperties(zkProperties);
 
-      // Create and run the zookeeper instance
-      final InternalZooKeeper zookeeper = new InternalZooKeeper();
-      final ServerConfig zkConfig = new ServerConfig();
-      zkConfig.readFrom(qpConfig);
-
-      ExecutorService executorService = Executors.newSingleThreadExecutor();
-      executorService.execute(new Runnable() {
-        @Override
-        public void run() {
-          try {
-            zookeeper.runFromConfig(zkConfig);
-          } catch (IOException e) {
-            throw new RuntimeException(e);
-          }
-        }
-      });
-      try {
-        if (!job.run(true)) {
-          return null;
-        }
-      } finally {
-        executorService.shutdown();
-        zookeeper.end();
+      boolean success = runZooKeeperAndJob(qpConfig, job);
+      if (!success) {
+        return null;
       }
 
       File outFile = new File(outputDir, "part-m-00000");
@@ -244,28 +264,7 @@ public class InternalVertexRunner {
       QuorumPeerConfig qpConfig = new QuorumPeerConfig();
       qpConfig.parseProperties(zkProperties);
 
-      // Create and run the zookeeper instance
-      final InternalZooKeeper zookeeper = new InternalZooKeeper();
-      final ServerConfig zkConfig = new ServerConfig();
-      zkConfig.readFrom(qpConfig);
-
-      ExecutorService executorService = Executors.newSingleThreadExecutor();
-      executorService.execute(new Runnable() {
-        @Override
-        public void run() {
-          try {
-            zookeeper.runFromConfig(zkConfig);
-          } catch (IOException e) {
-            throw new RuntimeException(e);
-          }
-        }
-      });
-      try {
-        job.run(true);
-      } finally {
-        executorService.shutdown();
-        zookeeper.end();
-      }
+      runZooKeeperAndJob(qpConfig, job);
     } finally {
       FileUtils.delete(tmpDir);
     }
@@ -324,27 +323,7 @@ public class InternalVertexRunner {
      * Shutdown the ZooKeeper instance.
      */
     void end() {
-      if (getCnxnFactory() != null) {
-        shutdown();
-      }
-    }
-
-    /**
-     * Get the ZooKeeper connection factory using reflection.
-     * @return {@link NIOServerCnxn.Factory} from ZooKeeper
-     */
-    private NIOServerCnxn.Factory getCnxnFactory() {
-      NIOServerCnxn.Factory factory = null;
-      try {
-        Field field = 
ZooKeeperServerMain.class.getDeclaredField("cnxnFactory");
-        field.setAccessible(true);
-        factory = (NIOServerCnxn.Factory) field.get(this);
-        // CHECKSTYLE: stop IllegalCatch
-      } catch (Exception e) {
-        // CHECKSTYLE: resume IllegalCatch
-        LOG.error("Couldn't get cnxn factory", e);
-      }
-      return factory;
+      shutdown();
     }
   }
 }

http://git-wip-us.apache.org/repos/asf/giraph/blob/5542c8a4/giraph-core/src/test/java/org/apache/giraph/io/TestJsonBase64Format.java
----------------------------------------------------------------------
diff --git 
a/giraph-core/src/test/java/org/apache/giraph/io/TestJsonBase64Format.java 
b/giraph-core/src/test/java/org/apache/giraph/io/TestJsonBase64Format.java
index 3b0dc63..697b105 100644
--- a/giraph-core/src/test/java/org/apache/giraph/io/TestJsonBase64Format.java
+++ b/giraph-core/src/test/java/org/apache/giraph/io/TestJsonBase64Format.java
@@ -71,7 +71,6 @@ public class TestJsonBase64Format extends BspCase {
         PseudoRandomInputFormatConstants.EDGES_PER_VERTEX, 2);
     job.getConfiguration().setInt(
         WeightedPageRankComputation.SUPERSTEP_COUNT, 2);
-
     assertTrue(job.run(true));
 
     Path outputPath2 = getTempPath(getCallingMethodName() + "2");

http://git-wip-us.apache.org/repos/asf/giraph/blob/5542c8a4/giraph-examples/pom.xml
----------------------------------------------------------------------
diff --git a/giraph-examples/pom.xml b/giraph-examples/pom.xml
index 50b1c47..73f2db2 100644
--- a/giraph-examples/pom.xml
+++ b/giraph-examples/pom.xml
@@ -409,6 +409,13 @@ under the License.
       <type>test-jar</type>
     </dependency>
 
+    <!-- runtime dependency -->
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <scope>runtime</scope>
+    </dependency>
+
     <!-- test dependencies. sorted lexicographically. -->
     <dependency>
       <groupId>junit</groupId>
@@ -420,10 +427,5 @@ under the License.
       <artifactId>mockito-core</artifactId>
       <scope>test</scope>
     </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-      <scope>test</scope>
-    </dependency>
  </dependencies>
 </project>

http://git-wip-us.apache.org/repos/asf/giraph/blob/5542c8a4/giraph-gora/pom.xml
----------------------------------------------------------------------
diff --git a/giraph-gora/pom.xml b/giraph-gora/pom.xml
index f192eb6..38e3ab7 100644
--- a/giraph-gora/pom.xml
+++ b/giraph-gora/pom.xml
@@ -104,6 +104,14 @@ under the License.
       <groupId>org.apache.zookeeper</groupId>
       <artifactId>zookeeper</artifactId>
     </dependency>
+
+    <!-- runtime dependency -->
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <scope>runtime</scope>
+    </dependency>
+
     <!-- test dependencies. sorted lexicographically. -->
     <dependency>
       <groupId>junit</groupId>

http://git-wip-us.apache.org/repos/asf/giraph/blob/5542c8a4/giraph-hbase/pom.xml
----------------------------------------------------------------------
diff --git a/giraph-hbase/pom.xml b/giraph-hbase/pom.xml
index a663c09..7e1960c 100644
--- a/giraph-hbase/pom.xml
+++ b/giraph-hbase/pom.xml
@@ -35,12 +35,10 @@ under the License.
 
   <properties>
     <top.dir>${project.basedir}/..</top.dir>
-    <!-- TODO: guava r06 is too old for checking -->
+    <!-- TODO: Skip until duplicate classes are fixed in the future -->
     <project.enforcer.skip>true</project.enforcer.skip>
     <!-- TODO: Fix HBase duplicate classes in the future -->
     
<giraph.maven.duplicate.finder.skip>true</giraph.maven.duplicate.finder.skip>
-    <!-- TODO: Fix HBase dependencies in the future -->
-    
<giraph.maven.dependency.plugin.skip>true</giraph.maven.dependency.plugin.skip>
   </properties>
 
   <build>
@@ -145,8 +143,6 @@ under the License.
     <dependency>
       <groupId>com.google.guava</groupId>
       <artifactId>guava</artifactId>
-      <!-- TODO: guava r06 is too old for checking -->
-      <version>r06</version>
     </dependency>
     <dependency>
       <groupId>log4j</groupId>
@@ -161,6 +157,13 @@ under the License.
       <artifactId>hbase</artifactId>
     </dependency>
 
+    <!-- runtime dependency -->
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <scope>runtime</scope>
+    </dependency>
+
     <!-- test dependencies. sorted lexicographically. -->
     <dependency>
       <groupId>junit</groupId>

http://git-wip-us.apache.org/repos/asf/giraph/blob/5542c8a4/giraph-hbase/src/test/java/org/apache/giraph/io/hbase/TestHBaseRootMarkerVertextFormat.java
----------------------------------------------------------------------
diff --git 
a/giraph-hbase/src/test/java/org/apache/giraph/io/hbase/TestHBaseRootMarkerVertextFormat.java
 
b/giraph-hbase/src/test/java/org/apache/giraph/io/hbase/TestHBaseRootMarkerVertextFormat.java
index 02d2754..a39b51c 100644
--- 
a/giraph-hbase/src/test/java/org/apache/giraph/io/hbase/TestHBaseRootMarkerVertextFormat.java
+++ 
b/giraph-hbase/src/test/java/org/apache/giraph/io/hbase/TestHBaseRootMarkerVertextFormat.java
@@ -20,17 +20,16 @@ package org.apache.giraph.io.hbase;
 
 
 import org.apache.giraph.BspCase;
-import org.apache.giraph.graph.BasicComputation;
 import org.apache.giraph.conf.GiraphConfiguration;
+import org.apache.giraph.graph.BasicComputation;
+import org.apache.giraph.graph.Vertex;
 import org.apache.giraph.io.hbase.edgemarker.TableEdgeInputFormat;
 import org.apache.giraph.io.hbase.edgemarker.TableEdgeOutputFormat;
 import org.apache.giraph.job.GiraphJob;
-import org.apache.giraph.graph.Vertex;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FSDataOutputStream;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.hbase.HBaseConfiguration;
 import org.apache.hadoop.hbase.HBaseTestingUtility;
 import org.apache.hadoop.hbase.HColumnDescriptor;
 import org.apache.hadoop.hbase.HConstants;
@@ -44,18 +43,17 @@ import org.apache.hadoop.hbase.mapreduce.ImportTsv;
 import org.apache.hadoop.hbase.mapreduce.TableInputFormat;
 import org.apache.hadoop.hbase.mapreduce.TableOutputFormat;
 import org.apache.hadoop.hbase.util.Bytes;
-import org.apache.hadoop.hbase.zookeeper.MiniZooKeeperCluster;
 import org.apache.hadoop.io.Text;
 import org.apache.hadoop.mapreduce.Job;
 import org.apache.hadoop.util.GenericOptionsParser;
 import org.apache.log4j.Logger;
-import org.junit.Assert;
 import org.junit.Test;
 
 import java.io.File;
 import java.io.IOException;
 import java.util.UUID;
 
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
@@ -64,13 +62,6 @@ import static org.junit.Assert.fail;
  * Test case for HBase reading/writing vertices from an HBase instance.
  */
 public class TestHBaseRootMarkerVertextFormat extends BspCase {
-
-  /**
-   * Create the test case
-   *
-   * @param testName name of the test case
-   */
-
   private final Logger log = 
Logger.getLogger(TestHBaseRootMarkerVertextFormat.class);
 
   private final String TABLE_NAME = "simple_graph";
@@ -78,34 +69,14 @@ public class TestHBaseRootMarkerVertextFormat extends 
BspCase {
   private final String QUALIFER = "children";
   private final String OUTPUT_FIELD = "parent";
 
-  private HBaseTestingUtility testUtil;
-  private Path hbaseRootdir;
-
+  private final HBaseTestingUtility testUtil = new HBaseTestingUtility();
 
   public TestHBaseRootMarkerVertextFormat() {
     super(TestHBaseRootMarkerVertextFormat.class.getName());
-
-    // Let's set up the hbase root directory.
-    Configuration conf = HBaseConfiguration.create();
-    try {
-      FileSystem fs = FileSystem.get(conf);
-      String randomStr = UUID.randomUUID().toString();
-      String tmpdir = System.getProperty("java.io.tmpdir") + "/" +
-          randomStr + "/";
-      hbaseRootdir = fs.makeQualified(new Path(tmpdir));
-      conf.set(HConstants.HBASE_DIR, hbaseRootdir.toString());
-      fs.mkdirs(hbaseRootdir);
-    } catch(IOException ioe) {
-      fail("Could not create hbase root directory.");
-    }
-
-    // Start the test utility.
-    testUtil = new HBaseTestingUtility(conf);
   }
 
   @Test
   public void testHBaseInputOutput() throws Exception {
-
     if (System.getProperty("prop.mapred.job.tracker") != null) {
       if(log.isInfoEnabled())
         log.info("testHBaseInputOutput: Ignore this test if not local mode.");
@@ -119,33 +90,45 @@ public class TestHBaseRootMarkerVertextFormat extends 
BspCase {
           "Make sure you built the main Giraph artifact?.");
     }
 
-    String INPUT_FILE = hbaseRootdir.toString() + "/graph.csv";
-    //First let's load some data using ImportTsv into our mock table.
-    String[] args = new String[] {
-        "-Dimporttsv.columns=HBASE_ROW_KEY,cf:"+QUALIFER,
-        "-Dimporttsv.separator=" + "\u002c",
-        TABLE_NAME,
-        INPUT_FILE
-    };
-
-    MiniHBaseCluster cluster = null;
-    MiniZooKeeperCluster zkCluster = null;
     FileSystem fs = null;
-
+    Path hbaseRootdir = null;
     try {
-      // using the restart method allows us to avoid having the hbase
-      // root directory overwritten by /home/$username
-      zkCluster = testUtil.startMiniZKCluster();
-      testUtil.restartHBaseCluster(2);
-      cluster = testUtil.getMiniHBaseCluster();
+      MiniHBaseCluster cluster = testUtil.startMiniCluster(1);
+      cluster.waitForActiveAndReadyMaster();
+      testUtil.startMiniMapReduceCluster();
+
+      // Let's set up the hbase root directory.
+      Configuration conf = testUtil.getConfiguration();
+      try {
+        fs = testUtil.getTestFileSystem();
+        String randomStr = UUID.randomUUID().toString();
+        String tmpdir = System.getProperty("java.io.tmpdir") + "/" +
+            randomStr + "/";
+        hbaseRootdir = fs.makeQualified(new Path(tmpdir));
+
+        conf.set(HConstants.HBASE_DIR, hbaseRootdir.toString());
+        fs.mkdirs(hbaseRootdir);
+      } catch(IOException ioe) {
+        fail("Could not create hbase root directory.");
+      }
+
+      //First let's load some data using ImportTsv into our mock table.
+      String INPUT_FILE = hbaseRootdir.toString() + "/graph.csv";
+      String[] args = new String[] {
+          "-Dimporttsv.columns=HBASE_ROW_KEY,cf:"+QUALIFER,
+          "-Dimporttsv.separator=" + "\u002c",
+          TABLE_NAME,
+          INPUT_FILE
+      };
 
       GenericOptionsParser opts =
-          new GenericOptionsParser(cluster.getConfiguration(), args);
-      Configuration conf = opts.getConfiguration();
+          new GenericOptionsParser(testUtil.getConfiguration(), args);
       args = opts.getRemainingArgs();
 
       fs = FileSystem.get(conf);
-      FSDataOutputStream op = fs.create(new Path(INPUT_FILE), true);
+      fs.setConf(conf);
+      Path inputPath = fs.makeQualified(new Path(hbaseRootdir, "graph.csv"));
+      FSDataOutputStream op = fs.create(inputPath, true);
       String line1 = "0001,0002\n";
       String line2 = "0002,0004\n";
       String line3 = "0003,0005\n";
@@ -170,20 +153,19 @@ public class TestHBaseRootMarkerVertextFormat extends 
BspCase {
       }
       hbaseAdmin.createTable(desc);
 
+      // Do the import
       Job job = ImportTsv.createSubmittableJob(conf, args);
       job.waitForCompletion(false);
       assertTrue(job.isSuccessful());
       if(log.isInfoEnabled())
         log.info("ImportTsv successful. Running HBase Giraph job.");
 
-      //now operate over HBase using Vertex I/O formats
+      // Now operate over HBase using Vertex I/O formats
       conf.set(TableInputFormat.INPUT_TABLE, TABLE_NAME);
       conf.set(TableOutputFormat.OUTPUT_TABLE, TABLE_NAME);
 
       GiraphJob giraphJob = new GiraphJob(conf, 
BspCase.getCallingMethodName());
       GiraphConfiguration giraphConf = giraphJob.getConfiguration();
-      giraphConf.setZooKeeperConfiguration(
-          cluster.getMaster().getZooKeeper().getQuorum());
       setupConfiguration(giraphJob);
       giraphConf.setComputationClass(EdgeNotification.class);
       giraphConf.setVertexInputFormatClass(TableEdgeInputFormat.class);
@@ -193,32 +175,24 @@ public class TestHBaseRootMarkerVertextFormat extends 
BspCase {
       if(log.isInfoEnabled())
         log.info("Giraph job successful. Checking output qualifier.");
 
-      //Do a get on row 0002, it should have a parent of 0001
-      //if the outputFormat worked.
+      // Do a get on row 0002, it should have a parent of 0001
+      // if the outputFormat worked.
       HTable table = new HTable(conf, TABLE_NAME);
       Result result = table.get(new Get("0002".getBytes()));
       byte[] parentBytes = result.getValue(FAMILY.getBytes(),
           OUTPUT_FIELD.getBytes());
       assertNotNull(parentBytes);
       assertTrue(parentBytes.length > 0);
-      Assert.assertEquals("0001", Bytes.toString(parentBytes));
-    }   finally {
-      if (cluster != null) {
-        cluster.shutdown();
-      }
-      if (zkCluster != null) {
-        zkCluster.shutdown();
-      }
-      // clean test files
-      if (fs != null) {
-        fs.delete(hbaseRootdir);
-      }
+      assertEquals("0001", Bytes.toString(parentBytes));
+    } finally {
+      testUtil.shutdownMiniMapReduceCluster();
+      testUtil.shutdownMiniCluster();
     }
   }
 
-  /*
-  Test compute method that sends each edge a notification of its parents.
-  The test set only has a 1-1 parent-to-child ratio for this unit test.
+  /**
+   * Test compute method that sends each edge a notification of its parents.
+   * The test set only has a 1-1 parent-to-child ratio for this unit test.
    */
   public static class EdgeNotification
       extends BasicComputation<Text, Text, Text, Text> {

http://git-wip-us.apache.org/repos/asf/giraph/blob/5542c8a4/giraph-hcatalog/pom.xml
----------------------------------------------------------------------
diff --git a/giraph-hcatalog/pom.xml b/giraph-hcatalog/pom.xml
index cba9bc9..0e7cbb4 100644
--- a/giraph-hcatalog/pom.xml
+++ b/giraph-hcatalog/pom.xml
@@ -176,6 +176,13 @@ under the License.
       <scope>runtime</scope>
     </dependency>
 
+    <!-- runtime dependency -->
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <scope>runtime</scope>
+    </dependency>
+
     <!-- test dependencies. sorted lexicographically. -->
     <dependency>
       <groupId>junit</groupId>

http://git-wip-us.apache.org/repos/asf/giraph/blob/5542c8a4/giraph-hive/pom.xml
----------------------------------------------------------------------
diff --git a/giraph-hive/pom.xml b/giraph-hive/pom.xml
index df122d3..c20c308 100644
--- a/giraph-hive/pom.xml
+++ b/giraph-hive/pom.xml
@@ -113,6 +113,13 @@ under the License.
       <artifactId>log4j</artifactId>
     </dependency>
 
+    <!-- runtime dependency -->
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <scope>runtime</scope>
+    </dependency>
+
     <!-- test dependencies. sorted lexicographically. -->
     <dependency>
       <groupId>org.apache.giraph</groupId>

http://git-wip-us.apache.org/repos/asf/giraph/blob/5542c8a4/giraph-rexster/giraph-rexster-io/pom.xml
----------------------------------------------------------------------
diff --git a/giraph-rexster/giraph-rexster-io/pom.xml 
b/giraph-rexster/giraph-rexster-io/pom.xml
index 3553552..6bbb236 100644
--- a/giraph-rexster/giraph-rexster-io/pom.xml
+++ b/giraph-rexster/giraph-rexster-io/pom.xml
@@ -127,6 +127,13 @@ under the License.
       <artifactId>json</artifactId>
     </dependency>
 
+    <!-- runtime dependency -->
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <scope>runtime</scope>
+    </dependency>
+
     <!-- test dependencies. sorted lexicographically. -->
     <dependency>
       <groupId>com.tinkerpop.blueprints</groupId>

http://git-wip-us.apache.org/repos/asf/giraph/blob/5542c8a4/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index f0fb763..8278811 100644
--- a/pom.xml
+++ b/pom.xml
@@ -278,7 +278,7 @@ under the License.
     <dep.fastutil.version>6.5.4</dep.fastutil.version>
     <dep.google.findbugs.version>2.0.2</dep.google.findbugs.version>
     <dep.guava.version>14.0.1</dep.guava.version>
-    <dep.hbase.version>0.90.5</dep.hbase.version>
+    <dep.hbase.version>0.94.16</dep.hbase.version>
     <dep.hcatalog.version>0.5.0-incubating</dep.hcatalog.version>
     <dep.hive.version>0.11.0</dep.hive.version>
     <dep.hiveio.version>0.21</dep.hiveio.version>
@@ -294,7 +294,7 @@ under the License.
     <dep.typetools.version>0.2.1</dep.typetools.version>
     <dep.yammer-metrics.version>2.2.0</dep.yammer-metrics.version>
     <dep.yourkit-api.version>9.5.6</dep.yourkit-api.version>
-    <dep.zookeeper.version>3.3.3</dep.zookeeper.version>
+    <dep.zookeeper.version>3.4.5</dep.zookeeper.version>
 
     <forHadoop>for-hadoop-${hadoop.version}</forHadoop>
   </properties>
@@ -953,7 +953,6 @@ under the License.
       <id>hadoop_facebook</id>
       <modules>
         <module>giraph-accumulo</module>
-        <module>giraph-hbase</module>
         <module>giraph-hcatalog</module>
         <module>giraph-hive</module>
       </modules>
@@ -1345,6 +1344,10 @@ under the License.
             <artifactId>commons-logging</artifactId>
           </exclusion>
           <exclusion>
+            <groupId>ch.qos.logback</groupId>
+            <artifactId>logback-classic</artifactId>
+          </exclusion>
+          <exclusion>
             <groupId>io.netty</groupId>
             <artifactId>netty</artifactId>
           </exclusion>
@@ -1671,6 +1674,10 @@ under the License.
             <artifactId>jmxtools</artifactId>
           </exclusion>
           <exclusion>
+            <groupId>org.jboss.netty</groupId>
+            <artifactId>netty</artifactId>
+          </exclusion>
+          <exclusion>
             <groupId>javax.jms</groupId>
             <artifactId>jms</artifactId>
           </exclusion>

Reply via email to