You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by ct...@apache.org on 2015/07/30 23:51:41 UTC
[07/14] accumulo git commit: ACCUMULO-3920 Convert more tests from
mock
ACCUMULO-3920 Convert more tests from mock
* Convert tests using mock to MiniAccumuloCluster
* Separate ITs from UTs, when possible
* Fix checkstyle/findbugs issues
Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/cc3c0111
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/cc3c0111
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/cc3c0111
Branch: refs/heads/master
Commit: cc3c0111ae2f96b9b48efc79500b6846f232b314
Parents: 66c62e5
Author: Christopher Tubbs <ct...@apache.org>
Authored: Fri Jul 17 17:46:13 2015 -0400
Committer: Christopher Tubbs <ct...@apache.org>
Committed: Thu Jul 30 16:33:03 2015 -0400
----------------------------------------------------------------------
.../core/client/ClientSideIteratorTest.java | 140 ------
.../mapred/AccumuloFileOutputFormatTest.java | 183 -------
.../client/mapred/AccumuloInputFormatTest.java | 179 -------
.../AccumuloMultiTableInputFormatTest.java | 145 +-----
.../client/mapred/AccumuloOutputFormatTest.java | 140 +-----
.../mapred/AccumuloRowInputFormatTest.java | 214 ---------
.../core/client/mapred/TokenFileTest.java | 179 -------
.../mapreduce/AccumuloFileOutputFormatTest.java | 171 -------
.../mapreduce/AccumuloInputFormatTest.java | 246 ----------
.../AccumuloMultiTableInputFormatTest.java | 143 +-----
.../mapreduce/AccumuloOutputFormatTest.java | 127 -----
.../mapreduce/AccumuloRowInputFormatTest.java | 204 --------
.../BadPasswordSplitsAccumuloInputFormat.java | 42 --
.../EmptySplitsAccumuloInputFormat.java | 45 --
.../core/client/mapreduce/TokenFileTest.java | 171 -------
.../user/IntersectingIteratorTest.java | 13 -
.../examples/simple/dirlist/FileCount.java | 2 +-
.../examples/simple/dirlist/CountTest.java | 106 ----
.../simple/filedata/ChunkInputFormatTest.java | 312 ------------
.../simple/filedata/ChunkInputStreamTest.java | 82 +---
.../server/util/TabletIteratorTest.java | 114 -----
.../CloseWriteAheadLogReferencesTest.java | 171 -------
.../master/MasterClientServiceHandler.java | 7 +-
.../master/ReplicationOperationsImplTest.java | 451 -----------------
.../apache/accumulo/master/TestMergeState.java | 206 --------
.../replication/FinishedWorkUpdaterTest.java | 165 -------
.../RemoveCompleteReplicationRecordsTest.java | 327 -------------
.../replication/SequentialWorkAssignerTest.java | 292 +----------
.../master/replication/StatusMakerTest.java | 253 ----------
.../replication/UnorderedWorkAssignerTest.java | 160 +------
.../master/replication/WorkMakerTest.java | 171 +------
.../shell/commands/FormatterCommandTest.java | 189 --------
.../accumulo/test/AccumuloOutputFormatIT.java | 100 ----
.../accumulo/test/ClientSideIteratorIT.java | 144 ++++++
.../org/apache/accumulo/test/ShellServerIT.java | 112 +++++
.../test/examples/simple/dirlist/CountIT.java | 101 ++++
.../simple/filedata/ChunkInputFormatIT.java | 319 ++++++++++++
.../simple/filedata/ChunkInputStreamIT.java | 174 +++++++
.../test/functional/AccumuloInputFormatIT.java | 212 --------
.../accumulo/test/functional/MergeIT.java | 78 +++
.../CloseWriteAheadLogReferencesIT.java | 184 +++++++
.../test/mapred/AccumuloFileOutputFormatIT.java | 204 ++++++++
.../test/mapred/AccumuloInputFormatIT.java | 195 ++++++++
.../mapred/AccumuloMultiTableInputFormatIT.java | 163 +++++++
.../test/mapred/AccumuloOutputFormatIT.java | 227 +++++++++
.../test/mapred/AccumuloRowInputFormatIT.java | 202 ++++++++
.../accumulo/test/mapred/TokenFileIT.java | 174 +++++++
.../mapreduce/AccumuloFileOutputFormatIT.java | 211 ++++++++
.../test/mapreduce/AccumuloInputFormatIT.java | 479 +++++++++++++++++++
.../AccumuloMultiTableInputFormatIT.java | 161 +++++++
.../test/mapreduce/AccumuloOutputFormatIT.java | 153 ++++++
.../mapreduce/AccumuloRowInputFormatIT.java | 197 ++++++++
.../accumulo/test/mapreduce/TokenFileIT.java | 167 +++++++
.../accumulo/test/master/MergeStateIT.java | 204 ++++++++
.../test/replication/FinishedWorkUpdaterIT.java | 173 +++++++
.../RemoveCompleteReplicationRecordsIT.java | 337 +++++++++++++
.../ReplicationOperationsImplIT.java | 447 +++++++++++++++++
.../replication/SequentialWorkAssignerIT.java | 368 ++++++++++++++
.../test/replication/StatusMakerIT.java | 249 ++++++++++
.../replication/UnorderedWorkAssignerIT.java | 238 +++++++++
.../accumulo/test/replication/WorkMakerIT.java | 209 ++++++++
61 files changed, 5906 insertions(+), 5626 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/cc3c0111/core/src/test/java/org/apache/accumulo/core/client/ClientSideIteratorTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/accumulo/core/client/ClientSideIteratorTest.java b/core/src/test/java/org/apache/accumulo/core/client/ClientSideIteratorTest.java
deleted file mode 100644
index e0ce90e..0000000
--- a/core/src/test/java/org/apache/accumulo/core/client/ClientSideIteratorTest.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.accumulo.core.client;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map.Entry;
-
-import org.apache.accumulo.core.client.security.tokens.PasswordToken;
-import org.apache.accumulo.core.data.Key;
-import org.apache.accumulo.core.data.Mutation;
-import org.apache.accumulo.core.data.PartialKey;
-import org.apache.accumulo.core.data.Value;
-import org.apache.accumulo.core.iterators.user.IntersectingIterator;
-import org.apache.accumulo.core.iterators.user.VersioningIterator;
-import org.apache.accumulo.core.security.Authorizations;
-import org.apache.hadoop.io.Text;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TestName;
-
-public class ClientSideIteratorTest {
- List<Key> resultSet1;
- List<Key> resultSet2;
- List<Key> resultSet3;
- {
- resultSet1 = new ArrayList<Key>();
- resultSet1.add(new Key("row1", "colf", "colq", 4l));
- resultSet1.add(new Key("row1", "colf", "colq", 3l));
- resultSet2 = new ArrayList<Key>();
- resultSet2.add(new Key("row1", "colf", "colq", 4l));
- resultSet2.add(new Key("row1", "colf", "colq", 3l));
- resultSet2.add(new Key("row1", "colf", "colq", 2l));
- resultSet2.add(new Key("row1", "colf", "colq", 1l));
- resultSet3 = new ArrayList<Key>();
- resultSet3.add(new Key("part1", "", "doc2"));
- resultSet3.add(new Key("part2", "", "DOC2"));
- }
-
- private void checkResults(final Iterable<Entry<Key,Value>> scanner, final List<Key> results, final PartialKey pk) {
- int i = 0;
- for (Entry<Key,Value> entry : scanner) {
- assertTrue(entry.getKey().equals(results.get(i++), pk));
- }
- assertEquals(i, results.size());
- }
-
- @Rule
- public TestName test = new TestName();
-
- private Connector conn;
-
- @Before
- public void setupInstance() throws Exception {
- Instance inst = new org.apache.accumulo.core.client.mock.MockInstance(test.getMethodName());
- conn = inst.getConnector("root", new PasswordToken(""));
- }
-
- @Test
- public void testIntersect() throws Exception {
- conn.tableOperations().create("intersect");
- BatchWriter bw = conn.createBatchWriter("intersect", new BatchWriterConfig());
- Mutation m = new Mutation("part1");
- m.put("bar", "doc1", "value");
- m.put("bar", "doc2", "value");
- m.put("dog", "doc3", "value");
- m.put("foo", "doc2", "value");
- m.put("foo", "doc3", "value");
- bw.addMutation(m);
- m = new Mutation("part2");
- m.put("bar", "DOC1", "value");
- m.put("bar", "DOC2", "value");
- m.put("dog", "DOC3", "value");
- m.put("foo", "DOC2", "value");
- m.put("foo", "DOC3", "value");
- bw.addMutation(m);
- bw.flush();
-
- final ClientSideIteratorScanner csis = new ClientSideIteratorScanner(conn.createScanner("intersect", new Authorizations()));
- final IteratorSetting si = new IteratorSetting(10, "intersect", IntersectingIterator.class);
- IntersectingIterator.setColumnFamilies(si, new Text[] {new Text("bar"), new Text("foo")});
- csis.addScanIterator(si);
-
- checkResults(csis, resultSet3, PartialKey.ROW_COLFAM_COLQUAL);
- }
-
- @Test
- public void testVersioning() throws Exception {
- conn.tableOperations().create("table");
- conn.tableOperations().removeProperty("table", "table.iterator.scan.vers");
- conn.tableOperations().removeProperty("table", "table.iterator.majc.vers");
- conn.tableOperations().removeProperty("table", "table.iterator.minc.vers");
- final BatchWriter bw = conn.createBatchWriter("table", new BatchWriterConfig());
- Mutation m = new Mutation("row1");
- m.put("colf", "colq", 1l, "value");
- m.put("colf", "colq", 2l, "value");
- bw.addMutation(m);
- bw.flush();
- m = new Mutation("row1");
- m.put("colf", "colq", 3l, "value");
- m.put("colf", "colq", 4l, "value");
- bw.addMutation(m);
- bw.flush();
-
- final Scanner scanner = conn.createScanner("table", new Authorizations());
-
- final ClientSideIteratorScanner csis = new ClientSideIteratorScanner(scanner);
- final IteratorSetting si = new IteratorSetting(10, "localvers", VersioningIterator.class);
- si.addOption("maxVersions", "2");
- csis.addScanIterator(si);
-
- checkResults(csis, resultSet1, PartialKey.ROW_COLFAM_COLQUAL_COLVIS_TIME);
- checkResults(scanner, resultSet2, PartialKey.ROW_COLFAM_COLQUAL_COLVIS_TIME);
-
- csis.fetchColumnFamily(new Text("colf"));
- checkResults(csis, resultSet1, PartialKey.ROW_COLFAM_COLQUAL_COLVIS_TIME);
- csis.clearColumns();
- csis.fetchColumnFamily(new Text("none"));
- assertFalse(csis.iterator().hasNext());
- }
-}
http://git-wip-us.apache.org/repos/asf/accumulo/blob/cc3c0111/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloFileOutputFormatTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloFileOutputFormatTest.java b/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloFileOutputFormatTest.java
index 9bb85f4..bcf8a24 100644
--- a/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloFileOutputFormatTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloFileOutputFormatTest.java
@@ -17,199 +17,16 @@
package org.apache.accumulo.core.client.mapred;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-import java.io.File;
-import java.io.FileFilter;
import java.io.IOException;
-import org.apache.accumulo.core.client.BatchWriter;
-import org.apache.accumulo.core.client.BatchWriterConfig;
-import org.apache.accumulo.core.client.Connector;
-import org.apache.accumulo.core.client.Instance;
-import org.apache.accumulo.core.client.mapreduce.lib.impl.ConfiguratorBase;
import org.apache.accumulo.core.client.mapreduce.lib.impl.FileOutputConfigurator;
-import org.apache.accumulo.core.client.security.tokens.PasswordToken;
import org.apache.accumulo.core.conf.AccumuloConfiguration;
import org.apache.accumulo.core.conf.Property;
-import org.apache.accumulo.core.data.Key;
-import org.apache.accumulo.core.data.Mutation;
-import org.apache.accumulo.core.data.Value;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.conf.Configured;
-import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.mapred.JobClient;
import org.apache.hadoop.mapred.JobConf;
-import org.apache.hadoop.mapred.Mapper;
-import org.apache.hadoop.mapred.OutputCollector;
-import org.apache.hadoop.mapred.Reporter;
-import org.apache.hadoop.mapred.lib.IdentityMapper;
-import org.apache.hadoop.util.Tool;
-import org.apache.hadoop.util.ToolRunner;
-import org.junit.BeforeClass;
-import org.junit.Rule;
import org.junit.Test;
-import org.junit.rules.TemporaryFolder;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
public class AccumuloFileOutputFormatTest {
- private static final Logger log = LoggerFactory.getLogger(AccumuloFileOutputFormatTest.class);
- private static final int JOB_VISIBILITY_CACHE_SIZE = 3000;
- private static final String PREFIX = AccumuloFileOutputFormatTest.class.getSimpleName();
- private static final String INSTANCE_NAME = PREFIX + "_mapred_instance";
- private static final String BAD_TABLE = PREFIX + "_mapred_bad_table";
- private static final String TEST_TABLE = PREFIX + "_mapred_test_table";
- private static final String EMPTY_TABLE = PREFIX + "_mapred_empty_table";
-
- private static AssertionError e1 = null;
- private static AssertionError e2 = null;
-
- @Rule
- public TemporaryFolder folder = new TemporaryFolder(new File(System.getProperty("user.dir") + "/target"));
-
- @BeforeClass
- public static void setup() throws Exception {
- Instance mockInstance = new org.apache.accumulo.core.client.mock.MockInstance(INSTANCE_NAME);
- Connector c = mockInstance.getConnector("root", new PasswordToken(""));
- c.tableOperations().create(EMPTY_TABLE);
- c.tableOperations().create(TEST_TABLE);
- c.tableOperations().create(BAD_TABLE);
- BatchWriter bw = c.createBatchWriter(TEST_TABLE, new BatchWriterConfig());
- Mutation m = new Mutation("Key");
- m.put("", "", "");
- bw.addMutation(m);
- bw.close();
- bw = c.createBatchWriter(BAD_TABLE, new BatchWriterConfig());
- m = new Mutation("r1");
- m.put("cf1", "cq1", "A&B");
- m.put("cf1", "cq1", "A&B");
- m.put("cf1", "cq2", "A&");
- bw.addMutation(m);
- bw.close();
- }
-
- @Test
- public void testEmptyWrite() throws Exception {
- handleWriteTests(false);
- }
-
- @Test
- public void testRealWrite() throws Exception {
- handleWriteTests(true);
- }
-
- private static class MRTester extends Configured implements Tool {
- private static class BadKeyMapper implements Mapper<Key,Value,Key,Value> {
-
- int index = 0;
-
- @Override
- public void map(Key key, Value value, OutputCollector<Key,Value> output, Reporter reporter) throws IOException {
- try {
- try {
- output.collect(key, value);
- if (index == 2)
- fail();
- } catch (Exception e) {
- log.error(e.toString(), e);
- assertEquals(2, index);
- }
- } catch (AssertionError e) {
- e1 = e;
- }
- index++;
- }
-
- @Override
- public void configure(JobConf job) {}
-
- @Override
- public void close() throws IOException {
- try {
- assertEquals(2, index);
- } catch (AssertionError e) {
- e2 = e;
- }
- }
-
- }
-
- @Override
- public int run(String[] args) throws Exception {
-
- if (args.length != 4) {
- throw new IllegalArgumentException("Usage : " + MRTester.class.getName() + " <user> <pass> <table> <outputfile>");
- }
-
- String user = args[0];
- String pass = args[1];
- String table = args[2];
-
- JobConf job = new JobConf(getConf());
- job.setJarByClass(this.getClass());
- ConfiguratorBase.setVisibilityCacheSize(job, JOB_VISIBILITY_CACHE_SIZE);
-
- job.setInputFormat(AccumuloInputFormat.class);
-
- AccumuloInputFormat.setConnectorInfo(job, user, new PasswordToken(pass));
- AccumuloInputFormat.setInputTableName(job, table);
- AccumuloInputFormat.setMockInstance(job, INSTANCE_NAME);
- AccumuloFileOutputFormat.setOutputPath(job, new Path(args[3]));
-
- job.setMapperClass(BAD_TABLE.equals(table) ? BadKeyMapper.class : IdentityMapper.class);
- job.setMapOutputKeyClass(Key.class);
- job.setMapOutputValueClass(Value.class);
- job.setOutputFormat(AccumuloFileOutputFormat.class);
-
- job.setNumReduceTasks(0);
-
- return JobClient.runJob(job).isSuccessful() ? 0 : 1;
- }
-
- public static void main(String[] args) throws Exception {
- Configuration conf = new Configuration();
- conf.set("mapreduce.cluster.local.dir", new File(System.getProperty("user.dir"), "target/mapreduce-tmp").getAbsolutePath());
- assertEquals(0, ToolRunner.run(conf, new MRTester(), args));
- }
- }
-
- public void handleWriteTests(boolean content) throws Exception {
- File f = folder.newFile("handleWriteTests");
- if (f.delete()) {
- log.debug("Deleted {}", f);
- }
- MRTester.main(new String[] {"root", "", content ? TEST_TABLE : EMPTY_TABLE, f.getAbsolutePath()});
-
- assertTrue(f.exists());
- File[] files = f.listFiles(new FileFilter() {
- @Override
- public boolean accept(File file) {
- return file.getName().startsWith("part-m-");
- }
- });
- assertNotNull(files);
- if (content) {
- assertEquals(1, files.length);
- assertTrue(files[0].exists());
- } else {
- assertEquals(0, files.length);
- }
- }
-
- @Test
- public void writeBadVisibility() throws Exception {
- File f = folder.newFile("writeBadVisibility");
- if (f.delete()) {
- log.debug("Deleted {}", f);
- }
- MRTester.main(new String[] {"root", "", BAD_TABLE, f.getAbsolutePath()});
- assertNull(e1);
- assertNull(e2);
- }
@Test
public void validateConfiguration() throws IOException, InterruptedException {
http://git-wip-us.apache.org/repos/asf/accumulo/blob/cc3c0111/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloInputFormatTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloInputFormatTest.java b/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloInputFormatTest.java
index ad9f419..cb28958 100644
--- a/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloInputFormatTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloInputFormatTest.java
@@ -17,73 +17,30 @@
package org.apache.accumulo.core.client.mapred;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
-import java.io.File;
import java.io.IOException;
-import java.util.Collection;
-import java.util.Collections;
import java.util.List;
-import org.apache.accumulo.core.client.BatchWriter;
-import org.apache.accumulo.core.client.BatchWriterConfig;
-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.security.tokens.PasswordToken;
-import org.apache.accumulo.core.data.Key;
-import org.apache.accumulo.core.data.Mutation;
-import org.apache.accumulo.core.data.Value;
import org.apache.accumulo.core.iterators.user.RegExFilter;
import org.apache.accumulo.core.iterators.user.WholeRowIterator;
-import org.apache.accumulo.core.security.Authorizations;
import org.apache.accumulo.core.util.Base64;
-import org.apache.accumulo.core.util.Pair;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.conf.Configured;
-import org.apache.hadoop.io.Text;
-import org.apache.hadoop.mapred.InputSplit;
-import org.apache.hadoop.mapred.JobClient;
import org.apache.hadoop.mapred.JobConf;
-import org.apache.hadoop.mapred.Mapper;
-import org.apache.hadoop.mapred.OutputCollector;
-import org.apache.hadoop.mapred.Reporter;
-import org.apache.hadoop.mapred.lib.NullOutputFormat;
-import org.apache.hadoop.util.Tool;
-import org.apache.hadoop.util.ToolRunner;
-import org.apache.log4j.Level;
-import org.junit.Assert;
import org.junit.Before;
-import org.junit.BeforeClass;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TestName;
public class AccumuloInputFormatTest {
- private static final String PREFIX = AccumuloInputFormatTest.class.getSimpleName();
- private static final String TEST_TABLE_1 = PREFIX + "_mapred_table_1";
-
private JobConf job;
- @BeforeClass
- public static void setupClass() {
- System.setProperty("hadoop.tmp.dir", System.getProperty("user.dir") + "/target/hadoop-tmp");
- }
-
@Rule
public TestName test = new TestName();
- private Instance inst;
-
- @Before
- public void setupInstance() throws Exception {
- inst = new org.apache.accumulo.core.client.mock.MockInstance(test.getMethodName());
- }
-
@Before
public void createJob() {
job = new JobConf();
@@ -213,140 +170,4 @@ public class AccumuloInputFormatTest {
assertTrue(regex.equals(AccumuloInputFormat.getIterators(job).get(0).getName()));
}
- private static AssertionError e1 = null;
- private static AssertionError e2 = null;
-
- private static class MRTester extends Configured implements Tool {
- private static class TestMapper implements Mapper<Key,Value,Key,Value> {
- Key key = null;
- int count = 0;
-
- @Override
- public void map(Key k, Value v, OutputCollector<Key,Value> output, Reporter reporter) throws IOException {
- try {
- if (key != null)
- assertEquals(key.getRow().toString(), new String(v.get()));
- assertEquals(k.getRow(), new Text(String.format("%09x", count + 1)));
- assertEquals(new String(v.get()), String.format("%09x", count));
- } catch (AssertionError e) {
- e1 = e;
- }
- key = new Key(k);
- count++;
- }
-
- @Override
- public void configure(JobConf job) {}
-
- @Override
- public void close() throws IOException {
- try {
- assertEquals(100, count);
- } catch (AssertionError e) {
- e2 = e;
- }
- }
-
- }
-
- @Override
- public int run(String[] args) throws Exception {
-
- if (args.length != 4) {
- throw new IllegalArgumentException("Usage : " + MRTester.class.getName() + " <user> <pass> <table> <instanceName>");
- }
-
- String user = args[0];
- String pass = args[1];
- String table = args[2];
- String instanceName = args[3];
-
- JobConf job = new JobConf(getConf());
- job.setJarByClass(this.getClass());
-
- job.setInputFormat(AccumuloInputFormat.class);
-
- AccumuloInputFormat.setConnectorInfo(job, user, new PasswordToken(pass));
- AccumuloInputFormat.setInputTableName(job, table);
- AccumuloInputFormat.setMockInstance(job, instanceName);
-
- job.setMapperClass(TestMapper.class);
- job.setMapOutputKeyClass(Key.class);
- job.setMapOutputValueClass(Value.class);
- job.setOutputFormat(NullOutputFormat.class);
-
- job.setNumReduceTasks(0);
-
- return JobClient.runJob(job).isSuccessful() ? 0 : 1;
- }
-
- public static void main(String... args) throws Exception {
- Configuration conf = new Configuration();
- conf.set("mapreduce.cluster.local.dir", new File(System.getProperty("user.dir"), "target/mapreduce-tmp").getAbsolutePath());
- assertEquals(0, ToolRunner.run(conf, new MRTester(), args));
- }
- }
-
- @Test
- public void testMap() throws Exception {
- Connector c = inst.getConnector("root", new PasswordToken(""));
- c.tableOperations().create(TEST_TABLE_1);
- BatchWriter bw = c.createBatchWriter(TEST_TABLE_1, new BatchWriterConfig());
- for (int i = 0; i < 100; i++) {
- Mutation m = new Mutation(new Text(String.format("%09x", i + 1)));
- m.put(new Text(), new Text(), new Value(String.format("%09x", i).getBytes()));
- bw.addMutation(m);
- }
- bw.close();
-
- MRTester.main("root", "", TEST_TABLE_1, inst.getInstanceName());
- assertNull(e1);
- assertNull(e2);
- }
-
- @Test
- public void testCorrectRangeInputSplits() throws Exception {
- JobConf job = new JobConf();
-
- String username = "user", table = "table";
- PasswordToken password = new PasswordToken("password");
- Authorizations auths = new Authorizations("foo");
- Collection<Pair<Text,Text>> fetchColumns = Collections.singleton(new Pair<Text,Text>(new Text("foo"), new Text("bar")));
- boolean isolated = true, localIters = true;
- Level level = Level.WARN;
-
- Connector connector = inst.getConnector(username, password);
- connector.tableOperations().create(table);
-
- AccumuloInputFormat.setConnectorInfo(job, username, password);
- AccumuloInputFormat.setInputTableName(job, table);
- AccumuloInputFormat.setScanAuthorizations(job, auths);
- AccumuloInputFormat.setMockInstance(job, inst.getInstanceName());
- AccumuloInputFormat.setScanIsolation(job, isolated);
- AccumuloInputFormat.setLocalIterators(job, localIters);
- AccumuloInputFormat.fetchColumns(job, fetchColumns);
- AccumuloInputFormat.setLogLevel(job, level);
-
- AccumuloInputFormat aif = new AccumuloInputFormat();
-
- InputSplit[] splits = aif.getSplits(job, 1);
-
- Assert.assertEquals(1, splits.length);
-
- InputSplit split = splits[0];
-
- Assert.assertEquals(RangeInputSplit.class, split.getClass());
-
- RangeInputSplit risplit = (RangeInputSplit) split;
-
- Assert.assertEquals(username, risplit.getPrincipal());
- Assert.assertEquals(table, risplit.getTableName());
- Assert.assertEquals(password, risplit.getToken());
- Assert.assertEquals(auths, risplit.getAuths());
- Assert.assertEquals(inst.getInstanceName(), risplit.getInstanceName());
- Assert.assertEquals(isolated, risplit.isIsolatedScan());
- Assert.assertEquals(localIters, risplit.usesLocalIterators());
- Assert.assertEquals(fetchColumns, risplit.getFetchedColumns());
- Assert.assertEquals(level, risplit.getLogLevel());
- }
}
http://git-wip-us.apache.org/repos/asf/accumulo/blob/cc3c0111/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloMultiTableInputFormatTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloMultiTableInputFormatTest.java b/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloMultiTableInputFormatTest.java
index f9cca65..ef19901 100644
--- a/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloMultiTableInputFormatTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloMultiTableInputFormatTest.java
@@ -17,159 +17,34 @@
package org.apache.accumulo.core.client.mapred;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import java.io.File;
import java.io.IOException;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
-import org.apache.accumulo.core.client.BatchWriter;
-import org.apache.accumulo.core.client.BatchWriterConfig;
-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.mapreduce.InputTableConfig;
-import org.apache.accumulo.core.client.security.tokens.PasswordToken;
-import org.apache.accumulo.core.data.Key;
-import org.apache.accumulo.core.data.Mutation;
import org.apache.accumulo.core.data.Range;
-import org.apache.accumulo.core.data.Value;
import org.apache.accumulo.core.util.Pair;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.io.Text;
-import org.apache.hadoop.mapred.JobClient;
import org.apache.hadoop.mapred.JobConf;
-import org.apache.hadoop.mapred.Mapper;
-import org.apache.hadoop.mapred.OutputCollector;
-import org.apache.hadoop.mapred.Reporter;
-import org.apache.hadoop.mapred.lib.NullOutputFormat;
-import org.apache.hadoop.util.Tool;
-import org.apache.hadoop.util.ToolRunner;
+import org.junit.Rule;
import org.junit.Test;
+import org.junit.rules.TestName;
public class AccumuloMultiTableInputFormatTest {
- private static final String PREFIX = AccumuloMultiTableInputFormatTest.class.getSimpleName();
- private static final String INSTANCE_NAME = PREFIX + "_mapred_instance";
- private static final String TEST_TABLE_1 = PREFIX + "_mapred_table_1";
- private static final String TEST_TABLE_2 = PREFIX + "_mapred_table_2";
-
- private static AssertionError e1 = null;
- private static AssertionError e2 = null;
-
- private static class MRTester extends Configured implements Tool {
- private static class TestMapper implements Mapper<Key,Value,Key,Value> {
- Key key = null;
- int count = 0;
-
- @Override
- public void map(Key k, Value v, OutputCollector<Key,Value> output, Reporter reporter) throws IOException {
- try {
- String tableName = ((RangeInputSplit) reporter.getInputSplit()).getTableName();
- if (key != null)
- assertEquals(key.getRow().toString(), new String(v.get()));
- assertEquals(new Text(String.format("%s_%09x", tableName, count + 1)), k.getRow());
- assertEquals(String.format("%s_%09x", tableName, count), new String(v.get()));
- } catch (AssertionError e) {
- e1 = e;
- }
- key = new Key(k);
- count++;
- }
-
- @Override
- public void configure(JobConf job) {}
-
- @Override
- public void close() throws IOException {
- try {
- assertEquals(100, count);
- } catch (AssertionError e) {
- e2 = e;
- }
- }
-
- }
-
- @Override
- public int run(String[] args) throws Exception {
-
- if (args.length != 4) {
- throw new IllegalArgumentException("Usage : " + MRTester.class.getName() + " <user> <pass> <table1> <table2>");
- }
-
- String user = args[0];
- String pass = args[1];
- String table1 = args[2];
- String table2 = args[3];
-
- JobConf job = new JobConf(getConf());
- job.setJarByClass(this.getClass());
-
- job.setInputFormat(AccumuloInputFormat.class);
-
- AccumuloMultiTableInputFormat.setConnectorInfo(job, user, new PasswordToken(pass));
- AccumuloMultiTableInputFormat.setMockInstance(job, INSTANCE_NAME);
-
- InputTableConfig tableConfig1 = new InputTableConfig();
- InputTableConfig tableConfig2 = new InputTableConfig();
-
- Map<String,InputTableConfig> configMap = new HashMap<String,InputTableConfig>();
- configMap.put(table1, tableConfig1);
- configMap.put(table2, tableConfig2);
-
- AccumuloMultiTableInputFormat.setInputTableConfigs(job, configMap);
-
- job.setMapperClass(TestMapper.class);
- job.setMapOutputKeyClass(Key.class);
- job.setMapOutputValueClass(Value.class);
- job.setOutputFormat(NullOutputFormat.class);
-
- job.setNumReduceTasks(0);
-
- return JobClient.runJob(job).isSuccessful() ? 0 : 1;
- }
-
- public static void main(String[] args) throws Exception {
- Configuration conf = new Configuration();
- conf.set("mapreduce.cluster.local.dir", new File(System.getProperty("user.dir"), "target/mapreduce-tmp").getAbsolutePath());
- assertEquals(0, ToolRunner.run(conf, new MRTester(), args));
- }
- }
-
- @Test
- public void testMap() throws Exception {
- Instance mockInstance = new org.apache.accumulo.core.client.mock.MockInstance(INSTANCE_NAME);
- Connector c = mockInstance.getConnector("root", new PasswordToken(""));
- c.tableOperations().create(TEST_TABLE_1);
- c.tableOperations().create(TEST_TABLE_2);
- BatchWriter bw = c.createBatchWriter(TEST_TABLE_1, new BatchWriterConfig());
- BatchWriter bw2 = c.createBatchWriter(TEST_TABLE_2, new BatchWriterConfig());
- for (int i = 0; i < 100; i++) {
- Mutation t1m = new Mutation(new Text(String.format("%s_%09x", TEST_TABLE_1, i + 1)));
- t1m.put(new Text(), new Text(), new Value(String.format("%s_%09x", TEST_TABLE_1, i).getBytes()));
- bw.addMutation(t1m);
- Mutation t2m = new Mutation(new Text(String.format("%s_%09x", TEST_TABLE_2, i + 1)));
- t2m.put(new Text(), new Text(), new Value(String.format("%s_%09x", TEST_TABLE_2, i).getBytes()));
- bw2.addMutation(t2m);
- }
- bw.close();
- bw2.close();
-
- MRTester.main(new String[] {"root", "", TEST_TABLE_1, TEST_TABLE_2});
- assertNull(e1);
- assertNull(e2);
- }
+ @Rule
+ public TestName testName = new TestName();
/**
* Verify {@link org.apache.accumulo.core.client.mapreduce.InputTableConfig} objects get correctly serialized in the JobContext.
*/
@Test
public void testTableQueryConfigSerialization() throws IOException {
-
+ String table1Name = testName.getMethodName() + "1";
+ String table2Name = testName.getMethodName() + "2";
JobConf job = new JobConf();
InputTableConfig table1 = new InputTableConfig().setRanges(Collections.singletonList(new Range("a", "b")))
@@ -181,11 +56,11 @@ public class AccumuloMultiTableInputFormatTest {
.setIterators(Collections.singletonList(new IteratorSetting(50, "iter1", "iterclass1")));
Map<String,InputTableConfig> configMap = new HashMap<String,InputTableConfig>();
- configMap.put(TEST_TABLE_1, table1);
- configMap.put(TEST_TABLE_2, table2);
+ configMap.put(table1Name, table1);
+ configMap.put(table2Name, table2);
AccumuloMultiTableInputFormat.setInputTableConfigs(job, configMap);
- assertEquals(table1, AccumuloMultiTableInputFormat.getInputTableConfig(job, TEST_TABLE_1));
- assertEquals(table2, AccumuloMultiTableInputFormat.getInputTableConfig(job, TEST_TABLE_2));
+ assertEquals(table1, AccumuloMultiTableInputFormat.getInputTableConfig(job, table1Name));
+ assertEquals(table2, AccumuloMultiTableInputFormat.getInputTableConfig(job, table2Name));
}
}
http://git-wip-us.apache.org/repos/asf/accumulo/blob/cc3c0111/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloOutputFormatTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloOutputFormatTest.java b/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloOutputFormatTest.java
index d1f4c4c..ab73cfe 100644
--- a/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloOutputFormatTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloOutputFormatTest.java
@@ -1,12 +1,12 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
+ * contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
+ * the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -17,127 +17,17 @@
package org.apache.accumulo.core.client.mapred;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotEquals;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import java.io.File;
import java.io.IOException;
-import java.util.Iterator;
-import java.util.Map.Entry;
import java.util.concurrent.TimeUnit;
-import org.apache.accumulo.core.client.BatchWriter;
import org.apache.accumulo.core.client.BatchWriterConfig;
-import org.apache.accumulo.core.client.Connector;
-import org.apache.accumulo.core.client.Instance;
-import org.apache.accumulo.core.client.Scanner;
-import org.apache.accumulo.core.client.security.tokens.PasswordToken;
-import org.apache.accumulo.core.data.Key;
-import org.apache.accumulo.core.data.Mutation;
-import org.apache.accumulo.core.data.Value;
-import org.apache.accumulo.core.security.Authorizations;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.fs.FileSystem;
-import org.apache.hadoop.io.Text;
-import org.apache.hadoop.mapred.JobClient;
import org.apache.hadoop.mapred.JobConf;
-import org.apache.hadoop.mapred.Mapper;
-import org.apache.hadoop.mapred.OutputCollector;
-import org.apache.hadoop.mapred.Reporter;
-import org.apache.hadoop.util.Tool;
-import org.apache.hadoop.util.ToolRunner;
import org.junit.Test;
-/**
- *
- */
public class AccumuloOutputFormatTest {
- private static AssertionError e1 = null;
- private static final String PREFIX = AccumuloOutputFormatTest.class.getSimpleName();
- private static final String INSTANCE_NAME = PREFIX + "_mapred_instance";
- private static final String TEST_TABLE_1 = PREFIX + "_mapred_table_1";
- private static final String TEST_TABLE_2 = PREFIX + "_mapred_table_2";
-
- private static class MRTester extends Configured implements Tool {
- private static class TestMapper implements Mapper<Key,Value,Text,Mutation> {
- Key key = null;
- int count = 0;
- OutputCollector<Text,Mutation> finalOutput;
-
- @Override
- public void map(Key k, Value v, OutputCollector<Text,Mutation> output, Reporter reporter) throws IOException {
- finalOutput = output;
- try {
- if (key != null)
- assertEquals(key.getRow().toString(), new String(v.get()));
- assertEquals(k.getRow(), new Text(String.format("%09x", count + 1)));
- assertEquals(new String(v.get()), String.format("%09x", count));
- } catch (AssertionError e) {
- e1 = e;
- }
- key = new Key(k);
- count++;
- }
-
- @Override
- public void configure(JobConf job) {}
-
- @Override
- public void close() throws IOException {
- Mutation m = new Mutation("total");
- m.put("", "", Integer.toString(count));
- finalOutput.collect(new Text(), m);
- }
-
- }
-
- @Override
- public int run(String[] args) throws Exception {
-
- if (args.length != 4) {
- throw new IllegalArgumentException("Usage : " + MRTester.class.getName() + " <user> <pass> <inputtable> <outputtable>");
- }
-
- String user = args[0];
- String pass = args[1];
- String table1 = args[2];
- String table2 = args[3];
-
- JobConf job = new JobConf(getConf());
- job.setJarByClass(this.getClass());
-
- job.setInputFormat(AccumuloInputFormat.class);
-
- AccumuloInputFormat.setConnectorInfo(job, user, new PasswordToken(pass));
- AccumuloInputFormat.setInputTableName(job, table1);
- AccumuloInputFormat.setMockInstance(job, INSTANCE_NAME);
-
- job.setMapperClass(TestMapper.class);
- job.setMapOutputKeyClass(Key.class);
- job.setMapOutputValueClass(Value.class);
- job.setOutputFormat(AccumuloOutputFormat.class);
- job.setOutputKeyClass(Text.class);
- job.setOutputValueClass(Mutation.class);
-
- AccumuloOutputFormat.setConnectorInfo(job, user, new PasswordToken(pass));
- AccumuloOutputFormat.setCreateTables(job, false);
- AccumuloOutputFormat.setDefaultTableName(job, table2);
- AccumuloOutputFormat.setMockInstance(job, INSTANCE_NAME);
-
- job.setNumReduceTasks(0);
-
- return JobClient.runJob(job).isSuccessful() ? 0 : 1;
- }
-
- public static void main(String[] args) throws Exception {
- Configuration conf = new Configuration();
- conf.set("mapreduce.cluster.local.dir", new File(System.getProperty("user.dir"), "target/mapreduce-tmp").getAbsolutePath());
- assertEquals(0, ToolRunner.run(conf, new MRTester(), args));
- }
- }
@Test
public void testBWSettings() throws IOException {
@@ -179,28 +69,4 @@ public class AccumuloOutputFormatTest {
myAOF.checkOutputSpecs(null, job);
}
- @Test
- public void testMR() throws Exception {
- Instance mockInstance = new org.apache.accumulo.core.client.mock.MockInstance(INSTANCE_NAME);
- Connector c = mockInstance.getConnector("root", new PasswordToken(""));
- c.tableOperations().create(TEST_TABLE_1);
- c.tableOperations().create(TEST_TABLE_2);
- BatchWriter bw = c.createBatchWriter(TEST_TABLE_1, new BatchWriterConfig());
- for (int i = 0; i < 100; i++) {
- Mutation m = new Mutation(new Text(String.format("%09x", i + 1)));
- m.put(new Text(), new Text(), new Value(String.format("%09x", i).getBytes()));
- bw.addMutation(m);
- }
- bw.close();
-
- MRTester.main(new String[] {"root", "", TEST_TABLE_1, TEST_TABLE_2});
- assertNull(e1);
-
- Scanner scanner = c.createScanner(TEST_TABLE_2, new Authorizations());
- Iterator<Entry<Key,Value>> iter = scanner.iterator();
- assertTrue(iter.hasNext());
- Entry<Key,Value> entry = iter.next();
- assertEquals(Integer.parseInt(new String(entry.getValue().get())), 100);
- assertFalse(iter.hasNext());
- }
}
http://git-wip-us.apache.org/repos/asf/accumulo/blob/cc3c0111/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloRowInputFormatTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloRowInputFormatTest.java b/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloRowInputFormatTest.java
deleted file mode 100644
index 3d59149..0000000
--- a/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloRowInputFormatTest.java
+++ /dev/null
@@ -1,214 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.accumulo.core.client.mapred;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map.Entry;
-
-import org.apache.accumulo.core.client.BatchWriter;
-import org.apache.accumulo.core.client.BatchWriterConfig;
-import org.apache.accumulo.core.client.Connector;
-import org.apache.accumulo.core.client.Instance;
-import org.apache.accumulo.core.client.MutationsRejectedException;
-import org.apache.accumulo.core.client.security.tokens.PasswordToken;
-import org.apache.accumulo.core.data.Key;
-import org.apache.accumulo.core.data.KeyValue;
-import org.apache.accumulo.core.data.Mutation;
-import org.apache.accumulo.core.data.Value;
-import org.apache.accumulo.core.security.ColumnVisibility;
-import org.apache.accumulo.core.util.PeekingIterator;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.conf.Configured;
-import org.apache.hadoop.io.Text;
-import org.apache.hadoop.mapred.JobClient;
-import org.apache.hadoop.mapred.JobConf;
-import org.apache.hadoop.mapred.Mapper;
-import org.apache.hadoop.mapred.OutputCollector;
-import org.apache.hadoop.mapred.Reporter;
-import org.apache.hadoop.mapred.lib.NullOutputFormat;
-import org.apache.hadoop.util.Tool;
-import org.apache.hadoop.util.ToolRunner;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TestName;
-
-public class AccumuloRowInputFormatTest {
- private static final String PREFIX = AccumuloRowInputFormatTest.class.getSimpleName();
- private static final String TEST_TABLE_1 = PREFIX + "_mapred_table_1";
-
- private static final String ROW1 = "row1";
- private static final String ROW2 = "row2";
- private static final String ROW3 = "row3";
- private static final String COLF1 = "colf1";
- private static final List<Entry<Key,Value>> row1;
- private static final List<Entry<Key,Value>> row2;
- private static final List<Entry<Key,Value>> row3;
- private static AssertionError e1 = null;
- private static AssertionError e2 = null;
-
- static {
- row1 = new ArrayList<Entry<Key,Value>>();
- row1.add(new KeyValue(new Key(ROW1, COLF1, "colq1"), "v1".getBytes()));
- row1.add(new KeyValue(new Key(ROW1, COLF1, "colq2"), "v2".getBytes()));
- row1.add(new KeyValue(new Key(ROW1, "colf2", "colq3"), "v3".getBytes()));
- row2 = new ArrayList<Entry<Key,Value>>();
- row2.add(new KeyValue(new Key(ROW2, COLF1, "colq4"), "v4".getBytes()));
- row3 = new ArrayList<Entry<Key,Value>>();
- row3.add(new KeyValue(new Key(ROW3, COLF1, "colq5"), "v5".getBytes()));
- }
-
- public static void checkLists(final List<Entry<Key,Value>> first, final List<Entry<Key,Value>> second) {
- assertEquals("Sizes should be the same.", first.size(), second.size());
- for (int i = 0; i < first.size(); i++) {
- assertEquals("Keys should be equal.", first.get(i).getKey(), second.get(i).getKey());
- assertEquals("Values should be equal.", first.get(i).getValue(), second.get(i).getValue());
- }
- }
-
- public static void checkLists(final List<Entry<Key,Value>> first, final Iterator<Entry<Key,Value>> second) {
- int entryIndex = 0;
- while (second.hasNext()) {
- final Entry<Key,Value> entry = second.next();
- assertEquals("Keys should be equal", first.get(entryIndex).getKey(), entry.getKey());
- assertEquals("Values should be equal", first.get(entryIndex).getValue(), entry.getValue());
- entryIndex++;
- }
- }
-
- public static void insertList(final BatchWriter writer, final List<Entry<Key,Value>> list) throws MutationsRejectedException {
- for (Entry<Key,Value> e : list) {
- final Key key = e.getKey();
- final Mutation mutation = new Mutation(key.getRow());
- ColumnVisibility colVisibility = new ColumnVisibility(key.getColumnVisibility());
- mutation.put(key.getColumnFamily(), key.getColumnQualifier(), colVisibility, key.getTimestamp(), e.getValue());
- writer.addMutation(mutation);
- }
- }
-
- private static class MRTester extends Configured implements Tool {
- public static class TestMapper implements Mapper<Text,PeekingIterator<Entry<Key,Value>>,Key,Value> {
- int count = 0;
-
- @Override
- public void map(Text k, PeekingIterator<Entry<Key,Value>> v, OutputCollector<Key,Value> output, Reporter reporter) throws IOException {
- try {
- switch (count) {
- case 0:
- assertEquals("Current key should be " + ROW1, new Text(ROW1), k);
- checkLists(row1, v);
- break;
- case 1:
- assertEquals("Current key should be " + ROW2, new Text(ROW2), k);
- checkLists(row2, v);
- break;
- case 2:
- assertEquals("Current key should be " + ROW3, new Text(ROW3), k);
- checkLists(row3, v);
- break;
- default:
- assertTrue(false);
- }
- } catch (AssertionError e) {
- e1 = e;
- }
- count++;
- }
-
- @Override
- public void configure(JobConf job) {}
-
- @Override
- public void close() throws IOException {
- try {
- assertEquals(3, count);
- } catch (AssertionError e) {
- e2 = e;
- }
- }
-
- }
-
- @Override
- public int run(String[] args) throws Exception {
-
- if (args.length != 4) {
- throw new IllegalArgumentException("Usage : " + MRTester.class.getName() + " <user> <pass> <table> <instanceName>");
- }
-
- String user = args[0];
- String pass = args[1];
- String table = args[2];
- String instanceName = args[3];
-
- JobConf job = new JobConf(getConf());
- job.setJarByClass(this.getClass());
-
- job.setInputFormat(AccumuloRowInputFormat.class);
-
- AccumuloInputFormat.setConnectorInfo(job, user, new PasswordToken(pass));
- AccumuloInputFormat.setInputTableName(job, table);
- AccumuloRowInputFormat.setMockInstance(job, instanceName);
-
- job.setMapperClass(TestMapper.class);
- job.setMapOutputKeyClass(Key.class);
- job.setMapOutputValueClass(Value.class);
- job.setOutputFormat(NullOutputFormat.class);
-
- job.setNumReduceTasks(0);
-
- return JobClient.runJob(job).isSuccessful() ? 0 : 1;
- }
-
- public static void main(String[] args) throws Exception {
- Configuration conf = new Configuration();
- conf.set("mapreduce.cluster.local.dir", new File(System.getProperty("user.dir"), "target/mapreduce-tmp").getAbsolutePath());
- assertEquals(0, ToolRunner.run(conf, new MRTester(), args));
- }
- }
-
- @Rule
- public TestName test = new TestName();
-
- @Test
- public void test() throws Exception {
- final Instance inst = new org.apache.accumulo.core.client.mock.MockInstance(test.getMethodName());
- final Connector conn = inst.getConnector("root", new PasswordToken(""));
- conn.tableOperations().create(TEST_TABLE_1);
- BatchWriter writer = null;
- try {
- writer = conn.createBatchWriter(TEST_TABLE_1, new BatchWriterConfig());
- insertList(writer, row1);
- insertList(writer, row2);
- insertList(writer, row3);
- } finally {
- if (writer != null) {
- writer.close();
- }
- }
- MRTester.main(new String[] {"root", "", TEST_TABLE_1, inst.getInstanceName()});
- assertNull(e1);
- assertNull(e2);
- }
-}
http://git-wip-us.apache.org/repos/asf/accumulo/blob/cc3c0111/core/src/test/java/org/apache/accumulo/core/client/mapred/TokenFileTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/accumulo/core/client/mapred/TokenFileTest.java b/core/src/test/java/org/apache/accumulo/core/client/mapred/TokenFileTest.java
deleted file mode 100644
index 7b4ef75..0000000
--- a/core/src/test/java/org/apache/accumulo/core/client/mapred/TokenFileTest.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.accumulo.core.client.mapred;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.PrintStream;
-import java.util.Iterator;
-import java.util.Map.Entry;
-
-import org.apache.accumulo.core.client.BatchWriter;
-import org.apache.accumulo.core.client.BatchWriterConfig;
-import org.apache.accumulo.core.client.Connector;
-import org.apache.accumulo.core.client.Instance;
-import org.apache.accumulo.core.client.Scanner;
-import org.apache.accumulo.core.client.impl.Credentials;
-import org.apache.accumulo.core.client.security.tokens.PasswordToken;
-import org.apache.accumulo.core.data.Key;
-import org.apache.accumulo.core.data.Mutation;
-import org.apache.accumulo.core.data.Value;
-import org.apache.accumulo.core.security.Authorizations;
-import org.apache.accumulo.core.util.CachedConfiguration;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.conf.Configured;
-import org.apache.hadoop.io.Text;
-import org.apache.hadoop.mapred.JobClient;
-import org.apache.hadoop.mapred.JobConf;
-import org.apache.hadoop.mapred.Mapper;
-import org.apache.hadoop.mapred.OutputCollector;
-import org.apache.hadoop.mapred.Reporter;
-import org.apache.hadoop.util.Tool;
-import org.apache.hadoop.util.ToolRunner;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TemporaryFolder;
-import org.junit.rules.TestName;
-
-public class TokenFileTest {
- private static AssertionError e1 = null;
- private static final String PREFIX = TokenFileTest.class.getSimpleName();
- private static final String TEST_TABLE_1 = PREFIX + "_mapred_table_1";
- private static final String TEST_TABLE_2 = PREFIX + "_mapred_table_2";
-
- private static class MRTokenFileTester extends Configured implements Tool {
- private static class TestMapper implements Mapper<Key,Value,Text,Mutation> {
- Key key = null;
- int count = 0;
- OutputCollector<Text,Mutation> finalOutput;
-
- @Override
- public void map(Key k, Value v, OutputCollector<Text,Mutation> output, Reporter reporter) throws IOException {
- finalOutput = output;
- try {
- if (key != null)
- assertEquals(key.getRow().toString(), new String(v.get()));
- assertEquals(k.getRow(), new Text(String.format("%09x", count + 1)));
- assertEquals(new String(v.get()), String.format("%09x", count));
- } catch (AssertionError e) {
- e1 = e;
- }
- key = new Key(k);
- count++;
- }
-
- @Override
- public void configure(JobConf job) {}
-
- @Override
- public void close() throws IOException {
- Mutation m = new Mutation("total");
- m.put("", "", Integer.toString(count));
- finalOutput.collect(new Text(), m);
- }
-
- }
-
- @Override
- public int run(String[] args) throws Exception {
-
- if (args.length != 5) {
- throw new IllegalArgumentException("Usage : " + MRTokenFileTester.class.getName() + " <user> <token file> <inputtable> <outputtable> <instanceName>");
- }
-
- String user = args[0];
- String tokenFile = args[1];
- String table1 = args[2];
- String table2 = args[3];
- String instanceName = args[4];
-
- JobConf job = new JobConf(getConf());
- job.setJarByClass(this.getClass());
-
- job.setInputFormat(AccumuloInputFormat.class);
-
- AccumuloInputFormat.setConnectorInfo(job, user, tokenFile);
- AccumuloInputFormat.setInputTableName(job, table1);
- AccumuloInputFormat.setMockInstance(job, instanceName);
-
- job.setMapperClass(TestMapper.class);
- job.setMapOutputKeyClass(Key.class);
- job.setMapOutputValueClass(Value.class);
- job.setOutputFormat(AccumuloOutputFormat.class);
- job.setOutputKeyClass(Text.class);
- job.setOutputValueClass(Mutation.class);
-
- AccumuloOutputFormat.setConnectorInfo(job, user, tokenFile);
- AccumuloOutputFormat.setCreateTables(job, false);
- AccumuloOutputFormat.setDefaultTableName(job, table2);
- AccumuloOutputFormat.setMockInstance(job, instanceName);
-
- job.setNumReduceTasks(0);
-
- return JobClient.runJob(job).isSuccessful() ? 0 : 1;
- }
-
- public static void main(String[] args) throws Exception {
- Configuration conf = CachedConfiguration.getInstance();
- conf.set("hadoop.tmp.dir", new File(args[1]).getParent());
- conf.set("mapreduce.cluster.local.dir", new File(System.getProperty("user.dir"), "target/mapreduce-tmp").getAbsolutePath());
- assertEquals(0, ToolRunner.run(conf, new MRTokenFileTester(), args));
- }
- }
-
- @Rule
- public TemporaryFolder folder = new TemporaryFolder(new File(System.getProperty("user.dir") + "/target"));
-
- @Rule
- public TestName test = new TestName();
-
- @Test
- public void testMR() throws Exception {
- Instance inst = new org.apache.accumulo.core.client.mock.MockInstance(test.getMethodName());
- Connector c = inst.getConnector("root", new PasswordToken(""));
- c.tableOperations().create(TEST_TABLE_1);
- c.tableOperations().create(TEST_TABLE_2);
- BatchWriter bw = c.createBatchWriter(TEST_TABLE_1, new BatchWriterConfig());
- for (int i = 0; i < 100; i++) {
- Mutation m = new Mutation(new Text(String.format("%09x", i + 1)));
- m.put(new Text(), new Text(), new Value(String.format("%09x", i).getBytes()));
- bw.addMutation(m);
- }
- bw.close();
-
- File tf = folder.newFile("root_test.pw");
- PrintStream out = new PrintStream(tf);
- String outString = new Credentials("root", new PasswordToken("")).serialize();
- out.println(outString);
- out.close();
-
- MRTokenFileTester.main(new String[] {"root", tf.getAbsolutePath(), TEST_TABLE_1, TEST_TABLE_2, inst.getInstanceName()});
- assertNull(e1);
-
- Scanner scanner = c.createScanner(TEST_TABLE_2, new Authorizations());
- Iterator<Entry<Key,Value>> iter = scanner.iterator();
- assertTrue(iter.hasNext());
- Entry<Key,Value> entry = iter.next();
- assertEquals(Integer.parseInt(new String(entry.getValue().get())), 100);
- assertFalse(iter.hasNext());
- }
-}
http://git-wip-us.apache.org/repos/asf/accumulo/blob/cc3c0111/core/src/test/java/org/apache/accumulo/core/client/mapreduce/AccumuloFileOutputFormatTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/accumulo/core/client/mapreduce/AccumuloFileOutputFormatTest.java b/core/src/test/java/org/apache/accumulo/core/client/mapreduce/AccumuloFileOutputFormatTest.java
index 43b21ce..3923566 100644
--- a/core/src/test/java/org/apache/accumulo/core/client/mapreduce/AccumuloFileOutputFormatTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/client/mapreduce/AccumuloFileOutputFormatTest.java
@@ -17,187 +17,16 @@
package org.apache.accumulo.core.client.mapreduce;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import java.io.File;
-import java.io.FileFilter;
import java.io.IOException;
-import org.apache.accumulo.core.client.BatchWriter;
-import org.apache.accumulo.core.client.BatchWriterConfig;
-import org.apache.accumulo.core.client.Connector;
-import org.apache.accumulo.core.client.Instance;
import org.apache.accumulo.core.client.mapreduce.lib.impl.FileOutputConfigurator;
-import org.apache.accumulo.core.client.security.tokens.PasswordToken;
import org.apache.accumulo.core.conf.AccumuloConfiguration;
import org.apache.accumulo.core.conf.Property;
-import org.apache.accumulo.core.data.Key;
-import org.apache.accumulo.core.data.Mutation;
-import org.apache.accumulo.core.data.Value;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.conf.Configured;
-import org.apache.hadoop.fs.Path;
import org.apache.hadoop.mapreduce.Job;
-import org.apache.hadoop.mapreduce.Mapper;
-import org.apache.hadoop.util.Tool;
-import org.apache.hadoop.util.ToolRunner;
-import org.junit.BeforeClass;
-import org.junit.Rule;
import org.junit.Test;
-import org.junit.rules.TemporaryFolder;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
public class AccumuloFileOutputFormatTest {
- private static final Logger log = LoggerFactory.getLogger(AccumuloFileOutputFormatTest.class);
- private static final String PREFIX = AccumuloFileOutputFormatTest.class.getSimpleName();
- private static final String INSTANCE_NAME = PREFIX + "_mapreduce_instance";
- private static final String BAD_TABLE = PREFIX + "_mapreduce_bad_table";
- private static final String TEST_TABLE = PREFIX + "_mapreduce_test_table";
- private static final String EMPTY_TABLE = PREFIX + "_mapreduce_empty_table";
-
- private static AssertionError e1 = null;
- private static AssertionError e2 = null;
-
- @Rule
- public TemporaryFolder folder = new TemporaryFolder(new File(System.getProperty("user.dir") + "/target"));
-
- @BeforeClass
- public static void setup() throws Exception {
- Instance mockInstance = new org.apache.accumulo.core.client.mock.MockInstance(INSTANCE_NAME);
- Connector c = mockInstance.getConnector("root", new PasswordToken(""));
- c.tableOperations().create(EMPTY_TABLE);
- c.tableOperations().create(TEST_TABLE);
- c.tableOperations().create(BAD_TABLE);
- BatchWriter bw = c.createBatchWriter(TEST_TABLE, new BatchWriterConfig());
- Mutation m = new Mutation("Key");
- m.put("", "", "");
- bw.addMutation(m);
- bw.close();
- bw = c.createBatchWriter(BAD_TABLE, new BatchWriterConfig());
- m = new Mutation("r1");
- m.put("cf1", "cq1", "A&B");
- m.put("cf1", "cq1", "A&B");
- m.put("cf1", "cq2", "A&");
- bw.addMutation(m);
- bw.close();
- }
-
- @Test
- public void testEmptyWrite() throws Exception {
- handleWriteTests(false);
- }
-
- @Test
- public void testRealWrite() throws Exception {
- handleWriteTests(true);
- }
-
- private static class MRTester extends Configured implements Tool {
- private static class BadKeyMapper extends Mapper<Key,Value,Key,Value> {
- int index = 0;
-
- @Override
- protected void map(Key key, Value value, Context context) throws IOException, InterruptedException {
- try {
- try {
- context.write(key, value);
- if (index == 2)
- assertTrue(false);
- } catch (Exception e) {
- assertEquals(2, index);
- }
- } catch (AssertionError e) {
- e1 = e;
- }
- index++;
- }
-
- @Override
- protected void cleanup(Context context) throws IOException, InterruptedException {
- try {
- assertEquals(2, index);
- } catch (AssertionError e) {
- e2 = e;
- }
- }
- }
-
- @Override
- public int run(String[] args) throws Exception {
-
- if (args.length != 4) {
- throw new IllegalArgumentException("Usage : " + MRTester.class.getName() + " <user> <pass> <table> <outputfile>");
- }
-
- String user = args[0];
- String pass = args[1];
- String table = args[2];
-
- Job job = Job.getInstance(getConf(), this.getClass().getSimpleName() + "_" + System.currentTimeMillis());
- job.setJarByClass(this.getClass());
-
- job.setInputFormatClass(AccumuloInputFormat.class);
-
- AccumuloInputFormat.setConnectorInfo(job, user, new PasswordToken(pass));
- AccumuloInputFormat.setInputTableName(job, table);
- AccumuloInputFormat.setMockInstance(job, INSTANCE_NAME);
- AccumuloFileOutputFormat.setOutputPath(job, new Path(args[3]));
-
- job.setMapperClass(BAD_TABLE.equals(table) ? BadKeyMapper.class : Mapper.class);
- job.setMapOutputKeyClass(Key.class);
- job.setMapOutputValueClass(Value.class);
- job.setOutputFormatClass(AccumuloFileOutputFormat.class);
-
- job.setNumReduceTasks(0);
-
- job.waitForCompletion(true);
-
- return job.isSuccessful() ? 0 : 1;
- }
-
- public static void main(String[] args) throws Exception {
- Configuration conf = new Configuration();
- conf.set("mapreduce.cluster.local.dir", new File(System.getProperty("user.dir"), "target/mapreduce-tmp").getAbsolutePath());
- assertEquals(0, ToolRunner.run(conf, new MRTester(), args));
- }
- }
-
- public void handleWriteTests(boolean content) throws Exception {
- File f = folder.newFile("handleWriteTests");
- if (f.delete()) {
- log.debug("Deleted {}", f);
- }
- MRTester.main(new String[] {"root", "", content ? TEST_TABLE : EMPTY_TABLE, f.getAbsolutePath()});
-
- assertTrue(f.exists());
- File[] files = f.listFiles(new FileFilter() {
- @Override
- public boolean accept(File file) {
- return file.getName().startsWith("part-m-");
- }
- });
- assertNotNull(files);
- if (content) {
- assertEquals(1, files.length);
- assertTrue(files[0].exists());
- } else {
- assertEquals(0, files.length);
- }
- }
-
- @Test
- public void writeBadVisibility() throws Exception {
- File f = folder.newFile("writeBadVisibility");
- if (f.delete()) {
- log.debug("Deleted {}", f);
- }
- MRTester.main(new String[] {"root", "", BAD_TABLE, f.getAbsolutePath()});
- assertNull(e1);
- assertNull(e2);
- }
@Test
public void validateConfiguration() throws IOException, InterruptedException {
http://git-wip-us.apache.org/repos/asf/accumulo/blob/cc3c0111/core/src/test/java/org/apache/accumulo/core/client/mapreduce/AccumuloInputFormatTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/accumulo/core/client/mapreduce/AccumuloInputFormatTest.java b/core/src/test/java/org/apache/accumulo/core/client/mapreduce/AccumuloInputFormatTest.java
index ff5e5f6..56c8195 100644
--- a/core/src/test/java/org/apache/accumulo/core/client/mapreduce/AccumuloInputFormatTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/client/mapreduce/AccumuloInputFormatTest.java
@@ -17,62 +17,27 @@
package org.apache.accumulo.core.client.mapreduce;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
-import java.io.File;
import java.io.IOException;
-import java.util.Collection;
-import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
-import org.apache.accumulo.core.client.BatchWriter;
-import org.apache.accumulo.core.client.BatchWriterConfig;
-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.security.tokens.PasswordToken;
-import org.apache.accumulo.core.data.Key;
-import org.apache.accumulo.core.data.Mutation;
-import org.apache.accumulo.core.data.Value;
import org.apache.accumulo.core.iterators.user.RegExFilter;
import org.apache.accumulo.core.iterators.user.WholeRowIterator;
-import org.apache.accumulo.core.security.Authorizations;
import org.apache.accumulo.core.util.Base64;
import org.apache.accumulo.core.util.Pair;
import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.io.Text;
-import org.apache.hadoop.mapreduce.InputFormat;
-import org.apache.hadoop.mapreduce.InputSplit;
import org.apache.hadoop.mapreduce.Job;
-import org.apache.hadoop.mapreduce.Mapper;
-import org.apache.hadoop.mapreduce.lib.output.NullOutputFormat;
-import org.apache.hadoop.util.Tool;
-import org.apache.hadoop.util.ToolRunner;
-import org.apache.log4j.Level;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Rule;
import org.junit.Test;
-import org.junit.rules.TestName;
public class AccumuloInputFormatTest {
- @Rule
- public TestName test = new TestName();
-
- private Instance inst;
-
- @Before
- public void setupInstance() throws Exception {
- inst = new org.apache.accumulo.core.client.mock.MockInstance(test.getMethodName());
- }
-
/**
* Check that the iterator configuration is getting stored in the Job conf correctly.
*/
@@ -207,217 +172,6 @@ public class AccumuloInputFormatTest {
assertTrue(regex.equals(AccumuloInputFormat.getIterators(job).get(0).getName()));
}
- private static AssertionError e1 = null;
- private static AssertionError e2 = null;
-
- private static class MRTester extends Configured implements Tool {
- private static class TestMapper extends Mapper<Key,Value,Key,Value> {
- Key key = null;
- int count = 0;
-
- @Override
- protected void map(Key k, Value v, Context context) throws IOException, InterruptedException {
- try {
- if (key != null)
- assertEquals(key.getRow().toString(), new String(v.get()));
- assertEquals(k.getRow(), new Text(String.format("%09x", count + 1)));
- assertEquals(new String(v.get()), String.format("%09x", count));
- } catch (AssertionError e) {
- e1 = e;
- }
- key = new Key(k);
- count++;
- }
-
- @Override
- protected void cleanup(Context context) throws IOException, InterruptedException {
- try {
- assertEquals(100, count);
- } catch (AssertionError e) {
- e2 = e;
- }
- }
- }
-
- @Override
- public int run(String[] args) throws Exception {
-
- if (args.length != 5 && args.length != 6) {
- throw new IllegalArgumentException("Usage : " + MRTester.class.getName() + " <user> <pass> <table> <instanceName> <inputFormatClass> [<batchScan>]");
- }
-
- String user = args[0];
- String pass = args[1];
- String table = args[2];
-
- String instanceName = args[3];
- String inputFormatClassName = args[4];
- Boolean batchScan = false;
- if (args.length == 6)
- batchScan = Boolean.parseBoolean(args[5]);
-
- @SuppressWarnings("unchecked")
- Class<? extends InputFormat<?,?>> inputFormatClass = (Class<? extends InputFormat<?,?>>) Class.forName(inputFormatClassName);
-
- Job job = Job.getInstance(getConf(), this.getClass().getSimpleName() + "_" + System.currentTimeMillis());
- job.setJarByClass(this.getClass());
-
- job.setInputFormatClass(inputFormatClass);
-
- AccumuloInputFormat.setConnectorInfo(job, user, new PasswordToken(pass));
- AccumuloInputFormat.setInputTableName(job, table);
- AccumuloInputFormat.setMockInstance(job, instanceName);
- AccumuloInputFormat.setBatchScan(job, batchScan);
-
- job.setMapperClass(TestMapper.class);
- job.setMapOutputKeyClass(Key.class);
- job.setMapOutputValueClass(Value.class);
- job.setOutputFormatClass(NullOutputFormat.class);
-
- job.setNumReduceTasks(0);
-
- job.waitForCompletion(true);
-
- return job.isSuccessful() ? 0 : 1;
- }
-
- public static int main(String[] args) throws Exception {
- Configuration conf = new Configuration();
- conf.set("mapreduce.cluster.local.dir", new File(System.getProperty("user.dir"), "target/mapreduce-tmp").getAbsolutePath());
- return ToolRunner.run(conf, new MRTester(), args);
- }
- }
-
- @Test
- public void testMap() throws Exception {
- final String TEST_TABLE_1 = test.getMethodName() + "_mapreduce_table_1";
-
- Connector c = inst.getConnector("root", new PasswordToken(""));
- c.tableOperations().create(TEST_TABLE_1);
- BatchWriter bw = c.createBatchWriter(TEST_TABLE_1, new BatchWriterConfig());
- for (int i = 0; i < 100; i++) {
- Mutation m = new Mutation(new Text(String.format("%09x", i + 1)));
- m.put(new Text(), new Text(), new Value(String.format("%09x", i).getBytes()));
- bw.addMutation(m);
- }
- bw.close();
-
- Assert.assertEquals(0, MRTester.main(new String[] {"root", "", TEST_TABLE_1, inst.getInstanceName(), AccumuloInputFormat.class.getCanonicalName()}));
- assertNull(e1);
- assertNull(e2);
- }
-
- @Test
- public void testMapWithBatchScanner() throws Exception {
- final String TEST_TABLE_2 = test.getMethodName() + "_mapreduce_table_2";
-
- Connector c = inst.getConnector("root", new PasswordToken(""));
- c.tableOperations().create(TEST_TABLE_2);
- BatchWriter bw = c.createBatchWriter(TEST_TABLE_2, new BatchWriterConfig());
- for (int i = 0; i < 100; i++) {
- Mutation m = new Mutation(new Text(String.format("%09x", i + 1)));
- m.put(new Text(), new Text(), new Value(String.format("%09x", i).getBytes()));
- bw.addMutation(m);
- }
- bw.close();
-
- Assert
- .assertEquals(0, MRTester.main(new String[] {"root", "", TEST_TABLE_2, inst.getInstanceName(), AccumuloInputFormat.class.getCanonicalName(), "True"}));
- assertNull(e1);
- assertNull(e2);
- }
-
- @Test
- public void testCorrectRangeInputSplits() throws Exception {
- Job job = Job.getInstance(new Configuration(), this.getClass().getSimpleName() + "_" + System.currentTimeMillis());
-
- String username = "user", table = "table";
- PasswordToken password = new PasswordToken("password");
- Authorizations auths = new Authorizations("foo");
- Collection<Pair<Text,Text>> fetchColumns = Collections.singleton(new Pair<Text,Text>(new Text("foo"), new Text("bar")));
- boolean isolated = true, localIters = true;
- Level level = Level.WARN;
-
- Connector connector = inst.getConnector(username, password);
- connector.tableOperations().create(table);
-
- AccumuloInputFormat.setConnectorInfo(job, username, password);
- AccumuloInputFormat.setInputTableName(job, table);
- AccumuloInputFormat.setScanAuthorizations(job, auths);
- AccumuloInputFormat.setMockInstance(job, inst.getInstanceName());
- AccumuloInputFormat.setScanIsolation(job, isolated);
- AccumuloInputFormat.setLocalIterators(job, localIters);
- AccumuloInputFormat.fetchColumns(job, fetchColumns);
- AccumuloInputFormat.setLogLevel(job, level);
-
- AccumuloInputFormat aif = new AccumuloInputFormat();
-
- List<InputSplit> splits = aif.getSplits(job);
-
- Assert.assertEquals(1, splits.size());
-
- InputSplit split = splits.get(0);
-
- Assert.assertEquals(RangeInputSplit.class, split.getClass());
-
- RangeInputSplit risplit = (RangeInputSplit) split;
-
- Assert.assertEquals(username, risplit.getPrincipal());
- Assert.assertEquals(table, risplit.getTableName());
- Assert.assertEquals(password, risplit.getToken());
- Assert.assertEquals(auths, risplit.getAuths());
- Assert.assertEquals(inst.getInstanceName(), risplit.getInstanceName());
- Assert.assertEquals(isolated, risplit.isIsolatedScan());
- Assert.assertEquals(localIters, risplit.usesLocalIterators());
- Assert.assertEquals(fetchColumns, risplit.getFetchedColumns());
- Assert.assertEquals(level, risplit.getLogLevel());
- }
-
- @Test
- public void testPartialInputSplitDelegationToConfiguration() throws Exception {
- String user = "testPartialInputSplitUser";
- PasswordToken password = new PasswordToken("");
-
- Connector c = inst.getConnector(user, password);
- c.tableOperations().create("testtable");
- BatchWriter bw = c.createBatchWriter("testtable", new BatchWriterConfig());
- for (int i = 0; i < 100; i++) {
- Mutation m = new Mutation(new Text(String.format("%09x", i + 1)));
- m.put(new Text(), new Text(), new Value(String.format("%09x", i).getBytes()));
- bw.addMutation(m);
- }
- bw.close();
-
- Assert.assertEquals(0,
- MRTester.main(new String[] {user, "", "testtable", "testPartialInputSplitDelegationToConfiguration", EmptySplitsAccumuloInputFormat.class.getName()}));
- assertNull(e1);
- assertNull(e2);
- }
-
- @Test
- public void testPartialFailedInputSplitDelegationToConfiguration() throws Exception {
- String user = "testPartialFailedInputSplit";
- PasswordToken password = new PasswordToken("");
-
- Connector c = inst.getConnector(user, password);
- c.tableOperations().create("testtable");
- BatchWriter bw = c.createBatchWriter("testtable", new BatchWriterConfig());
- for (int i = 0; i < 100; i++) {
- Mutation m = new Mutation(new Text(String.format("%09x", i + 1)));
- m.put(new Text(), new Text(), new Value(String.format("%09x", i).getBytes()));
- bw.addMutation(m);
- }
- bw.close();
-
- // We should fail before we even get into the Mapper because we can't make the RecordReader
- Assert.assertEquals(
- 1,
- MRTester.main(new String[] {user, "", "testtable", "testPartialFailedInputSplitDelegationToConfiguration",
- BadPasswordSplitsAccumuloInputFormat.class.getName()}));
- assertNull(e1);
- assertNull(e2);
- }
-
@Test
public void testEmptyColumnFamily() throws IOException {
Job job = Job.getInstance();
http://git-wip-us.apache.org/repos/asf/accumulo/blob/cc3c0111/core/src/test/java/org/apache/accumulo/core/client/mapreduce/AccumuloMultiTableInputFormatTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/accumulo/core/client/mapreduce/AccumuloMultiTableInputFormatTest.java b/core/src/test/java/org/apache/accumulo/core/client/mapreduce/AccumuloMultiTableInputFormatTest.java
index f1c3ca9..1137916 100644
--- a/core/src/test/java/org/apache/accumulo/core/client/mapreduce/AccumuloMultiTableInputFormatTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/client/mapreduce/AccumuloMultiTableInputFormatTest.java
@@ -17,156 +17,33 @@
package org.apache.accumulo.core.client.mapreduce;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import java.io.File;
import java.io.IOException;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
-import org.apache.accumulo.core.client.BatchWriter;
-import org.apache.accumulo.core.client.BatchWriterConfig;
-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.security.tokens.PasswordToken;
-import org.apache.accumulo.core.data.Key;
-import org.apache.accumulo.core.data.Mutation;
import org.apache.accumulo.core.data.Range;
-import org.apache.accumulo.core.data.Value;
import org.apache.accumulo.core.util.Pair;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
-import org.apache.hadoop.mapreduce.Mapper;
-import org.apache.hadoop.mapreduce.lib.output.NullOutputFormat;
-import org.apache.hadoop.util.Tool;
-import org.apache.hadoop.util.ToolRunner;
+import org.junit.Rule;
import org.junit.Test;
+import org.junit.rules.TestName;
public class AccumuloMultiTableInputFormatTest {
- private static final String PREFIX = AccumuloMultiTableInputFormatTest.class.getSimpleName();
- private static final String INSTANCE_NAME = PREFIX + "_mapreduce_instance";
- private static final String TEST_TABLE_1 = PREFIX + "_mapreduce_table_1";
- private static final String TEST_TABLE_2 = PREFIX + "_mapreduce_table_2";
-
- private static AssertionError e1 = null;
- private static AssertionError e2 = null;
-
- private static class MRTester extends Configured implements Tool {
-
- private static class TestMapper extends Mapper<Key,Value,Key,Value> {
- Key key = null;
- int count = 0;
-
- @Override
- protected void map(Key k, Value v, Context context) throws IOException, InterruptedException {
- try {
- String tableName = ((RangeInputSplit) context.getInputSplit()).getTableName();
- if (key != null)
- assertEquals(key.getRow().toString(), new String(v.get()));
- assertEquals(new Text(String.format("%s_%09x", tableName, count + 1)), k.getRow());
- assertEquals(String.format("%s_%09x", tableName, count), new String(v.get()));
- } catch (AssertionError e) {
- e1 = e;
- }
- key = new Key(k);
- count++;
- }
-
- @Override
- protected void cleanup(Context context) throws IOException, InterruptedException {
- try {
- assertEquals(100, count);
- } catch (AssertionError e) {
- e2 = e;
- }
- }
- }
-
- @Override
- public int run(String[] args) throws Exception {
-
- if (args.length != 4) {
- throw new IllegalArgumentException("Usage : " + MRTester.class.getName() + " <user> <pass> <table1> <table2>");
- }
-
- String user = args[0];
- String pass = args[1];
- String table1 = args[2];
- String table2 = args[3];
-
- Job job = Job.getInstance(getConf(), this.getClass().getSimpleName() + "_" + System.currentTimeMillis());
- job.setJarByClass(this.getClass());
-
- job.setInputFormatClass(AccumuloMultiTableInputFormat.class);
-
- AccumuloMultiTableInputFormat.setConnectorInfo(job, user, new PasswordToken(pass));
-
- InputTableConfig tableConfig1 = new InputTableConfig();
- InputTableConfig tableConfig2 = new InputTableConfig();
-
- Map<String,InputTableConfig> configMap = new HashMap<String,InputTableConfig>();
- configMap.put(table1, tableConfig1);
- configMap.put(table2, tableConfig2);
-
- AccumuloMultiTableInputFormat.setInputTableConfigs(job, configMap);
- AccumuloMultiTableInputFormat.setMockInstance(job, INSTANCE_NAME);
-
- job.setMapperClass(TestMapper.class);
- job.setMapOutputKeyClass(Key.class);
- job.setMapOutputValueClass(Value.class);
- job.setOutputFormatClass(NullOutputFormat.class);
-
- job.setNumReduceTasks(0);
-
- job.waitForCompletion(true);
-
- return job.isSuccessful() ? 0 : 1;
- }
-
- public static void main(String[] args) throws Exception {
- Configuration conf = new Configuration();
- conf.set("mapreduce.cluster.local.dir", new File(System.getProperty("user.dir"), "target/mapreduce-tmp").getAbsolutePath());
- assertEquals(0, ToolRunner.run(conf, new MRTester(), args));
- }
- }
-
- /**
- * Generate incrementing counts and attach table name to the key/value so that order and multi-table data can be verified.
- */
- @Test
- public void testMap() throws Exception {
- Instance mockInstance = new org.apache.accumulo.core.client.mock.MockInstance(INSTANCE_NAME);
- Connector c = mockInstance.getConnector("root", new PasswordToken(""));
- c.tableOperations().create(TEST_TABLE_1);
- c.tableOperations().create(TEST_TABLE_2);
- BatchWriter bw = c.createBatchWriter(TEST_TABLE_1, new BatchWriterConfig());
- BatchWriter bw2 = c.createBatchWriter(TEST_TABLE_2, new BatchWriterConfig());
- for (int i = 0; i < 100; i++) {
- Mutation t1m = new Mutation(new Text(String.format("%s_%09x", TEST_TABLE_1, i + 1)));
- t1m.put(new Text(), new Text(), new Value(String.format("%s_%09x", TEST_TABLE_1, i).getBytes()));
- bw.addMutation(t1m);
- Mutation t2m = new Mutation(new Text(String.format("%s_%09x", TEST_TABLE_2, i + 1)));
- t2m.put(new Text(), new Text(), new Value(String.format("%s_%09x", TEST_TABLE_2, i).getBytes()));
- bw2.addMutation(t2m);
- }
- bw.close();
- bw2.close();
-
- MRTester.main(new String[] {"root", "", TEST_TABLE_1, TEST_TABLE_2});
- assertNull(e1);
- assertNull(e2);
- }
+ @Rule
+ public TestName testName = new TestName();
/**
* Verify {@link InputTableConfig} objects get correctly serialized in the JobContext.
*/
@Test
public void testInputTableConfigSerialization() throws IOException {
+ String table1 = testName.getMethodName() + "1";
+ String table2 = testName.getMethodName() + "2";
Job job = Job.getInstance();
InputTableConfig tableConfig = new InputTableConfig().setRanges(Collections.singletonList(new Range("a", "b")))
@@ -174,13 +51,13 @@ public class AccumuloMultiTableInputFormatTest {
.setIterators(Collections.singletonList(new IteratorSetting(50, "iter1", "iterclass1")));
Map<String,InputTableConfig> configMap = new HashMap<String,InputTableConfig>();
- configMap.put(TEST_TABLE_1, tableConfig);
- configMap.put(TEST_TABLE_2, tableConfig);
+ configMap.put(table1, tableConfig);
+ configMap.put(table2, tableConfig);
AccumuloMultiTableInputFormat.setInputTableConfigs(job, configMap);
- assertEquals(tableConfig, AccumuloMultiTableInputFormat.getInputTableConfig(job, TEST_TABLE_1));
- assertEquals(tableConfig, AccumuloMultiTableInputFormat.getInputTableConfig(job, TEST_TABLE_2));
+ assertEquals(tableConfig, AccumuloMultiTableInputFormat.getInputTableConfig(job, table1));
+ assertEquals(tableConfig, AccumuloMultiTableInputFormat.getInputTableConfig(job, table2));
}
}