Author: jbellis
Date: Fri Mar 5 20:33:47 2010
New Revision: 919594
URL: http://svn.apache.org/viewvc?rev=919594&view=rev
Log:
merge from 0.6
Added:
incubator/cassandra/trunk/src/java/org/apache/cassandra/hadoop/ConfigHelper.java
- copied unchanged from r919592,
incubator/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/hadoop/ConfigHelper.java
Modified:
incubator/cassandra/trunk/ (props changed)
incubator/cassandra/trunk/CHANGES.txt
incubator/cassandra/trunk/contrib/word_count/src/WordCount.java
incubator/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
(props changed)
incubator/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
(props changed)
incubator/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java
(props changed)
incubator/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java
(props changed)
incubator/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
(props changed)
incubator/cassandra/trunk/src/java/org/apache/cassandra/hadoop/ColumnFamilyInputFormat.java
incubator/cassandra/trunk/src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordReader.java
incubator/cassandra/trunk/src/java/org/apache/cassandra/hadoop/ColumnFamilySplit.java
Propchange: incubator/cassandra/trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Mar 5 20:33:47 2010
@@ -1,4 +1,4 @@
/incubator/cassandra/branches/cassandra-0.3:774578-796573
/incubator/cassandra/branches/cassandra-0.4:810145-834239,834349-834350
/incubator/cassandra/branches/cassandra-0.5:888872-915439
-/incubator/cassandra/branches/cassandra-0.6:911237-919580
+/incubator/cassandra/branches/cassandra-0.6:911237-919592
Modified: incubator/cassandra/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/CHANGES.txt?rev=919594&r1=919593&r2=919594&view=diff
==============================================================================
--- incubator/cassandra/trunk/CHANGES.txt (original)
+++ incubator/cassandra/trunk/CHANGES.txt Fri Mar 5 20:33:47 2010
@@ -17,6 +17,7 @@
until it's too late (CASSANDRA-843)
* Add logging of GC activity (CASSANDRA-813)
* fix ConcurrentModificationException in commitlog discard (CASSANDRA-853)
+ * Fix hardcoded row count in Hadoop RecordReader (CASSANDRA-837)
0.6.0-beta1/beta2
Modified: incubator/cassandra/trunk/contrib/word_count/src/WordCount.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/contrib/word_count/src/WordCount.java?rev=919594&r1=919593&r2=919594&view=diff
==============================================================================
--- incubator/cassandra/trunk/contrib/word_count/src/WordCount.java (original)
+++ incubator/cassandra/trunk/contrib/word_count/src/WordCount.java Fri Mar 5
20:33:47 2010
@@ -25,6 +25,7 @@
import org.apache.cassandra.db.IColumn;
import org.apache.cassandra.hadoop.ColumnFamilyInputFormat;
+import org.apache.cassandra.hadoop.ConfigHelper;
import org.apache.cassandra.thrift.SlicePredicate;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.conf.Configured;
@@ -127,9 +128,9 @@
job.setInputFormatClass(ColumnFamilyInputFormat.class);
FileOutputFormat.setOutputPath(job, new Path(OUTPUT_PATH_PREFIX +
i));
- ColumnFamilyInputFormat.setColumnFamily(job, KEYSPACE,
COLUMN_FAMILY);
+ ConfigHelper.setColumnFamily(job.getConfiguration(), KEYSPACE,
COLUMN_FAMILY);
SlicePredicate predicate = new
SlicePredicate().setColumn_names(Arrays.asList(columnName.getBytes()));
- ColumnFamilyInputFormat.setSlicePredicate(job, predicate);
+ ConfigHelper.setSlicePredicate(job.getConfiguration(), predicate);
job.waitForCompletion(true);
}
Propchange:
incubator/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Mar 5 20:33:47 2010
@@ -1,6 +1,6 @@
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/Cassandra.java:774578-796573
/incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/Cassandra.java:810145-834239,834349-834350
/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/Cassandra.java:888872-903502
-/incubator/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:911237-919580
+/incubator/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:911237-919592
/incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/Cassandra.java:749219-768588
/incubator/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:749219-904544
Propchange:
incubator/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Mar 5 20:33:47 2010
@@ -1,7 +1,7 @@
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/column_t.java:774578-792198
/incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/Column.java:810145-834239,834349-834350
/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/Column.java:888872-903502
-/incubator/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:911237-919580
+/incubator/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:911237-919592
/incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/Column.java:749219-794428
/incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/column_t.java:749219-768588
/incubator/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:749219-904544
Propchange:
incubator/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Mar 5 20:33:47 2010
@@ -1,6 +1,6 @@
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java:774578-796573
/incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java:810145-834239,834349-834350
/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java:888872-903502
-/incubator/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:911237-919580
+/incubator/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:911237-919592
/incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java:749219-768588
/incubator/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:749219-904544
Propchange:
incubator/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Mar 5 20:33:47 2010
@@ -1,5 +1,5 @@
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/NotFoundException.java:774578-796573
/incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/NotFoundException.java:810145-834239,834349-834350
/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/NotFoundException.java:888872-903502
-/incubator/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:911237-919580
+/incubator/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:911237-919592
/incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/NotFoundException.java:749219-768588
Propchange:
incubator/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Mar 5 20:33:47 2010
@@ -1,7 +1,7 @@
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/superColumn_t.java:774578-792198
/incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/SuperColumn.java:810145-834239,834349-834350
/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/SuperColumn.java:888872-903502
-/incubator/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:911237-919580
+/incubator/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:911237-919592
/incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/SuperColumn.java:749219-794428
/incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/superColumn_t.java:749219-768588
/incubator/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:749219-904544
Modified:
incubator/cassandra/trunk/src/java/org/apache/cassandra/hadoop/ColumnFamilyInputFormat.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/hadoop/ColumnFamilyInputFormat.java?rev=919594&r1=919593&r2=919594&view=diff
==============================================================================
---
incubator/cassandra/trunk/src/java/org/apache/cassandra/hadoop/ColumnFamilyInputFormat.java
(original)
+++
incubator/cassandra/trunk/src/java/org/apache/cassandra/hadoop/ColumnFamilyInputFormat.java
Fri Mar 5 20:33:47 2010
@@ -22,125 +22,51 @@
import java.io.IOException;
-import java.net.InetAddress;
import java.util.*;
import org.apache.log4j.Logger;
-import org.apache.commons.lang.ArrayUtils;
import org.apache.cassandra.config.DatabaseDescriptor;
import org.apache.cassandra.db.IColumn;
-import org.apache.cassandra.dht.Range;
-import org.apache.cassandra.dht.Token;
-import org.apache.cassandra.gms.FailureDetector;
-import org.apache.cassandra.net.Message;
-import org.apache.cassandra.net.MessagingService;
import org.apache.cassandra.service.StorageService;
import org.apache.cassandra.thrift.*;
-import org.apache.cassandra.utils.FBUtilities;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.mapreduce.*;
-import org.apache.thrift.TDeserializer;
import org.apache.thrift.TException;
-import org.apache.thrift.TSerializer;
import org.apache.thrift.protocol.TBinaryProtocol;
-import org.apache.thrift.protocol.TJSONProtocol;
import org.apache.thrift.transport.TSocket;
import org.apache.thrift.transport.TTransportException;
+/**
+ * Hadoop InputFormat allowing map/reduce against Cassandra rows within one
ColumnFamily.
+ *
+ * At minimum, you need to set the CF and predicate (description of columns to
extract from each row)
+ * in your Hadoop job Configuration. The ConfigHelper class is provided to
make this
+ * simple:
+ * ConfigHelper.setColumnFamily
+ * ConfigHelper.setSlicePredicate
+ *
+ * You can also configure the number of rows per InputSplit with
+ * ConfigHelper.setInputSplitSize
+ * This should be "as big as possible, but no bigger." Each InputSplit is
read from Cassandra
+ * with a single get_slice_range query, and the per-call overhead of
get_slice_range is high,
+ * so larger split sizes are better -- but if it is too large, you will run
out of memory,
+ * since no paging is done (yet).
+ *
+ * The default split size is 4096 rows.
+ */
public class ColumnFamilyInputFormat extends InputFormat<String,
SortedMap<byte[], IColumn>>
{
- private static final String KEYSPACE_CONFIG = "cassandra.input.keyspace";
- private static final String COLUMNFAMILY_CONFIG =
"cassandra.input.columnfamily";
- private static final String PREDICATE_CONFIG = "cassandra.input.predicate";
- private static final String INPUT_SPLIT_SIZE_CONFIG =
"cassandra.input.split.size";
private static final Logger logger =
Logger.getLogger(StorageService.class);
- private String keyspace;
- private String columnFamily;
- private SlicePredicate predicate;
-
- public static void setColumnFamily(Job job, String keyspace, String
columnFamily)
- {
- if (keyspace == null)
- {
- throw new UnsupportedOperationException("keyspace may not be
null");
- }
- if (columnFamily == null)
- {
- throw new UnsupportedOperationException("columnfamily may not be
null");
- }
- try
- {
- ThriftValidation.validateColumnFamily(keyspace, columnFamily);
- }
- catch (InvalidRequestException e)
- {
- throw new RuntimeException(e);
- }
- Configuration conf = job.getConfiguration();
- conf.set(KEYSPACE_CONFIG, keyspace);
- conf.set(COLUMNFAMILY_CONFIG, columnFamily);
- }
-
- /**
- * Set the size of the input split.
- * This affects the number of maps created, if the number is too small
- * the overhead of each map will take up the bulk of the job time.
- *
- * @param job Job you are about to run.
- * @param splitsize Size of the input split
- */
- public static void setInputSplitSize(Job job, int splitsize)
- {
- job.getConfiguration().setInt(INPUT_SPLIT_SIZE_CONFIG, splitsize);
- }
-
- public static void setSlicePredicate(Job job, SlicePredicate predicate)
- {
- Configuration conf = job.getConfiguration();
- conf.set(PREDICATE_CONFIG, predicateToString(predicate));
- }
-
- private static String predicateToString(SlicePredicate predicate)
- {
- assert predicate != null;
- // this is so awful it's kind of cool!
- TSerializer serializer = new TSerializer(new TJSONProtocol.Factory());
- try
- {
- return serializer.toString(predicate, "UTF-8");
- }
- catch (TException e)
- {
- throw new RuntimeException(e);
- }
- }
-
- private SlicePredicate predicateFromString(String st)
- {
- assert st != null;
- TDeserializer deserializer = new TDeserializer(new
TJSONProtocol.Factory());
- SlicePredicate predicate = new SlicePredicate();
- try
- {
- deserializer.deserialize(predicate, st, "UTF-8");
- }
- catch (TException e)
- {
- throw new RuntimeException(e);
- }
- return predicate;
- }
-
- private void validateConfiguration()
+ private void validateConfiguration(Configuration conf)
{
- if (keyspace == null || columnFamily == null)
+ if (ConfigHelper.getKeyspace(conf) == null ||
ConfigHelper.getColumnFamily(conf) == null)
{
throw new UnsupportedOperationException("you must set the keyspace
and columnfamily with setColumnFamily()");
}
- if (predicate == null)
+ if (ConfigHelper.getSlicePredicate(conf) == null)
{
throw new UnsupportedOperationException("you must set the
predicate with setPredicate");
}
@@ -149,15 +75,13 @@
public List<InputSplit> getSplits(JobContext context) throws IOException
{
Configuration conf = context.getConfiguration();
- keyspace = conf.get(KEYSPACE_CONFIG);
- columnFamily = conf.get(COLUMNFAMILY_CONFIG);
- predicate = predicateFromString(conf.get(PREDICATE_CONFIG));
- validateConfiguration();
+
+ validateConfiguration(conf);
// cannonical ranges and nodes holding replicas
- List<TokenRange> masterRangeNodes = getRangeMap();
+ List<TokenRange> masterRangeNodes =
getRangeMap(ConfigHelper.getKeyspace(conf));
- int splitsize =
context.getConfiguration().getInt(INPUT_SPLIT_SIZE_CONFIG, 16384);
+ int splitsize =
ConfigHelper.getInputSplitSize(context.getConfiguration());
// cannonical ranges, split into pieces:
// for each range, pick a live owner and ask it to compute bite-sized
splits
@@ -179,7 +103,7 @@
int i = 1;
for ( ; i < tokens.size(); i++)
{
- ColumnFamilySplit split = new ColumnFamilySplit(keyspace,
columnFamily, predicate, tokens.get(i - 1), tokens.get(i), endpoints);
+ ColumnFamilySplit split = new ColumnFamilySplit(tokens.get(i -
1), tokens.get(i), endpoints);
logger.debug("adding " + split);
splits.add(split);
}
@@ -216,7 +140,7 @@
return splits;
}
- private List<TokenRange> getRangeMap() throws IOException
+ private List<TokenRange> getRangeMap(String keyspace) throws IOException
{
TSocket socket = new
TSocket(DatabaseDescriptor.getSeeds().iterator().next().getHostAddress(),
DatabaseDescriptor.getRpcPort());
Modified:
incubator/cassandra/trunk/src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordReader.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordReader.java?rev=919594&r1=919593&r2=919594&view=diff
==============================================================================
---
incubator/cassandra/trunk/src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordReader.java
(original)
+++
incubator/cassandra/trunk/src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordReader.java
Fri Mar 5 20:33:47 2010
@@ -38,6 +38,7 @@
import org.apache.cassandra.thrift.Column;
import org.apache.cassandra.thrift.SuperColumn;
import org.apache.cassandra.utils.Pair;
+import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.mapreduce.InputSplit;
import org.apache.hadoop.mapreduce.RecordReader;
import org.apache.hadoop.mapreduce.TaskAttemptContext;
@@ -47,11 +48,13 @@
public class ColumnFamilyRecordReader extends RecordReader<String,
SortedMap<byte[], IColumn>>
{
- private static final int ROWS_PER_RANGE_QUERY = 1024;
-
private ColumnFamilySplit split;
private RowIterator iter;
private Pair<String, SortedMap<byte[], IColumn>> currentRow;
+ private SlicePredicate predicate;
+ private int rowCount;
+ private String cfName;
+ private String keyspace;
public void close() {}
@@ -73,6 +76,11 @@
public void initialize(InputSplit split, TaskAttemptContext context)
throws IOException
{
this.split = (ColumnFamilySplit) split;
+ Configuration conf = context.getConfiguration();
+ predicate = ConfigHelper.getSlicePredicate(conf);
+ rowCount = ConfigHelper.getInputSplitSize(conf);
+ cfName = ConfigHelper.getColumnFamily(conf);
+ keyspace = ConfigHelper.getKeyspace(conf);
iter = new RowIterator();
}
@@ -89,7 +97,7 @@
private List<KeySlice> rows;
private int i = 0;
- private AbstractType comparator =
DatabaseDescriptor.getComparator(split.getTable(), split.getColumnFamily());
+ private AbstractType comparator =
DatabaseDescriptor.getComparator(keyspace, cfName);
private void maybeInit()
{
@@ -107,14 +115,14 @@
{
throw new RuntimeException(e);
}
- KeyRange keyRange = new KeyRange(ROWS_PER_RANGE_QUERY)
+ KeyRange keyRange = new KeyRange(rowCount)
.setStart_token(split.getStartToken())
.setEnd_token(split.getEndToken());
try
{
- rows = client.get_range_slices(split.getTable(),
- new
ColumnParent(split.getColumnFamily()),
- split.getPredicate(),
+ rows = client.get_range_slices(keyspace,
+ new ColumnParent(cfName),
+ predicate,
keyRange,
ConsistencyLevel.ONE);
}
@@ -196,7 +204,7 @@
private IColumn unthriftifySuper(SuperColumn super_column)
{
- AbstractType subComparator =
DatabaseDescriptor.getSubComparator(split.getTable(), split.getColumnFamily());
+ AbstractType subComparator =
DatabaseDescriptor.getSubComparator(keyspace, cfName);
org.apache.cassandra.db.SuperColumn sc = new
org.apache.cassandra.db.SuperColumn(super_column.name, subComparator);
for (Column column : super_column.columns)
{
Modified:
incubator/cassandra/trunk/src/java/org/apache/cassandra/hadoop/ColumnFamilySplit.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/hadoop/ColumnFamilySplit.java?rev=919594&r1=919593&r2=919594&view=diff
==============================================================================
---
incubator/cassandra/trunk/src/java/org/apache/cassandra/hadoop/ColumnFamilySplit.java
(original)
+++
incubator/cassandra/trunk/src/java/org/apache/cassandra/hadoop/ColumnFamilySplit.java
Fri Mar 5 20:33:47 2010
@@ -39,20 +39,14 @@
{
private String startToken;
private String endToken;
- private String table;
- private String columnFamily;
private String[] dataNodes;
- private SlicePredicate predicate;
- public ColumnFamilySplit(String table, String columnFamily, SlicePredicate
predicate, String startToken, String endToken, String[] dataNodes)
+ public ColumnFamilySplit(String startToken, String endToken, String[]
dataNodes)
{
assert startToken != null;
assert endToken != null;
this.startToken = startToken;
this.endToken = endToken;
- this.columnFamily = columnFamily;
- this.predicate = predicate;
- this.table = table;
this.dataNodes = dataNodes;
}
@@ -66,21 +60,6 @@
return endToken;
}
- public String getTable()
- {
- return table;
- }
-
- public String getColumnFamily()
- {
- return columnFamily;
- }
-
- public SlicePredicate getPredicate()
- {
- return predicate;
- }
-
// getLength and getLocations satisfy the InputSplit abstraction
public long getLength()
@@ -97,18 +76,12 @@
// This should only be used by KeyspaceSplit.read();
protected ColumnFamilySplit() {}
- private static final TSerializer tSerializer = new TSerializer(new
TBinaryProtocol.Factory());
- private static final TDeserializer tDeserializer = new TDeserializer(new
TBinaryProtocol.Factory());
-
// These three methods are for serializing and deserializing
// KeyspaceSplits as needed by the Writable interface.
public void write(DataOutput out) throws IOException
{
- out.writeUTF(table);
- out.writeUTF(columnFamily);
out.writeUTF(startToken);
out.writeUTF(endToken);
- FBUtilities.serialize(tSerializer, predicate, out);
out.writeInt(dataNodes.length);
for (String endPoint : dataNodes)
@@ -119,12 +92,8 @@
public void readFields(DataInput in) throws IOException
{
- table = in.readUTF();
- columnFamily = in.readUTF();
startToken = in.readUTF();
endToken = in.readUTF();
- predicate = new SlicePredicate();
- FBUtilities.deserialize(tDeserializer, predicate, in);
int numOfEndPoints = in.readInt();
dataNodes = new String[numOfEndPoints];
@@ -140,10 +109,7 @@
return "ColumnFamilySplit{" +
"startToken='" + startToken + '\'' +
", endToken='" + endToken + '\'' +
- ", table='" + table + '\'' +
- ", columnFamily='" + columnFamily + '\'' +
", dataNodes=" + (dataNodes == null ? null :
Arrays.asList(dataNodes)) +
- ", predicate=" + predicate +
'}';
}