diff --git a/examples/hadoop_cql3_word_count/README.txt b/examples/hadoop_cql3_word_count/README.txt index f984b0294f0e..e01632b07cea 100644 --- a/examples/hadoop_cql3_word_count/README.txt +++ b/examples/hadoop_cql3_word_count/README.txt @@ -36,8 +36,10 @@ Read the code in src/ for more details. The word_count_counters example sums the counter columns for a row. The output is written to a text file in /tmp/word_count_counters. -*If you want to point wordcount at a real cluster, modify the seed -and listenaddress settings accordingly. +*It is recommended to turn off vnodes when running Cassandra with hadoop. +This is done by setting "num_tokens: 1" in cassandra.yaml. If you want to +point wordcount at a real cluster, modify the seed and listenaddress +settings accordingly. Troubleshooting diff --git a/examples/hadoop_cql3_word_count/conf/log4j.properties b/examples/hadoop_cql3_word_count/conf/log4j.properties index 70f7657591e9..508d60fa2d0a 100644 --- a/examples/hadoop_cql3_word_count/conf/log4j.properties +++ b/examples/hadoop_cql3_word_count/conf/log4j.properties @@ -15,7 +15,7 @@ # specific language governing permissions and limitations # under the License. -log4j.rootLogger=DEBUG,stdout,F +log4j.rootLogger=INFO,stdout,F #stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender diff --git a/examples/hadoop_cql3_word_count/src/WordCountSetup.java b/examples/hadoop_cql3_word_count/src/WordCountSetup.java index ebf7485d6b60..cffe2724c14a 100644 --- a/examples/hadoop_cql3_word_count/src/WordCountSetup.java +++ b/examples/hadoop_cql3_word_count/src/WordCountSetup.java @@ -70,7 +70,10 @@ private static void setupKeyspace(Cassandra.Iface client) client.execute_cql3_query(ByteBufferUtil.bytes(query), Compression.NONE, ConsistencyLevel.ONE); - int magnitude = client.describe_ring(WordCount.KEYSPACE).size(); + String verifyQuery = "select count(*) from system.peers"; + CqlResult result = client.execute_cql3_query(ByteBufferUtil.bytes(verifyQuery), Compression.NONE, ConsistencyLevel.ONE); + + long magnitude = ByteBufferUtil.toLong(result.rows.get(0).columns.get(0).value); try { Thread.sleep(1000 * magnitude); diff --git a/examples/hadoop_word_count/README.txt b/examples/hadoop_word_count/README.txt index cf8a34469e5c..9a9390836651 100644 --- a/examples/hadoop_word_count/README.txt +++ b/examples/hadoop_word_count/README.txt @@ -37,8 +37,10 @@ Read the code in src/ for more details. The word_count_counters example sums the counter columns for a row. The output is written to a text file in /tmp/word_count_counters. -*If you want to point wordcount at a real cluster, modify the seed -and listenaddress settings accordingly. +*It is recommended to turn off vnodes when running Cassandra with hadoop. +This is done by setting "num_tokens: 1" in cassandra.yaml. If you want to +point wordcount at a real cluster, modify the seed and listenaddress +settings accordingly. Troubleshooting diff --git a/examples/hadoop_word_count/conf/log4j.properties b/examples/hadoop_word_count/conf/log4j.properties index 70f7657591e9..508d60fa2d0a 100644 --- a/examples/hadoop_word_count/conf/log4j.properties +++ b/examples/hadoop_word_count/conf/log4j.properties @@ -15,7 +15,7 @@ # specific language governing permissions and limitations # under the License. -log4j.rootLogger=DEBUG,stdout,F +log4j.rootLogger=INFO,stdout,F #stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender diff --git a/examples/hadoop_word_count/src/WordCountSetup.java b/examples/hadoop_word_count/src/WordCountSetup.java index e2223272831c..6dd2ba762879 100644 --- a/examples/hadoop_word_count/src/WordCountSetup.java +++ b/examples/hadoop_word_count/src/WordCountSetup.java @@ -176,10 +176,33 @@ private static void setupKeyspace(Cassandra.Iface client) throws TException, Inv KsDef ksDef = new KsDef(WordCount.KEYSPACE, "org.apache.cassandra.locator.SimpleStrategy", cfDefList); ksDef.putToStrategy_options("replication_factor", "1"); client.system_add_keyspace(ksDef); - int magnitude = client.describe_ring(WordCount.KEYSPACE).size(); + + int magnitude = getNumberOfHosts(client); Uninterruptibles.sleepUninterruptibly(magnitude, TimeUnit.SECONDS); } + private static int getNumberOfHosts(Cassandra.Iface client) + throws InvalidRequestException, UnavailableException, TimedOutException, TException + { + client.set_keyspace("system"); + SlicePredicate predicate = new SlicePredicate(); + SliceRange sliceRange = new SliceRange(); + sliceRange.setStart(new byte[0]); + sliceRange.setFinish(new byte[0]); + predicate.setSlice_range(sliceRange); + + KeyRange keyrRange = new KeyRange(); + keyrRange.setStart_key(new byte[0]); + keyrRange.setEnd_key(new byte[0]); + //keyrRange.setCount(100); + + ColumnParent parent = new ColumnParent("peers"); + + List ls = client.get_range_slices(parent, predicate, keyrRange, ConsistencyLevel.ONE); + + return ls.size(); + } + private static Cassandra.Iface createConnection() throws TTransportException { if (System.getProperty("cassandra.host") == null || System.getProperty("cassandra.port") == null)