You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Andrew Milkowski (JIRA)" <ji...@apache.org> on 2013/06/05 18:41:20 UTC

[jira] [Comment Edited] (KAFKA-933) Hadoop example running DataGenerator causes kafka.message.Message cannot be cast to [B exception

    [ https://issues.apache.org/jira/browse/KAFKA-933?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13676093#comment-13676093 ] 

Andrew Milkowski edited comment on KAFKA-933 at 6/5/13 4:41 PM:
----------------------------------------------------------------

workaround was to patch DataGenerator to send the message string, instead the Message object 


public void run() throws Exception {

		List<KeyedMessage<Integer, String>> list = new ArrayList<KeyedMessage<Integer, String>>();
		for (int i = 0; i < 50; i++) {
			Long timestamp = RANDOM.nextLong();
			if (timestamp < 0) timestamp = -timestamp;
			String messageStr = timestamp.toString();
			log.info(" creating message: " + messageStr);
			list.add(new KeyedMessage<Integer, String>(topic, null, messageStr));
		}

		log.info(" send " + list.size() + " " + topic + " count events to " + uri);
		producer.send(list);
		producer.close();
		
		generateOffsets();
	}
                
      was (Author: andrewmilkowski):
    workaround was to patch DataGenerator to send the message string, instead the Message object 

locally I patched DataGenerator

public void run() throws Exception {

		List<KeyedMessage<Integer, String>> list = new ArrayList<KeyedMessage<Integer, String>>();
		for (int i = 0; i < 50; i++) {
			Long timestamp = RANDOM.nextLong();
			if (timestamp < 0) timestamp = -timestamp;
			String messageStr = timestamp.toString();
			log.info(" creating message: " + messageStr);
			list.add(new KeyedMessage<Integer, String>(topic, null, messageStr));
		}

		log.info(" send " + list.size() + " " + topic + " count events to " + uri);
		producer.send(list);
		producer.close();
		
		generateOffsets();
	}
                  
> Hadoop example running DataGenerator causes kafka.message.Message cannot be cast to [B exception
> ------------------------------------------------------------------------------------------------
>
>                 Key: KAFKA-933
>                 URL: https://issues.apache.org/jira/browse/KAFKA-933
>             Project: Kafka
>          Issue Type: Bug
>          Components: contrib
>    Affects Versions: 0.8
>         Environment: [amilkowski@localhost ~]$ uname -a
> Linux localhost.localdomain 3.9.4-200.fc18.x86_64 #1 SMP Fri May 24 20:10:49 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
> [amilkowski@localhost ~]$ 
>            Reporter: Andrew Milkowski
>            Priority: Minor
>              Labels: hadoop
>             Fix For: 0.8
>
>
> Working of git master codebase
> and following instructions at
> https://github.com/apache/kafka/blob/trunk/contrib/hadoop-consumer/README
> https://github.com/apache/kafka
> when running
> ./run-class.sh kafka.etl.impl.DataGenerator test/test.properties
> an exception is thrown
> Exception in thread "main" java.lang.ClassCastException: kafka.message.Message cannot be cast to [B
> 	at kafka.serializer.DefaultEncoder.toBytes(Encoder.scala:34)
> 	at kafka.producer.async.DefaultEventHandler$$anonfun$serialize$1.apply(DefaultEventHandler.scala:129)
> 	at kafka.producer.async.DefaultEventHandler$$anonfun$serialize$1.apply(DefaultEventHandler.scala:124)
> 	at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
> 	at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
> 	at scala.collection.Iterator$class.foreach(Iterator.scala:772)
> 	at scala.collection.JavaConversions$JIteratorWrapper.foreach(JavaConversions.scala:573)
> 	at scala.collection.IterableLike$class.foreach(IterableLike.scala:73)
> 	at scala.collection.JavaConversions$JListWrapper.foreach(JavaConversions.scala:615)
> 	at scala.collection.TraversableLike$class.map(TraversableLike.scala:233)
> 	at scala.collection.JavaConversions$JListWrapper.map(JavaConversions.scala:615)
> 	at kafka.producer.async.DefaultEventHandler.serialize(DefaultEventHandler.scala:124)
> 	at kafka.producer.async.DefaultEventHandler.handle(DefaultEventHandler.scala:54)
> 	at kafka.producer.Producer.send(Producer.scala:74)
> 	at kafka.javaapi.producer.Producer.send(Producer.scala:41)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira