You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by kt...@apache.org on 2012/02/03 00:35:56 UTC
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/...
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<Entry<Key,Value>>) 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<List<Entry<Key,Value>>,InputStream> {
@Override
public RecordReader<List<Entry<Key,Value>>,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<Entry<Key,Value>> in) {
+ public ChunkInputStream(PeekingIterator<Entry<Key,Value>> in) throws IOException {
setSource(in);
}
- public void setSource(PeekingIterator<Entry<Key,Value>> in) {
+ public void setSource(PeekingIterator<Entry<Key,Value>> 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<Text>();
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<Text> 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<Entry<Key,Value>>();
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<Entry<Key,Value>>();
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<Entry<Key,Value>>(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<Entry<Key,Value>>(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<Key,Value> 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<Key,Value> 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<TableSetup> getTablesToCreate() {
- Map<String,String> 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<String,String> 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<String,Integer> expected = new HashMap<String,Integer>();
- 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(),