Add overloaded Common.createTableWithNamespace() with NTC (#121)
* Add overloaded Common.createTableWithNamespace() with NTC
* rename ntc to newTableConfig
diff --git a/src/main/java/org/apache/accumulo/examples/Common.java b/src/main/java/org/apache/accumulo/examples/Common.java
index 5fb99df..64131f8 100644
--- a/src/main/java/org/apache/accumulo/examples/Common.java
+++ b/src/main/java/org/apache/accumulo/examples/Common.java
@@ -5,6 +5,7 @@
import org.apache.accumulo.core.client.AccumuloSecurityException;
import org.apache.accumulo.core.client.NamespaceExistsException;
import org.apache.accumulo.core.client.TableExistsException;
+import org.apache.accumulo.core.client.admin.NewTableConfiguration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -32,6 +33,12 @@
*/
public static void createTableWithNamespace(final AccumuloClient client, final String table)
throws AccumuloException, AccumuloSecurityException {
+ createTableWithNamespace(client, table, new NewTableConfiguration());
+ }
+
+ public static void createTableWithNamespace(final AccumuloClient client, final String table,
+ final NewTableConfiguration newTableConfig)
+ throws AccumuloException, AccumuloSecurityException {
String[] name = table.split("\\.");
if (name.length == 2 && !name[0].isEmpty()) {
try {
@@ -41,7 +48,7 @@
}
}
try {
- client.tableOperations().create(table);
+ client.tableOperations().create(table, newTableConfig);
} catch (TableExistsException e) {
log.warn(TABLE_EXISTS_MSG + table);
}
diff --git a/src/main/java/org/apache/accumulo/examples/bloom/BloomFilters.java b/src/main/java/org/apache/accumulo/examples/bloom/BloomFilters.java
index d2988f5..bc1001b 100644
--- a/src/main/java/org/apache/accumulo/examples/bloom/BloomFilters.java
+++ b/src/main/java/org/apache/accumulo/examples/bloom/BloomFilters.java
@@ -16,6 +16,7 @@
*/
package org.apache.accumulo.examples.bloom;
+import java.util.Map;
import java.util.Random;
import org.apache.accumulo.core.client.Accumulo;
@@ -25,6 +26,7 @@
import org.apache.accumulo.core.client.BatchWriter;
import org.apache.accumulo.core.client.MutationsRejectedException;
import org.apache.accumulo.core.client.TableNotFoundException;
+import org.apache.accumulo.core.client.admin.NewTableConfiguration;
import org.apache.accumulo.core.data.Mutation;
import org.apache.accumulo.core.security.ColumnVisibility;
import org.apache.accumulo.examples.Common;
@@ -58,8 +60,9 @@
private static void createTableAndSetCompactionRatio(AccumuloClient client,
final String tableName) throws AccumuloException, AccumuloSecurityException {
log.info("Creating {}", tableName);
- Common.createTableWithNamespace(client, tableName);
- client.tableOperations().setProperty(tableName, "table.compaction.major.ratio", "7");
+ Map<String,String> props = Map.of("table.compaction.major.ratio", "7");
+ var newTableConfig = new NewTableConfiguration().setProperties(props);
+ Common.createTableWithNamespace(client, tableName, newTableConfig);
}
// Write a million rows 3 times flushing files to disk separately
diff --git a/src/main/java/org/apache/accumulo/examples/bloom/BloomFiltersNotFound.java b/src/main/java/org/apache/accumulo/examples/bloom/BloomFiltersNotFound.java
index e050102..a36f772 100644
--- a/src/main/java/org/apache/accumulo/examples/bloom/BloomFiltersNotFound.java
+++ b/src/main/java/org/apache/accumulo/examples/bloom/BloomFiltersNotFound.java
@@ -18,11 +18,14 @@
import static org.apache.accumulo.examples.bloom.BloomFilters.writeData;
+import java.util.Map;
+
import org.apache.accumulo.core.client.Accumulo;
import org.apache.accumulo.core.client.AccumuloClient;
import org.apache.accumulo.core.client.AccumuloException;
import org.apache.accumulo.core.client.AccumuloSecurityException;
import org.apache.accumulo.core.client.TableNotFoundException;
+import org.apache.accumulo.core.client.admin.NewTableConfiguration;
import org.apache.accumulo.examples.Common;
import org.apache.accumulo.examples.cli.ClientOpts;
import org.slf4j.Logger;
@@ -38,10 +41,11 @@
opts.parseArgs(BloomFiltersNotFound.class.getName(), args);
try (AccumuloClient client = Accumulo.newClient().from(opts.getClientPropsPath()).build()) {
+ Map<String,String> props = Map.of(BloomCommon.BLOOM_ENABLED_PROPERTY, "true");
+ var newTableConfig = new NewTableConfiguration().setProperties(props);
+
Common.createTableWithNamespace(client, BloomCommon.BLOOM_TEST3_TABLE);
- Common.createTableWithNamespace(client, BloomCommon.BLOOM_TEST4_TABLE);
- client.tableOperations().setProperty(BloomCommon.BLOOM_TEST4_TABLE,
- BloomCommon.BLOOM_ENABLED_PROPERTY, "true");
+ Common.createTableWithNamespace(client, BloomCommon.BLOOM_TEST4_TABLE, newTableConfig);
writeAndFlush(BloomCommon.BLOOM_TEST3_TABLE, client);
writeAndFlush(BloomCommon.BLOOM_TEST4_TABLE, client);
diff --git a/src/main/java/org/apache/accumulo/examples/dirlist/Ingest.java b/src/main/java/org/apache/accumulo/examples/dirlist/Ingest.java
index daeb96f..ec4e712 100644
--- a/src/main/java/org/apache/accumulo/examples/dirlist/Ingest.java
+++ b/src/main/java/org/apache/accumulo/examples/dirlist/Ingest.java
@@ -26,6 +26,7 @@
import org.apache.accumulo.core.client.AccumuloClient;
import org.apache.accumulo.core.client.BatchWriter;
import org.apache.accumulo.core.client.IteratorSetting;
+import org.apache.accumulo.core.client.admin.NewTableConfiguration;
import org.apache.accumulo.core.client.lexicoder.Encoder;
import org.apache.accumulo.core.data.Mutation;
import org.apache.accumulo.core.data.Value;
@@ -160,11 +161,12 @@
opts.parseArgs(Ingest.class.getName(), args, bwOpts);
try (AccumuloClient client = opts.createAccumuloClient()) {
+ var newTableConfig = new NewTableConfiguration()
+ .attachIterator(new IteratorSetting(1, ChunkCombiner.class));
+
Common.createTableWithNamespace(client, opts.dirTable);
Common.createTableWithNamespace(client, opts.indexTable);
- Common.createTableWithNamespace(client, opts.dataTable);
- client.tableOperations().attachIterator(opts.dataTable,
- new IteratorSetting(1, ChunkCombiner.class));
+ Common.createTableWithNamespace(client, opts.dataTable, newTableConfig);
BatchWriter dirBW = client.createBatchWriter(opts.dirTable, bwOpts.getBatchWriterConfig());
BatchWriter indexBW = client.createBatchWriter(opts.indexTable,
diff --git a/src/main/java/org/apache/accumulo/examples/filedata/FileDataIngest.java b/src/main/java/org/apache/accumulo/examples/filedata/FileDataIngest.java
index 87bc67d..0bca7ec 100644
--- a/src/main/java/org/apache/accumulo/examples/filedata/FileDataIngest.java
+++ b/src/main/java/org/apache/accumulo/examples/filedata/FileDataIngest.java
@@ -28,6 +28,7 @@
import org.apache.accumulo.core.client.BatchWriter;
import org.apache.accumulo.core.client.IteratorSetting;
import org.apache.accumulo.core.client.MutationsRejectedException;
+import org.apache.accumulo.core.client.admin.NewTableConfiguration;
import org.apache.accumulo.core.data.ArrayByteSequence;
import org.apache.accumulo.core.data.ByteSequence;
import org.apache.accumulo.core.data.Mutation;
@@ -198,9 +199,8 @@
opts.parseArgs(FileDataIngest.class.getName(), args, bwOpts);
try (AccumuloClient client = opts.createAccumuloClient()) {
- Common.createTableWithNamespace(client, opts.getTableName());
- client.tableOperations().attachIterator(opts.getTableName(),
- new IteratorSetting(1, ChunkCombiner.class));
+ Common.createTableWithNamespace(client, opts.getTableName(),
+ new NewTableConfiguration().attachIterator(new IteratorSetting(1, ChunkCombiner.class)));
try (BatchWriter bw = client.createBatchWriter(opts.getTableName(),
bwOpts.getBatchWriterConfig())) {
diff --git a/src/main/java/org/apache/accumulo/examples/mapreduce/NGramIngest.java b/src/main/java/org/apache/accumulo/examples/mapreduce/NGramIngest.java
index b41c240..eabd3ad 100644
--- a/src/main/java/org/apache/accumulo/examples/mapreduce/NGramIngest.java
+++ b/src/main/java/org/apache/accumulo/examples/mapreduce/NGramIngest.java
@@ -19,8 +19,11 @@
import java.io.IOException;
import java.util.SortedSet;
import java.util.TreeSet;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
import org.apache.accumulo.core.client.AccumuloClient;
+import org.apache.accumulo.core.client.admin.NewTableConfiguration;
import org.apache.accumulo.core.data.Mutation;
import org.apache.accumulo.core.data.Value;
import org.apache.accumulo.examples.Common;
@@ -89,18 +92,17 @@
try (AccumuloClient client = opts.createAccumuloClient()) {
if (!client.tableOperations().exists(opts.tableName)) {
- log.info("Creating table " + opts.tableName);
- Common.createTableWithNamespace(client, opts.tableName);
- SortedSet<Text> splits = new TreeSet<>();
String[] numbers = "1 2 3 4 5 6 7 8 9".split("\\s");
String[] lower = "a b c d e f g h i j k l m n o p q r s t u v w x y z".split("\\s");
String[] upper = "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z".split("\\s");
- for (String[] array : new String[][] {numbers, lower, upper}) {
- for (String s : array) {
- splits.add(new Text(s));
- }
- }
- client.tableOperations().addSplits(opts.tableName, splits);
+
+ SortedSet<Text> splits = Stream.of(numbers, lower, upper).flatMap(Stream::of).map(Text::new)
+ .collect(Collectors.toCollection(TreeSet::new));
+
+ var newTableConfig = new NewTableConfiguration().withSplits(splits);
+
+ log.info("Creating table " + opts.tableName);
+ Common.createTableWithNamespace(client, opts.tableName, newTableConfig);
}
}
diff --git a/src/main/java/org/apache/accumulo/examples/mapreduce/WordCount.java b/src/main/java/org/apache/accumulo/examples/mapreduce/WordCount.java
index d86be5a..7daedc8 100644
--- a/src/main/java/org/apache/accumulo/examples/mapreduce/WordCount.java
+++ b/src/main/java/org/apache/accumulo/examples/mapreduce/WordCount.java
@@ -23,6 +23,7 @@
import org.apache.accumulo.core.client.AccumuloClient;
import org.apache.accumulo.core.client.IteratorSetting;
+import org.apache.accumulo.core.client.admin.NewTableConfiguration;
import org.apache.accumulo.core.data.Mutation;
import org.apache.accumulo.core.iterators.user.SummingCombiner;
import org.apache.accumulo.examples.Common;
@@ -81,14 +82,14 @@
Opts opts = new Opts();
opts.parseArgs(WordCount.class.getName(), args);
- // Create Accumulo table and attach Summing iterator
+ // Create Accumulo table with Summing iterator attached
try (AccumuloClient client = opts.createAccumuloClient()) {
- Common.createTableWithNamespace(client, opts.tableName);
IteratorSetting is = new IteratorSetting(10, SummingCombiner.class);
SummingCombiner.setColumns(is,
Collections.singletonList(new IteratorSetting.Column("count")));
SummingCombiner.setEncodingType(is, SummingCombiner.Type.STRING);
- client.tableOperations().attachIterator(opts.tableName, is);
+ Common.createTableWithNamespace(client, opts.tableName,
+ new NewTableConfiguration().attachIterator(is));
}
// Create M/R job
diff --git a/src/main/java/org/apache/accumulo/examples/mapreduce/bulk/SetupTable.java b/src/main/java/org/apache/accumulo/examples/mapreduce/bulk/SetupTable.java
index 259f77b..33ff287 100644
--- a/src/main/java/org/apache/accumulo/examples/mapreduce/bulk/SetupTable.java
+++ b/src/main/java/org/apache/accumulo/examples/mapreduce/bulk/SetupTable.java
@@ -17,12 +17,15 @@
package org.apache.accumulo.examples.mapreduce.bulk;
import java.util.TreeSet;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
import org.apache.accumulo.core.client.Accumulo;
import org.apache.accumulo.core.client.AccumuloClient;
import org.apache.accumulo.core.client.AccumuloException;
import org.apache.accumulo.core.client.AccumuloSecurityException;
import org.apache.accumulo.core.client.TableNotFoundException;
+import org.apache.accumulo.core.client.admin.NewTableConfiguration;
import org.apache.accumulo.examples.Common;
import org.apache.accumulo.examples.cli.ClientOpts;
import org.apache.hadoop.io.Text;
@@ -36,19 +39,16 @@
public static void main(String[] args)
throws AccumuloSecurityException, TableNotFoundException, AccumuloException {
- final String[] splits = {"row_00000333", "row_00000666"};
+ final Stream<String> splits = Stream.of("row_00000333", "row_00000666");
ClientOpts opts = new ClientOpts();
opts.parseArgs(SetupTable.class.getName(), args);
try (AccumuloClient client = Accumulo.newClient().from(opts.getClientPropsPath()).build()) {
- Common.createTableWithNamespace(client, BULK_INGEST_TABLE);
-
// create a table with initial partitions
- TreeSet<Text> initialPartitions = new TreeSet<>();
- for (String split : splits) {
- initialPartitions.add(new Text(split));
- }
- client.tableOperations().addSplits(BULK_INGEST_TABLE, initialPartitions);
+ TreeSet<Text> initialPartitions = splits.map(Text::new)
+ .collect(Collectors.toCollection(TreeSet::new));
+ Common.createTableWithNamespace(client, BULK_INGEST_TABLE,
+ new NewTableConfiguration().withSplits(initialPartitions));
}
}
}