Hi,

This error is typically tied to a classpath issue - make sure you have only one elasticsearch-hadoop jar version in your classpath and on the Hadoop cluster.

On 12/12/14 5:56 PM, Kamil Dziublinski wrote:
Hi guys,

I am trying to run a MR job that reads from HDFS and stores into ElasticSearch 
cluster.

I am getting following error:
Error: org.elasticsearch.hadoop.serialization.EsHadoopSerializationException: 
Cannot handle type [class
org.apache.hadoop.io.MapWritable], instance 
[org.apache.hadoop.io.MapWritable@3879429f] using writer
[org.elasticsearch.hadoop.mr.WritableValueWriter@3fc8f1a2]
         at 
org.elasticsearch.hadoop.serialization.builder.ContentBuilder.value(ContentBuilder.java:259)
         at 
org.elasticsearch.hadoop.serialization.bulk.TemplatedBulk.doWriteObject(TemplatedBulk.java:68)
         at 
org.elasticsearch.hadoop.serialization.bulk.TemplatedBulk.write(TemplatedBulk.java:55)
         at 
org.elasticsearch.hadoop.rest.RestRepository.writeToIndex(RestRepository.java:130)
         at 
org.elasticsearch.hadoop.mr.EsOutputFormat$EsRecordWriter.write(EsOutputFormat.java:159)
         at 
org.apache.hadoop.mapred.MapTask$NewDirectOutputCollector.write(MapTask.java:635)
         at 
org.apache.hadoop.mapreduce.task.TaskInputOutputContextImpl.write(TaskInputOutputContextImpl.java:89)
         at 
org.apache.hadoop.mapreduce.lib.map.WrappedMapper$Context.write(WrappedMapper.java:112)
         at 
com.teradata.cybershot.mr.es.userprofile.EsOnlineProfileMapper.map(EsOnlineProfileMapper.java:35)
         at 
com.teradata.cybershot.mr.es.userprofile.EsOnlineProfileMapper.map(EsOnlineProfileMapper.java:20)
         at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145)
         at 
org.apache.hadoop.mapreduce.lib.input.DelegatingMapper.run(DelegatingMapper.java:55)
         at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764)
         at org.apache.hadoop.mapred.MapTask.run(MapTask.java:340)
         at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:167)
         at java.security.AccessController.doPrivileged(Native Method)
         at javax.security.auth.Subject.doAs(Subject.java:415)
         at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1554)
         at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:162)

We are using cdh5.1.0 and es-hadoop dependency 2.0.2

I have this set in my job configuration:
job.setOutputFormatClass(EsOutputFormat.class);
job.setMapOutputValueClass(MapWritable.class);

together with nodes and resource props like it is described on ES page.

in my mapper I simply write: context.write(NullWritable.get(), esMap); where 
esMap is org.apache.hadoop.io.MapWritable.

I do not know why it's failing as everything looks ok to me. Maybe you will 
have some ideas.

Thanks in advance,
Kamil.

--
You received this message because you are subscribed to the Google Groups 
"elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to
elasticsearch+unsubscr...@googlegroups.com 
<mailto:elasticsearch+unsubscr...@googlegroups.com>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/elasticsearch/71c57e2a-2210-47c0-aa9e-cbbf164ef05b%40googlegroups.com
<https://groups.google.com/d/msgid/elasticsearch/71c57e2a-2210-47c0-aa9e-cbbf164ef05b%40googlegroups.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.

--
Costin

--
You received this message because you are subscribed to the Google Groups 
"elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elasticsearch+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/548B43CD.8080909%40gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to