My Hadoop TaskTracker is using the Cassandra CplumnFamilyInputFormat, and 
appears to be finding records (the data is serialized below in the log output),
but the cassandra Column class is throwing a validation exception indicating 
"Required field 'clock' was not present!".

My Cassandra cluster version is 0.7-beta2 and i also loaded the same JAR in my 
hadoop configuration.

So does this point to my client side (hadoop task) possibly using the wrong 
cassandra version?


MapAttempt TASK_TYPE="MAP" TASKID="task_201010140951_0020_m_000006" 
TASK_ATTEMPT_ID="attempt_201010140951_0020_m_000006_3" 
START_TIME="1287095149722" 
TRACKER_NAME="tracker_kv-app06\.dev\.real\.com:localhost\.localdomain/127\.0\.0\.1:54957"
 HTTP_PORT="50060" .
MapAttempt TASK_TYPE="MAP" TASKID="task_201010140951_0020_m_000006" 
TASK_ATTEMPT_ID="attempt_201010140951_0020_m_000006_3" TASK_STATUS="FAILED" 
FINISH_TIME="1287095154592" HOSTNAME="kv-app06\.dev\.real\.com" 
ERROR="java\.lang\.RuntimeException: 
org\.apache\.thrift\.protocol\.TProtocolException: Required field 'clock' was 
not present! Struct: Column(name:69 64, value:6D 65 73 73 61 67 65 2D 70 72 65 
66 65 72 65 6E 63 65 73, clock:null)
        at 
org\.apache\.cassandra\.hadoop\.ColumnFamilyRecordReader$RowIterator\.maybeInit(ColumnFamilyRecordReader\.java:266)
        at 
org\.apache\.cassandra\.hadoop\.ColumnFamilyRecordReader$RowIterator\.computeNext(ColumnFamilyRecordReader\.java:281)
        at 
org\.apache\.cassandra\.hadoop\.ColumnFamilyRecordReader$RowIterator\.computeNext(ColumnFamilyRecordReader\.java:178)
        at 
com\.google\.common\.collect\.AbstractIterator\.tryToComputeNext(AbstractIterator\.java:136)
        at 
com\.google\.common\.collect\.AbstractIterator\.hasNext(AbstractIterator\.java:131)
        at 
org\.apache\.cassandra\.hadoop\.ColumnFamilyRecordReader\.nextKeyValue(ColumnFamilyRecordReader\.java:137)
        at 
org\.apache\.hadoop\.mapred\.MapTask$NewTrackingRecordReader\.nextKeyValue(MapTask\.java:423)
        at 
org\.apache\.hadoop\.mapreduce\.MapContext\.nextKeyValue(MapContext\.java:67)
        at org\.apache\.hadoop\.mapreduce\.Mapper\.run(Mapper\.java:143)
        at org\.apache\.hadoop\.mapred\.MapTask\.runNewMapper(MapTask\.java:621)
        at org\.apache\.hadoop\.mapred\.MapTask\.run(MapTask\.java:305)
        at org\.apache\.hadoop\.mapred\.Child\.main(Child\.java:170)
Caused by: org\.apache\.thrift\.protocol\.TProtocolException: Required field 
'clock' was not present! Struct: Column(name:69 64, value:6D 65 73 73 61 67 65 
2D 70 72 65 66 65 72 65 6E 63 65 73, clock:null)
        at org\.apache\.cassandra\.thrift\.Column\.validate(Column\.java:615)
        at org\.apache\.cassandra\.thrift\.Column\.read(Column\.java:527)
        at 
org\.apache\.cassandra\.thrift\.ColumnOrSuperColumn\.read(ColumnOrSuperColumn\.java:351)
        at org\.apache\.cassandra\.thrift\.KeySlice\.read(KeySlice\.java:391)
        at 
org\.apache\.cassandra\.thrift\.Cassandra$get_range_slices_result\.read(Cassandra\.java:11859)
        at 
org\.apache\.cassandra\.thrift\.Cassandra$Client\.recv_get_range_slices(Cassandra\.java:743)
        at 
org\.apache\.cassandra\.thrift\.Cassandra$Client\.get_range_slices(Cassandra\.java:715)
        at 
org\.apache\.cassandra\.hadoop\.ColumnFamilyRecordReader$RowIterator\.maybeInit(ColumnFamilyRecordReader\.java:244)

Reply via email to