Hello,
I'm trying to access a Cassandra 0.7 cluster in a hadoop map-reduce job (hadoop 0.20.2) and
seeing a thrift library conflict. Hadoop uses an older version of thrift than hector 0.7,
and this older version is getting picked up by my job, causing the following exception:
FATAL org.apache.hadoop.mapred.TaskTracker: Error running child :
java.lang.NoSuchMethodError: org.apache.thrift.protocol.TProtocol.writeBinary(Ljava/nio/ByteBuffer;)V
The ByteBuffer overload of that method is not in the older thrift library.
I have verified that the correct version of thrift (libthrift-0.5.0.jar) is in my map-reduce
job's jar. However its using the older version in the hadoop library.
Here are a couple of hadoop tickets on the issue:
https://issues.apache.org/jira/browse/MAPREDUCE-1700
https://issues.apache.org/jira/browse/MAPREDUCE-1938
Anyone find a way around this? (besides modifying the hadoop cluster library which is not
an option for me).
Thanks,
-Curt
|