Return-Path: X-Original-To: apmail-incubator-accumulo-commits-archive@minotaur.apache.org Delivered-To: apmail-incubator-accumulo-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 41CD690C0 for ; Thu, 2 Feb 2012 23:36:20 +0000 (UTC) Received: (qmail 93102 invoked by uid 500); 2 Feb 2012 23:36:20 -0000 Delivered-To: apmail-incubator-accumulo-commits-archive@incubator.apache.org Received: (qmail 93064 invoked by uid 500); 2 Feb 2012 23:36:19 -0000 Mailing-List: contact accumulo-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: accumulo-dev@incubator.apache.org Delivered-To: mailing list accumulo-commits@incubator.apache.org Received: (qmail 93057 invoked by uid 99); 2 Feb 2012 23:36:19 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 02 Feb 2012 23:36:19 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 02 Feb 2012 23:36:17 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 53C882388860; Thu, 2 Feb 2012 23:35:57 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1239933 - in /incubator/accumulo/trunk: ./ docs/examples/ src/core/ src/core/src/main/java/org/apache/accumulo/core/data/ src/examples/simple/src/main/java/org/apache/accumulo/examples/simple/dirlist/ src/examples/simple/src/main/java/org/... Date: Thu, 02 Feb 2012 23:35:56 -0000 To: accumulo-commits@incubator.apache.org From: kturner@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20120202233557.53C882388860@eris.apache.org> Author: kturner Date: Thu Feb 2 23:35:55 2012 New Revision: 1239933 URL: http://svn.apache.org/viewvc?rev=1239933&view=rev Log: ACCUMULO-145 ACCUMULO-274 ACCUMULO-315 ACCUMULO-365 ACCUMULO-366 merge changes from 1.4 Added: incubator/accumulo/trunk/src/examples/simple/src/main/java/org/apache/accumulo/examples/simple/filedata/CharacterHistogram.java - copied unchanged from r1239924, incubator/accumulo/branches/1.4/src/examples/simple/src/main/java/org/apache/accumulo/examples/simple/filedata/CharacterHistogram.java incubator/accumulo/trunk/src/server/src/main/java/org/apache/accumulo/server/test/functional/MergeTest.java - copied unchanged from r1239924, incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/test/functional/MergeTest.java Modified: incubator/accumulo/trunk/ (props changed) incubator/accumulo/trunk/docs/examples/README.dirlist incubator/accumulo/trunk/docs/examples/README.filedata incubator/accumulo/trunk/src/core/ (props changed) incubator/accumulo/trunk/src/core/src/main/java/org/apache/accumulo/core/data/KeyExtent.java incubator/accumulo/trunk/src/examples/simple/src/main/java/org/apache/accumulo/examples/simple/dirlist/Ingest.java incubator/accumulo/trunk/src/examples/simple/src/main/java/org/apache/accumulo/examples/simple/filedata/ChunkCombiner.java incubator/accumulo/trunk/src/examples/simple/src/main/java/org/apache/accumulo/examples/simple/filedata/ChunkInputFormat.java incubator/accumulo/trunk/src/examples/simple/src/main/java/org/apache/accumulo/examples/simple/filedata/ChunkInputStream.java incubator/accumulo/trunk/src/examples/simple/src/main/java/org/apache/accumulo/examples/simple/filedata/FileDataIngest.java incubator/accumulo/trunk/src/examples/simple/src/main/java/org/apache/accumulo/examples/simple/filedata/FileDataQuery.java incubator/accumulo/trunk/src/examples/simple/src/test/java/org/apache/accumulo/examples/simple/filedata/ChunkInputStreamTest.java incubator/accumulo/trunk/src/server/ (props changed) incubator/accumulo/trunk/src/server/src/main/java/org/apache/accumulo/server/master/state/MergeStats.java incubator/accumulo/trunk/src/server/src/main/java/org/apache/accumulo/server/master/tableOps/DeleteTable.java incubator/accumulo/trunk/src/server/src/main/java/org/apache/accumulo/server/test/functional/ConstraintTest.java incubator/accumulo/trunk/src/server/src/main/java/org/apache/accumulo/server/test/randomwalk/bulk/BulkPlusOne.java incubator/accumulo/trunk/test/system/auto/simple/bulkSplitOptimization.py incubator/accumulo/trunk/test/system/auto/simple/combiner.py incubator/accumulo/trunk/test/system/auto/simple/examples.py incubator/accumulo/trunk/test/system/auto/simple/mapreduce.py incubator/accumulo/trunk/test/system/auto/simple/merge.py incubator/accumulo/trunk/test/system/auto/simple/shell.py incubator/accumulo/trunk/test/system/bench/lib/RowHashBenchmark.py incubator/accumulo/trunk/test/system/bench/lib/TeraSortBenchmark.py Propchange: incubator/accumulo/trunk/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Feb 2 23:35:55 2012 @@ -1,3 +1,3 @@ /incubator/accumulo/branches/1.3:1190280,1190413,1190420,1190427,1190500,1195622,1195625,1195629,1195635,1196044,1196054,1196057,1196071-1196072,1196106,1197066,1198935,1199383,1203683,1204625,1205547,1205880,1206169,1208031,1209124,1209526,1209532,1209539,1209541,1209587,1209657,1210518,1210571,1210596,1210598,1213424,1214320,1225006,1227215,1227231,1227611,1228195,1230180,1230736,1231043,1236873 /incubator/accumulo/branches/1.3.5rc:1209938 -/incubator/accumulo/branches/1.4:1201902-1239409 +/incubator/accumulo/branches/1.4:1201902-1239924 Modified: incubator/accumulo/trunk/docs/examples/README.dirlist URL: http://svn.apache.org/viewvc/incubator/accumulo/trunk/docs/examples/README.dirlist?rev=1239933&r1=1239932&r2=1239933&view=diff ============================================================================== --- incubator/accumulo/trunk/docs/examples/README.dirlist (original) +++ incubator/accumulo/trunk/docs/examples/README.dirlist Thu Feb 2 23:35:55 2012 @@ -24,7 +24,7 @@ This example stores filesystem informati This example shows how to use Accumulo to store a file system history. It has the following classes: - * Ingest.java - Recursively lists the files and directories under a given path, ingests their names and file info (not the file data!) into an Accumulo table, and indexes the file names in a separate table. + * Ingest.java - Recursively lists the files and directories under a given path, ingests their names and file info into one Accumulo table, indexes the file names in a separate table, and the file data into a third table. * QueryUtil.java - Provides utility methods for getting the info for a file, listing the contents of a directory, and performing single wild card searches on file or directory names. * Viewer.java - Provides a GUI for browsing the file system information stored in Accumulo. * FileCount.java - Computes recursive counts over file system information and stores them back into the same Accumulo table. Modified: incubator/accumulo/trunk/docs/examples/README.filedata URL: http://svn.apache.org/viewvc/incubator/accumulo/trunk/docs/examples/README.filedata?rev=1239933&r1=1239932&r2=1239933&view=diff ============================================================================== --- incubator/accumulo/trunk/docs/examples/README.filedata (original) +++ incubator/accumulo/trunk/docs/examples/README.filedata Thu Feb 2 23:35:55 2012 @@ -19,12 +19,29 @@ Notice: Licensed to the Apache Softwa This example archives file data into an Accumulo table. Files with duplicate data are only stored once. The example has the following classes: + * CharacterHistogram - A MapReduce that computes a histogram of byte frequency for each file and stores the histogram alongside the file data. An example use of the ChunkInputFormat. * ChunkCombiner - An Iterator that dedupes file data and sets their visibilities to a combined visibility based on current references to the file data. * ChunkInputFormat - An Accumulo InputFormat that provides keys containing file info (List>) and values with an InputStream over the file (ChunkInputStream). * ChunkInputStream - An input stream over file data stored in Accumulo. * FileDataIngest - Takes a list of files and archives them into Accumulo keyed on the SHA1 hashes of the files. - * FileDataQuery - Retrieves file data based on the SHA1 hash of the file. + * FileDataQuery - Retrieves file data based on the SHA1 hash of the file. (Used by the filedata.Viewer.) * KeyUtil - A utility for creating and parsing null-byte separated strings into/from Text objects. * VisibilityCombiner - A utility for merging visibilities into the form (VIS1)|(VIS2)|... This example is coupled with the dirlist example. See README.dirlist for instructions. + +If you haven't already run the README.dirlist example, ingest a file with FileDataIngest. + + $ ./bin/accumulo org.apache.accumulo.examples.simple.filedata.FileDataIngest instance zookeepers username password dataTable exampleVis 1000 $ACCUMULO_HOME/README + +Open the accumulo shell and look at the data. The row is the MD5 hash of the file, which you can verify by running a command such as 'md5sum' on the file. + + > scan -t dataTable + +Run the CharacterHistogram MapReduce to add some information about the file. + + $ bin/tool.sh lib/examples-simple*[^c].jar org.apache.accumulo.examples.simple.filedata.CharacterHistogram instance zookeepers username password dataTable exampleVis exampleVis + +Scan again to see the histogram stored in the 'info' column family. + + > scan -t dataTable Propchange: incubator/accumulo/trunk/src/core/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Feb 2 23:35:55 2012 @@ -1,3 +1,3 @@ /incubator/accumulo/branches/1.3.5rc/src/core:1209938 /incubator/accumulo/branches/1.3/src/core:1190280,1190413,1190420,1190427,1190500,1195622,1195625,1195629,1195635,1196044,1196054,1196057,1196071-1196072,1196106,1197066,1198935,1199383,1203683,1204625,1205547,1205880,1206169,1208031,1209124,1209526,1209532,1209539,1209541,1209587,1209657,1210518,1210571,1210596,1210598,1213424,1214320,1225006,1227215 -/incubator/accumulo/branches/1.4/src/core:1201902-1239409 +/incubator/accumulo/branches/1.4/src/core:1201902-1239924 Modified: incubator/accumulo/trunk/src/core/src/main/java/org/apache/accumulo/core/data/KeyExtent.java URL: http://svn.apache.org/viewvc/incubator/accumulo/trunk/src/core/src/main/java/org/apache/accumulo/core/data/KeyExtent.java?rev=1239933&r1=1239932&r2=1239933&view=diff ============================================================================== --- incubator/accumulo/trunk/src/core/src/main/java/org/apache/accumulo/core/data/KeyExtent.java (original) +++ incubator/accumulo/trunk/src/core/src/main/java/org/apache/accumulo/core/data/KeyExtent.java Thu Feb 2 23:35:55 2012 @@ -754,4 +754,24 @@ public class KeyExtent implements Writab return new TKeyExtent(TextUtil.getByteBuffer(textTableId), textEndRow == null ? null : TextUtil.getByteBuffer(textEndRow), textPrevEndRow == null ? null : TextUtil.getByteBuffer(textPrevEndRow)); } + + /** + * @param prevExtent + */ + public boolean isPreviousExtent(KeyExtent prevExtent) { + if (prevExtent == null) + return getPrevEndRow() == null; + + if (!prevExtent.getTableId().equals(getTableId())) + throw new IllegalArgumentException("Cannot compare accross tables " + prevExtent + " " + this); + + if (prevExtent.getEndRow() == null) + return false; + + if (getPrevEndRow() == null) + return false; + + return prevExtent.getEndRow().equals(getPrevEndRow()); + + } } Modified: incubator/accumulo/trunk/src/examples/simple/src/main/java/org/apache/accumulo/examples/simple/dirlist/Ingest.java URL: http://svn.apache.org/viewvc/incubator/accumulo/trunk/src/examples/simple/src/main/java/org/apache/accumulo/examples/simple/dirlist/Ingest.java?rev=1239933&r1=1239932&r2=1239933&view=diff ============================================================================== --- incubator/accumulo/trunk/src/examples/simple/src/main/java/org/apache/accumulo/examples/simple/dirlist/Ingest.java (original) +++ incubator/accumulo/trunk/src/examples/simple/src/main/java/org/apache/accumulo/examples/simple/dirlist/Ingest.java Thu Feb 2 23:35:55 2012 @@ -21,12 +21,14 @@ import java.io.IOException; import org.apache.accumulo.core.client.BatchWriter; import org.apache.accumulo.core.client.Connector; +import org.apache.accumulo.core.client.IteratorSetting; import org.apache.accumulo.core.client.ZooKeeperInstance; import org.apache.accumulo.core.data.Mutation; import org.apache.accumulo.core.data.Value; import org.apache.accumulo.core.iterators.LongCombiner; import org.apache.accumulo.core.iterators.TypedValueCombiner.Encoder; import org.apache.accumulo.core.security.ColumnVisibility; +import org.apache.accumulo.examples.simple.filedata.ChunkCombiner; import org.apache.accumulo.examples.simple.filedata.FileDataIngest; import org.apache.hadoop.io.Text; @@ -131,8 +133,10 @@ public class Ingest { conn.tableOperations().create(nameTable); if (!conn.tableOperations().exists(indexTable)) conn.tableOperations().create(indexTable); - if (!conn.tableOperations().exists(dataTable)) + if (!conn.tableOperations().exists(dataTable)) { conn.tableOperations().create(dataTable); + conn.tableOperations().attachIterator(dataTable, new IteratorSetting(1, ChunkCombiner.class)); + } BatchWriter dirBW = conn.createBatchWriter(nameTable, 50000000, 300000l, 4); BatchWriter indexBW = conn.createBatchWriter(indexTable, 50000000, 300000l, 4); Modified: incubator/accumulo/trunk/src/examples/simple/src/main/java/org/apache/accumulo/examples/simple/filedata/ChunkCombiner.java URL: http://svn.apache.org/viewvc/incubator/accumulo/trunk/src/examples/simple/src/main/java/org/apache/accumulo/examples/simple/filedata/ChunkCombiner.java?rev=1239933&r1=1239932&r2=1239933&view=diff ============================================================================== --- incubator/accumulo/trunk/src/examples/simple/src/main/java/org/apache/accumulo/examples/simple/filedata/ChunkCombiner.java (original) +++ incubator/accumulo/trunk/src/examples/simple/src/main/java/org/apache/accumulo/examples/simple/filedata/ChunkCombiner.java Thu Feb 2 23:35:55 2012 @@ -30,7 +30,7 @@ import org.apache.accumulo.core.iterator import org.apache.accumulo.core.iterators.SortedKeyValueIterator; import org.apache.hadoop.io.Text; -/* +/** * This iterator dedupes chunks and sets their visibilities to the combined * visibility of the refs columns. For example, it would combine * Modified: incubator/accumulo/trunk/src/examples/simple/src/main/java/org/apache/accumulo/examples/simple/filedata/ChunkInputFormat.java URL: http://svn.apache.org/viewvc/incubator/accumulo/trunk/src/examples/simple/src/main/java/org/apache/accumulo/examples/simple/filedata/ChunkInputFormat.java?rev=1239933&r1=1239932&r2=1239933&view=diff ============================================================================== --- incubator/accumulo/trunk/src/examples/simple/src/main/java/org/apache/accumulo/examples/simple/filedata/ChunkInputFormat.java (original) +++ incubator/accumulo/trunk/src/examples/simple/src/main/java/org/apache/accumulo/examples/simple/filedata/ChunkInputFormat.java Thu Feb 2 23:35:55 2012 @@ -31,6 +31,9 @@ import org.apache.hadoop.mapreduce.Input import org.apache.hadoop.mapreduce.RecordReader; import org.apache.hadoop.mapreduce.TaskAttemptContext; +/** + * An InputFormat that turns the file data ingested with FileDataIngest into an InputStream. Mappers used with this InputFormat must close the InputStream. + */ public class ChunkInputFormat extends InputFormatBase>,InputStream> { @Override public RecordReader>,InputStream> createRecordReader(InputSplit split, TaskAttemptContext context) throws IOException, Modified: incubator/accumulo/trunk/src/examples/simple/src/main/java/org/apache/accumulo/examples/simple/filedata/ChunkInputStream.java URL: http://svn.apache.org/viewvc/incubator/accumulo/trunk/src/examples/simple/src/main/java/org/apache/accumulo/examples/simple/filedata/ChunkInputStream.java?rev=1239933&r1=1239932&r2=1239933&view=diff ============================================================================== --- incubator/accumulo/trunk/src/examples/simple/src/main/java/org/apache/accumulo/examples/simple/filedata/ChunkInputStream.java (original) +++ incubator/accumulo/trunk/src/examples/simple/src/main/java/org/apache/accumulo/examples/simple/filedata/ChunkInputStream.java Thu Feb 2 23:35:55 2012 @@ -47,13 +47,13 @@ public class ChunkInputStream extends In source = null; } - public ChunkInputStream(PeekingIterator> in) { + public ChunkInputStream(PeekingIterator> in) throws IOException { setSource(in); } - public void setSource(PeekingIterator> in) { + public void setSource(PeekingIterator> in) throws IOException { if (source != null) - throw new RuntimeException("setting new source without closing old one"); + throw new IOException("setting new source without closing old one"); this.source = in; currentVis = new TreeSet(); count = pos = 0; @@ -81,6 +81,12 @@ public class ChunkInputStream extends In currentChunk = FileDataIngest.bytesToInt(currentKey.getColumnQualifier().getBytes(), 4); currentChunkSize = FileDataIngest.bytesToInt(currentKey.getColumnQualifier().getBytes(), 0); gotEndMarker = false; + if (buf.length == 0) + gotEndMarker = true; + if (currentChunk != 0) { + source = null; + throw new IOException("starting chunk number isn't 0 for " + currentKey.getRow()); + } } private int fill() throws IOException { @@ -163,7 +169,7 @@ public class ChunkInputStream extends In public Set getVisibilities() { if (source != null) - throw new RuntimeException("don't get visibilities before chunks have been completely read"); + throw new IllegalStateException("don't get visibilities before chunks have been completely read"); return currentVis; } Modified: incubator/accumulo/trunk/src/examples/simple/src/main/java/org/apache/accumulo/examples/simple/filedata/FileDataIngest.java URL: http://svn.apache.org/viewvc/incubator/accumulo/trunk/src/examples/simple/src/main/java/org/apache/accumulo/examples/simple/filedata/FileDataIngest.java?rev=1239933&r1=1239932&r2=1239933&view=diff ============================================================================== --- incubator/accumulo/trunk/src/examples/simple/src/main/java/org/apache/accumulo/examples/simple/filedata/FileDataIngest.java (original) +++ incubator/accumulo/trunk/src/examples/simple/src/main/java/org/apache/accumulo/examples/simple/filedata/FileDataIngest.java Thu Feb 2 23:35:55 2012 @@ -24,6 +24,7 @@ import java.security.NoSuchAlgorithmExce import org.apache.accumulo.core.client.BatchWriter; import org.apache.accumulo.core.client.Connector; +import org.apache.accumulo.core.client.IteratorSetting; import org.apache.accumulo.core.client.MutationsRejectedException; import org.apache.accumulo.core.client.ZooKeeperInstance; import org.apache.accumulo.core.data.ArrayByteSequence; @@ -165,8 +166,10 @@ public class FileDataIngest { int chunkSize = Integer.parseInt(args[6]); Connector conn = new ZooKeeperInstance(instance, zooKeepers).getConnector(user, pass.getBytes()); - if (!conn.tableOperations().exists(dataTable)) + if (!conn.tableOperations().exists(dataTable)) { conn.tableOperations().create(dataTable); + conn.tableOperations().attachIterator(dataTable, new IteratorSetting(1, ChunkCombiner.class)); + } BatchWriter bw = conn.createBatchWriter(dataTable, 50000000, 300000l, 4); FileDataIngest fdi = new FileDataIngest(chunkSize, colvis); for (int i = 7; i < args.length; i++) { Modified: incubator/accumulo/trunk/src/examples/simple/src/main/java/org/apache/accumulo/examples/simple/filedata/FileDataQuery.java URL: http://svn.apache.org/viewvc/incubator/accumulo/trunk/src/examples/simple/src/main/java/org/apache/accumulo/examples/simple/filedata/FileDataQuery.java?rev=1239933&r1=1239932&r2=1239933&view=diff ============================================================================== --- incubator/accumulo/trunk/src/examples/simple/src/main/java/org/apache/accumulo/examples/simple/filedata/FileDataQuery.java (original) +++ incubator/accumulo/trunk/src/examples/simple/src/main/java/org/apache/accumulo/examples/simple/filedata/FileDataQuery.java Thu Feb 2 23:35:55 2012 @@ -52,7 +52,7 @@ public class FileDataQuery { return lastRefs; } - public ChunkInputStream getData(String hash) { + public ChunkInputStream getData(String hash) throws IOException { scanner.setRange(new Range(hash)); scanner.setBatchSize(1); lastRefs.clear(); Modified: incubator/accumulo/trunk/src/examples/simple/src/test/java/org/apache/accumulo/examples/simple/filedata/ChunkInputStreamTest.java URL: http://svn.apache.org/viewvc/incubator/accumulo/trunk/src/examples/simple/src/test/java/org/apache/accumulo/examples/simple/filedata/ChunkInputStreamTest.java?rev=1239933&r1=1239932&r2=1239933&view=diff ============================================================================== --- incubator/accumulo/trunk/src/examples/simple/src/test/java/org/apache/accumulo/examples/simple/filedata/ChunkInputStreamTest.java (original) +++ incubator/accumulo/trunk/src/examples/simple/src/test/java/org/apache/accumulo/examples/simple/filedata/ChunkInputStreamTest.java Thu Feb 2 23:35:55 2012 @@ -38,8 +38,6 @@ import org.apache.accumulo.core.data.Val import org.apache.accumulo.core.security.Authorizations; import org.apache.accumulo.core.security.ColumnVisibility; import org.apache.accumulo.core.util.PeekingIterator; -import org.apache.accumulo.examples.simple.filedata.ChunkInputStream; -import org.apache.accumulo.examples.simple.filedata.FileDataIngest; import org.apache.hadoop.io.Text; import org.apache.log4j.Logger; @@ -65,6 +63,9 @@ public class ChunkInputStreamTest extend addData(data, "c", "~chunk", 100, 0, "A&B", "asdfjkl;"); addData(data, "c", "~chunk", 100, 1, "A&B", "asdfjkl;"); addData(data, "c", "~chunk", 100, 2, "A&B", ""); + addData(data, "d", "~chunk", 100, 0, "A&B", ""); + addData(data, "e", "~chunk", 100, 0, "A&B", "asdfjkl;"); + addData(data, "e", "~chunk", 100, 1, "A&B", ""); baddata = new ArrayList>(); addData(baddata, "a", "~chunk", 100, 0, "A", "asdfjkl;"); addData(baddata, "b", "~chunk", 100, 0, "B", "asdfjkl;"); @@ -77,6 +78,8 @@ public class ChunkInputStreamTest extend addData(baddata, "e", "~chunk", 100, 0, "I", "asdfjkl;"); addData(baddata, "e", "~chunk", 100, 1, "J", ""); addData(baddata, "e", "~chunk", 100, 2, "I", "asdfjkl;"); + addData(baddata, "f", "~chunk", 100, 2, "K", "asdfjkl;"); + addData(baddata, "g", "~chunk", 100, 0, "L", ""); multidata = new ArrayList>(); addData(multidata, "a", "~chunk", 100, 0, "A&B", "asdfjkl;"); addData(multidata, "a", "~chunk", 100, 1, "A&B", ""); @@ -106,7 +109,7 @@ public class ChunkInputStreamTest extend try { cis.setSource(pi); assertNotNull(null); - } catch (RuntimeException e) { + } catch (IOException e) { assertNull(null); } cis.close(); @@ -167,6 +170,14 @@ public class ChunkInputStreamTest extend assertEquals(read = cis.read(b), -1); cis.close(); + cis.setSource(pi); + assertEquals(read = cis.read(b), 5); + assertEquals(new String(b, 0, read), "asdfj"); + assertEquals(read = cis.read(b), 3); + assertEquals(new String(b, 0, read), "kl;"); + assertEquals(read = cis.read(b), -1); + cis.close(); + assertFalse(pi.hasNext()); } @@ -199,6 +210,12 @@ public class ChunkInputStreamTest extend assertEquals(read = cis.read(b), -1); cis.close(); + cis.setSource(pi); + assertEquals(read = cis.read(b), 8); + assertEquals(new String(b, 0, read), "asdfjkl;"); + assertEquals(read = cis.read(b), -1); + cis.close(); + assertFalse(pi.hasNext()); } @@ -245,6 +262,12 @@ public class ChunkInputStreamTest extend assertEquals(read = cis.read(b), -1); cis.close(); + cis.setSource(pi); + assertEquals(read = cis.read(b), 8); + assertEquals(new String(b, 0, read), "asdfjkl;"); + assertEquals(read = cis.read(b), -1); + cis.close(); + assertFalse(pi.hasNext()); } @@ -302,6 +325,20 @@ public class ChunkInputStreamTest extend cis.close(); assertEquals(cis.getVisibilities().toString(), "[I, J]"); + try { + cis.setSource(pi); + assertNotNull(null); + } catch (IOException e) { + assertNull(null); + } + assumeExceptionOnClose(cis); + assertEquals(cis.getVisibilities().toString(), "[K]"); + + cis.setSource(pi); + assertEquals(read = cis.read(b), -1); + assertEquals(cis.getVisibilities().toString(), "[L]"); + cis.close(); + assertFalse(pi.hasNext()); pi = new PeekingIterator>(baddata.iterator()); @@ -339,6 +376,19 @@ public class ChunkInputStreamTest extend assumeExceptionOnRead(cis, b); assertEquals(cis.getVisibilities().toString(), "[I, J]"); + try { + cis.setSource(pi); + assertNotNull(null); + } catch (IOException e) { + assertNull(null); + } + assertEquals(cis.getVisibilities().toString(), "[K]"); + + cis.setSource(pi); + assertEquals(read = cis.read(b), -1); + assertEquals(cis.getVisibilities().toString(), "[L]"); + cis.close(); + assertFalse(pi.hasNext()); pi = new PeekingIterator>(baddata.iterator()); Propchange: incubator/accumulo/trunk/src/server/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Feb 2 23:35:55 2012 @@ -1,3 +1,3 @@ /incubator/accumulo/branches/1.3.5rc/src/server:1209938 /incubator/accumulo/branches/1.3/src/server:1190280,1190413,1190420,1190427,1190500,1195622,1195625,1195629,1195635,1196044,1196054,1196057,1196071-1196072,1196106,1197066,1198935,1199383,1203683,1204625,1205547,1205880,1206169,1208031,1209124,1209526,1209532,1209539,1209541,1209587,1209657,1210518,1210571,1210596,1210598,1213424,1214320,1225006,1227215,1227231,1227611 -/incubator/accumulo/branches/1.4/src/server:1201902-1239409 +/incubator/accumulo/branches/1.4/src/server:1201902-1239924 Modified: incubator/accumulo/trunk/src/server/src/main/java/org/apache/accumulo/server/master/state/MergeStats.java URL: http://svn.apache.org/viewvc/incubator/accumulo/trunk/src/server/src/main/java/org/apache/accumulo/server/master/state/MergeStats.java?rev=1239933&r1=1239932&r2=1239933&view=diff ============================================================================== --- incubator/accumulo/trunk/src/server/src/main/java/org/apache/accumulo/server/master/state/MergeStats.java (original) +++ incubator/accumulo/trunk/src/server/src/main/java/org/apache/accumulo/server/master/state/MergeStats.java Thu Feb 2 23:35:55 2012 @@ -90,7 +90,9 @@ public class MergeStats { public MergeState nextMergeState() throws Exception { MergeState state = info.getState(); - log.info("Computing next merge state for " + this.info.getRange() + " which is presently " + state); + if (state == MergeState.NONE) + return state; + log.info("Computing next merge state for " + info.getRange() + " which is presently " + state); if (state == MergeState.STARTED) { state = MergeState.SPLITTING; } @@ -167,19 +169,32 @@ public class MergeStats { } Text tableId = extent.getTableId(); Text first = KeyExtent.getMetadataEntry(tableId, start); - Range range = new Range(first, true, null, true); + Range range = new Range(first, false, null, true); scanner.setRange(range); - Text pr = null; + KeyExtent prevExtent = null; + for (Entry entry : scanner) { TabletLocationState tls = MetaDataTableScanner.createTabletLocationState(entry.getKey(), entry.getValue()); if (!tls.extent.getTableId().equals(tableId)) { break; } - verify.update(tls.extent, tls.getState(master.onlineTabletServers()), tls.chopped); - // check that the prevRow matches the previous row - if (pr != null && (tls.extent.getPrevEndRow() == null || !tls.extent.getPrevEndRow().equals(pr))) + + if (prevExtent == null) { + // this is the first tablet observed, it must be offline and its prev row must be less than the start of the merge range + if (tls.extent.getPrevEndRow() != null && tls.extent.getPrevEndRow().compareTo(start) > 0) { + return false; + } + + if (tls.getState(master.onlineTabletServers()) != TabletState.UNASSIGNED) + return false; + + } else if (!tls.extent.isPreviousExtent(prevExtent)) { return false; - pr = tls.extent.getEndRow(); + } + + prevExtent = tls.extent; + + verify.update(tls.extent, tls.getState(master.onlineTabletServers()), tls.chopped); // stop when we've seen the tablet just beyond our range if (tls.extent.getPrevEndRow() != null && extent.getEndRow() != null && tls.extent.getPrevEndRow().compareTo(extent.getEndRow()) > 0) { break; Modified: incubator/accumulo/trunk/src/server/src/main/java/org/apache/accumulo/server/master/tableOps/DeleteTable.java URL: http://svn.apache.org/viewvc/incubator/accumulo/trunk/src/server/src/main/java/org/apache/accumulo/server/master/tableOps/DeleteTable.java?rev=1239933&r1=1239932&r2=1239933&view=diff ============================================================================== --- incubator/accumulo/trunk/src/server/src/main/java/org/apache/accumulo/server/master/tableOps/DeleteTable.java (original) +++ incubator/accumulo/trunk/src/server/src/main/java/org/apache/accumulo/server/master/tableOps/DeleteTable.java Thu Feb 2 23:35:55 2012 @@ -26,6 +26,7 @@ import org.apache.accumulo.core.client.B import org.apache.accumulo.core.client.Connector; import org.apache.accumulo.core.client.Instance; import org.apache.accumulo.core.client.IteratorSetting; +import org.apache.accumulo.core.client.Scanner; import org.apache.accumulo.core.client.impl.Tables; import org.apache.accumulo.core.client.impl.thrift.TableOperation; import org.apache.accumulo.core.data.Key; @@ -89,21 +90,29 @@ class CleanUp extends MasterRepo { boolean done = true; Range tableRange = new KeyExtent(new Text(tableId), null, null).toMetadataRange(); - MetaDataTableScanner metaDataTableScanner = new MetaDataTableScanner(environment.getInstance(), SecurityConstants.getSystemCredentials(), tableRange, null); - try { - while (metaDataTableScanner.hasNext()) { - TabletLocationState locationState = metaDataTableScanner.next(); - TabletState state = locationState.getState(environment.onlineTabletServers()); - if (state.equals(TabletState.ASSIGNED) || state.equals(TabletState.HOSTED)) { - log.debug("Still waiting for table to be deleted: " + tableId + " locationState: " + locationState); - done = false; - break; - } + Scanner scanner = environment.getInstance().getConnector(SecurityConstants.getSystemCredentials()) + .createScanner(Constants.METADATA_TABLE_NAME, Constants.NO_AUTHS); + MetaDataTableScanner.configureScanner(scanner, environment); + scanner.setRange(tableRange); + + KeyExtent prevExtent = null; + for (Entry entry : scanner) { + TabletLocationState locationState = MetaDataTableScanner.createTabletLocationState(entry.getKey(), entry.getValue()); + if (!locationState.extent.isPreviousExtent(prevExtent)) { + log.debug("Still waiting for table to be deleted: " + tableId + " saw inconsistency" + prevExtent + " " + locationState.extent); + done = false; + break; + } + prevExtent = locationState.extent; + + TabletState state = locationState.getState(environment.onlineTabletServers()); + if (state.equals(TabletState.ASSIGNED) || state.equals(TabletState.HOSTED)) { + log.debug("Still waiting for table to be deleted: " + tableId + " locationState: " + locationState); + done = false; + break; } - } finally { - metaDataTableScanner.close(); } - + if (!done) return 50; Modified: incubator/accumulo/trunk/src/server/src/main/java/org/apache/accumulo/server/test/functional/ConstraintTest.java URL: http://svn.apache.org/viewvc/incubator/accumulo/trunk/src/server/src/main/java/org/apache/accumulo/server/test/functional/ConstraintTest.java?rev=1239933&r1=1239932&r2=1239933&view=diff ============================================================================== --- incubator/accumulo/trunk/src/server/src/main/java/org/apache/accumulo/server/test/functional/ConstraintTest.java (original) +++ incubator/accumulo/trunk/src/server/src/main/java/org/apache/accumulo/server/test/functional/ConstraintTest.java Thu Feb 2 23:35:55 2012 @@ -51,8 +51,8 @@ public class ConstraintTest extends Func @Override public List getTablesToCreate() { - Map config = parseConfig(Property.TABLE_CONSTRAINT_PREFIX + "1=org.apache.accumulo.examples.constraints.NumericValueConstraint", - Property.TABLE_CONSTRAINT_PREFIX + "2=org.apache.accumulo.examples.constraints.AlphaNumKeyConstraint"); + Map config = parseConfig(Property.TABLE_CONSTRAINT_PREFIX + "1=org.apache.accumulo.examples.simple.constraints.NumericValueConstraint", + Property.TABLE_CONSTRAINT_PREFIX + "2=org.apache.accumulo.examples.simple.constraints.AlphaNumKeyConstraint"); return Arrays.asList(new TableSetup("ct", config), new TableSetup("ct2", config), new TableSetup("ct3", config)); } @@ -107,7 +107,7 @@ public class ConstraintTest extends Func } for (ConstraintViolationSummary cvs : cvsl) { - if (!cvs.constrainClass.equals("org.apache.accumulo.examples.constraints.NumericValueConstraint")) { + if (!cvs.constrainClass.equals("org.apache.accumulo.examples.simple.constraints.NumericValueConstraint")) { throw new Exception("Unexpected constraint class " + cvs.constrainClass); } @@ -278,8 +278,8 @@ public class ConstraintTest extends Func HashMap expected = new HashMap(); - expected.put("org.apache.accumulo.examples.constraints.NumericValueConstraint", numericErrors); - expected.put("org.apache.accumulo.examples.constraints.AlphaNumKeyConstraint", 1); + expected.put("org.apache.accumulo.examples.simple.constraints.NumericValueConstraint", numericErrors); + expected.put("org.apache.accumulo.examples.simple.constraints.AlphaNumKeyConstraint", 1); for (ConstraintViolationSummary cvs : cvsl) { if (expected.get(cvs.constrainClass) != cvs.numberOfViolatingMutations) { Modified: incubator/accumulo/trunk/src/server/src/main/java/org/apache/accumulo/server/test/randomwalk/bulk/BulkPlusOne.java URL: http://svn.apache.org/viewvc/incubator/accumulo/trunk/src/server/src/main/java/org/apache/accumulo/server/test/randomwalk/bulk/BulkPlusOne.java?rev=1239933&r1=1239932&r2=1239933&view=diff ============================================================================== --- incubator/accumulo/trunk/src/server/src/main/java/org/apache/accumulo/server/test/randomwalk/bulk/BulkPlusOne.java (original) +++ incubator/accumulo/trunk/src/server/src/main/java/org/apache/accumulo/server/test/randomwalk/bulk/BulkPlusOne.java Thu Feb 2 23:35:55 2012 @@ -99,10 +99,10 @@ public class BulkPlusOne extends BulkTes } state.getConnector().tableOperations().importDirectory(Setup.getTableName(), dir.toString(), fail.toString(), true); fs.delete(dir, true); - fs.delete(fail, true); FileStatus[] failures = fs.listStatus(fail); if (failures != null && failures.length > 0) throw new Exception("Failures " + Arrays.asList(failures) + " found importing files from " + dir); + fs.delete(fail, true); log.debug("Finished bulk import, start rows " + printRows + " last row " + String.format(FMT, LOTS - 1) + " marker " + markerColumnQualifier); } Modified: incubator/accumulo/trunk/test/system/auto/simple/bulkSplitOptimization.py URL: http://svn.apache.org/viewvc/incubator/accumulo/trunk/test/system/auto/simple/bulkSplitOptimization.py?rev=1239933&r1=1239932&r2=1239933&view=diff ============================================================================== --- incubator/accumulo/trunk/test/system/auto/simple/bulkSplitOptimization.py (original) +++ incubator/accumulo/trunk/test/system/auto/simple/bulkSplitOptimization.py Thu Feb 2 23:35:55 2012 @@ -20,6 +20,7 @@ import unittest class BulkSplitOptimizationTest(JavaTest): "Bulk Import Split Optimization Test" + maxRuntime = 200 order = 21 testClass="org.apache.accumulo.server.test.functional.BulkSplitOptimizationTest" Modified: incubator/accumulo/trunk/test/system/auto/simple/combiner.py URL: http://svn.apache.org/viewvc/incubator/accumulo/trunk/test/system/auto/simple/combiner.py?rev=1239933&r1=1239932&r2=1239933&view=diff ============================================================================== --- incubator/accumulo/trunk/test/system/auto/simple/combiner.py (original) +++ incubator/accumulo/trunk/test/system/auto/simple/combiner.py Thu Feb 2 23:35:55 2012 @@ -21,7 +21,7 @@ import logging import unittest import time -from TestUtils import TestUtilsMixin +from TestUtils import TestUtilsMixin, ACCUMULO_HOME log = logging.getLogger('test.auto') @@ -48,6 +48,7 @@ class CombinerTest(TestUtilsMixin, unitt "setiter -t test -scan -p 10 -n mycombiner -class org.apache.accumulo.core.iterators.user.SummingCombiner\n" "\n" "cf\n" + "\n" "STRING\n" "deleteiter -t test -n vers -minc -majc -scan\n") self.assert_(code == 0) @@ -83,7 +84,7 @@ class ClassLoaderTest(TestUtilsMixin, un self.fail("Unable to find needed output in %r" % out) def runTest(self): - jarPath = os.environ['ACCUMULO_HOME']+"/lib/ext/TestCombiner.jar" + jarPath = ACCUMULO_HOME+"/lib/ext/TestCombiner.jar" # make sure the combiner is not there if os.path.exists(jarPath): os.remove(jarPath) Modified: incubator/accumulo/trunk/test/system/auto/simple/examples.py URL: http://svn.apache.org/viewvc/incubator/accumulo/trunk/test/system/auto/simple/examples.py?rev=1239933&r1=1239932&r2=1239933&view=diff ============================================================================== --- incubator/accumulo/trunk/test/system/auto/simple/examples.py (original) +++ incubator/accumulo/trunk/test/system/auto/simple/examples.py Thu Feb 2 23:35:55 2012 @@ -59,11 +59,11 @@ class Examples(TestUtilsMixin, unittest. def runTest(self): self.ashell('createtable %s\nsetauths -u %s -s A,B\nquit\n' %(table, ROOT)) - examplesJar = glob.glob(ACCUMULO_HOME+'/lib/accumulo-examples-*.jar')[0] + examplesJar = glob.glob(ACCUMULO_HOME+'/lib/examples-simple*.jar')[0] self.comment("Testing dirlist example (a little)") self.comment(" ingesting accumulo source") - self.execute(self.accumulo_sh(), 'org.apache.accumulo.examples.dirlist.Ingest', + self.execute(self.accumulo_sh(), 'org.apache.accumulo.examples.simple.dirlist.Ingest', INSTANCE_NAME, ZOOKEEPERS, ROOT, ROOT_PASSWORD, 'dirTable', 'indexTable', @@ -72,7 +72,7 @@ class Examples(TestUtilsMixin, unittest. 100000, ACCUMULO_HOME+"/src") self.comment(" searching for a file") - handle = self.runOn('localhost', [self.accumulo_sh(), 'org.apache.accumulo.examples.dirlist.QueryUtil', + handle = self.runOn('localhost', [self.accumulo_sh(), 'org.apache.accumulo.examples.simple.dirlist.QueryUtil', INSTANCE_NAME, ZOOKEEPERS, ROOT, ROOT_PASSWORD, 'indexTable', auths, 'Fate.java', '-search']) out, err = handle.communicate() Modified: incubator/accumulo/trunk/test/system/auto/simple/mapreduce.py URL: http://svn.apache.org/viewvc/incubator/accumulo/trunk/test/system/auto/simple/mapreduce.py?rev=1239933&r1=1239932&r2=1239933&view=diff ============================================================================== --- incubator/accumulo/trunk/test/system/auto/simple/mapreduce.py (original) +++ incubator/accumulo/trunk/test/system/auto/simple/mapreduce.py Thu Feb 2 23:35:55 2012 @@ -52,7 +52,7 @@ class MapReduceTest(TestUtilsMixin,unitt output_tablename = "mapredf" input_cfcq = "cf-HASHTYPE:cq-NOTHASHED" output_cfcq = "cf-HASHTYPE:cq-MD5BASE64" - example_class_to_run ="org.apache.accumulo.examples.mapreduce.RowHash" + example_class_to_run ="org.apache.accumulo.examples.simple.mapreduce.RowHash" def setUp(self): if not os.getenv("ZOOKEEPER_HOME"): @@ -66,7 +66,7 @@ class MapReduceTest(TestUtilsMixin,unitt def runTest(self): #These Environment variables are need to run this test it will fail if they are not in the environment thriftjar = globa(os.path.join('lib','libthrift*.jar')) - examples = globa(os.path.join('lib','accumulo-examples*[!javadoc|sources].jar')) + examples = globa(os.path.join('lib','examples-simple*[!javadoc|sources].jar')) core = globa(os.path.join('lib','accumulo-core*[!javadoc|sources].jar')) start = globa(os.path.join('lib','accumulo-start*[!javadoc|sources].jar')) trace = globa(os.path.join('lib','cloudtrace*[!javadoc|sources].jar')) Modified: incubator/accumulo/trunk/test/system/auto/simple/merge.py URL: http://svn.apache.org/viewvc/incubator/accumulo/trunk/test/system/auto/simple/merge.py?rev=1239933&r1=1239932&r2=1239933&view=diff ============================================================================== --- incubator/accumulo/trunk/test/system/auto/simple/merge.py (original) +++ incubator/accumulo/trunk/test/system/auto/simple/merge.py Thu Feb 2 23:35:55 2012 @@ -18,6 +18,7 @@ import logging import unittest from TestUtils import TestUtilsMixin +from JavaTest import JavaTest log = logging.getLogger('test.auto') @@ -90,9 +91,16 @@ quit secondMerge = secondMerge.strip().split('\n')[:-1] self.assert_(secondMerge == ['c','e','f','y']) +class MergeTest(JavaTest): + "Test Merge" + + order = 92 + testClass="org.apache.accumulo.server.test.functional.MergeTest" + def suite(): result = unittest.TestSuite() result.addTest(Merge()) result.addTest(MergeSize()) + result.addTest(MergeTest()) return result Modified: incubator/accumulo/trunk/test/system/auto/simple/shell.py URL: http://svn.apache.org/viewvc/incubator/accumulo/trunk/test/system/auto/simple/shell.py?rev=1239933&r1=1239932&r2=1239933&view=diff ============================================================================== --- incubator/accumulo/trunk/test/system/auto/simple/shell.py (original) +++ incubator/accumulo/trunk/test/system/auto/simple/shell.py Thu Feb 2 23:35:55 2012 @@ -59,25 +59,25 @@ class ShellTest(TestUtilsMixin,unittest. def setIterTest(self): - input = 'setiter -t setitertest -n mymax -scan -p 10 -class org.apache.accumulo.core.iterators.user.MaxCombiner\n\ncf\nSTRING\n' + input = 'setiter -t setitertest -n mymax -scan -p 10 -class org.apache.accumulo.core.iterators.user.MaxCombiner\n\ncf\n\nSTRING\n' out,err,code = self.rootShell(self.masterHost(),input) self.failUnless(out.find("TableNotFoundException") >= 0, "Was able to setiter a table that didn't exist") input = 'createtable setitertest\n' out,err,code = self.rootShell(self.masterHost(),input) self.processResult(out, err, code) - input = 'setiter -t setitertest -n mymax -scan -p 10 -class org.apache.accumulo.core.iterators.user.MaxCombiner\n\ncf1\nSTRING\n' + input = 'setiter -t setitertest -n mymax -scan -p 10 -class org.apache.accumulo.core.iterators.user.MaxCombiner\n\ncf1\n\nSTRING\n' out,err,code = self.rootShell(self.masterHost(),input) self.processResult(out, err, code) - input = 'setiter -t setitertest -n mymax -scan -p 10 -class org.apache.accumulo.core.iterators.user.MinCombiner\n\ncf2\nSTRING\n' + input = 'setiter -t setitertest -n mymax -scan -p 10 -class org.apache.accumulo.core.iterators.user.MinCombiner\n\ncf2\n\nSTRING\n' out,err,code = self.rootShell(self.masterHost(),input) self.failUnless(out.find("IllegalArgumentException") >= 0, "Was able to configure same iter name twice") - input = 'setiter -t setitertest -n mymin -scan -p 10 -class org.apache.accumulo.core.iterators.user.MinCombiner\n\ncf2\nSTRING\n' + input = 'setiter -t setitertest -n mymin -scan -p 10 -class org.apache.accumulo.core.iterators.user.MinCombiner\n\ncf2\n\nSTRING\n' out,err,code = self.rootShell(self.masterHost(),input) self.failUnless(out.find("IllegalArgumentException") >= 0, "Was able to configure same priority twice") - input = 'setiter -t setitertest -n mymin -scan -p 11 -class org.apache.accumulo.core.iterators.user.MinCombiner\n\ncf2\nSTRING\n' + input = 'setiter -t setitertest -n mymin -scan -p 11 -class org.apache.accumulo.core.iterators.user.MinCombiner\n\ncf2\n\nSTRING\n' out,err,code = self.rootShell(self.masterHost(),input) self.processResult(out, err, code) input = 'table setitertest\ninsert row1 cf1 cq 10\ninsert row1 cf1 cq 30\ninsert row1 cf1 cq 20\ninsert row1 cf2 cq 10\ninsert row1 cf2 cq 30\nscan -np\n' @@ -122,7 +122,7 @@ class ShellTest(TestUtilsMixin,unittest. "Was able to configure same priority twice") def aggTest(self): - input = 'createtable aggtest\nsetiter -t aggtest -n myagg -scan -p 10 -class org.apache.accumulo.core.iterators.user.SummingCombiner\n\ns\nSTRING\n\nquit\n' + input = 'createtable aggtest\nsetiter -t aggtest -n myagg -scan -p 10 -class org.apache.accumulo.core.iterators.user.SummingCombiner\n\ns\n\nSTRING\n\nquit\n' out,err,code = self.rootShell(self.masterHost(),input) self.processResult(out, err, code) input = 'table aggtest\ninsert row1 s c 10\ninsert row1 s c 30\nscan -np\n' Modified: incubator/accumulo/trunk/test/system/bench/lib/RowHashBenchmark.py URL: http://svn.apache.org/viewvc/incubator/accumulo/trunk/test/system/bench/lib/RowHashBenchmark.py?rev=1239933&r1=1239932&r2=1239933&view=diff ============================================================================== --- incubator/accumulo/trunk/test/system/bench/lib/RowHashBenchmark.py (original) +++ incubator/accumulo/trunk/test/system/bench/lib/RowHashBenchmark.py Thu Feb 2 23:35:55 2012 @@ -60,7 +60,7 @@ class RowHashBenchmark(Benchmark): # code, out, err = cloudshell.run('user root\nsecret\ndeletetable RowHashTest\n') # self.sleep(15) code, out, err = cloudshell.run(self.username, self.password, "createtable %s -sf %s\n" % (self.output_table, file)) - command = self.buildcommand('org.apache.accumulo.examples.mapreduce.TeraSortIngest', + command = self.buildcommand('org.apache.accumulo.examples.simple.mapreduce.TeraSortIngest', self.numrows(), self.keysizemin(), self.keysizemax(), @@ -93,7 +93,7 @@ class RowHashBenchmark(Benchmark): return self.valmax def runTest(self): - command = self.buildcommand('org.apache.accumulo.examples.mapreduce.RowHash', + command = self.buildcommand('org.apache.accumulo.examples.simple.mapreduce.RowHash', self.getInstance(), self.getZookeepers(), self.getUsername(), Modified: incubator/accumulo/trunk/test/system/bench/lib/TeraSortBenchmark.py URL: http://svn.apache.org/viewvc/incubator/accumulo/trunk/test/system/bench/lib/TeraSortBenchmark.py?rev=1239933&r1=1239932&r2=1239933&view=diff ============================================================================== --- incubator/accumulo/trunk/test/system/bench/lib/TeraSortBenchmark.py (original) +++ incubator/accumulo/trunk/test/system/bench/lib/TeraSortBenchmark.py Thu Feb 2 23:35:55 2012 @@ -72,7 +72,7 @@ class TeraSortBenchmark(Benchmark): dir = os.path.dirname(os.path.realpath(__file__)) file = os.path.join( dir, 'splits' ) code, out, err = cloudshell.run(self.username, self.password, "createtable %s -sf %s\n" % (self.tablename, file)) - command = self.buildcommand('org.apache.accumulo.examples.mapreduce.TeraSortIngest', + command = self.buildcommand('org.apache.accumulo.examples.simple.mapreduce.TeraSortIngest', self.numrows(), self.keysizemin(), self.keysizemax(),