Home | About | Sematext search-lucene.com search-hadoop.com
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB
 Search Hadoop and all its subprojects:

Switch to Threaded View
Kafka >> mail # user >> Error in Kafka Producer


Copy link to this message
-
Re: Error in Kafka Producer
Hello,

In your case the key's type is String, not byte array, so you need to
override the following property:

key.serializer.class -> "kafka.serializer.StringEncoder"

Details of the producer configs can be found:

http://kafka.apache.org/documentation.html#producerconfigs
On Wed, Jan 22, 2014 at 4:51 PM, Cassa L <[EMAIL PROTECTED]> wrote:

> Hi all,
>   I am a new user of Kafka. I tried Java example of it and it worked great.
> Now when I tried to write to  a Producer (Java) and send ByteArray to it as
> a data, I get ClassCastException as below
>
> java.lang.ClassCastException: java.lang.String cannot be cast to [B
>     at kafka.serializer.DefaultEncoder.toBytes(Encoder.scala:34)
>     at
>
> kafka.producer.async.DefaultEventHandler$$anonfun$serialize$1.apply(DefaultEventHandler.scala:128)
>     at
>
> kafka.producer.async.DefaultEventHandler$$anonfun$serialize$1.apply(DefaultEventHandler.scala:125)
>     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.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:34)
>     at scala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:33)
>     at
> scala.collection.TraversableLike$class.map(TraversableLike.scala:233)
>     at scala.collection.mutable.WrappedArray.map(WrappedArray.scala:33)
>     at
>
> kafka.producer.async.DefaultEventHandler.serialize(DefaultEventHandler.scala:125)
>     at
>
> kafka.producer.async.DefaultEventHandler.handle(DefaultEventHandler.scala:52)
>     at kafka.producer.Producer.send(Producer.scala:76)
>     at kafka.javaapi.producer.Producer.send(Producer.scala:33)
>
> =====================
> I am setting up Kafka properties as below -
>
>         props.put("serializer.class", "kafka.serializer.DefaultEncoder");
>         props.put("partitioner.class",
> "kafka.producer.DefaultPartitioner");
>
> =====================
> And I am sending data to producer as mentioned below -
>         KeyedMessage<String,byte[]> data = new KeyedMessage<String, byte[]>
> ("Topic", key, bytearray  );
>         producer.send(data);
>
> Can someone help me understand where actually this ClassCast problem is
> occurring?
>
> ..lCassa
>

--
-- Guozhang

 
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB