2013-07-03 38 views
2

我正在从CF读取和写入大量数据。Cassandra 1.2.5 - 无效的UTF8字节

一段时间后,我得到以下错误:

INFO [MemoryMeter:1] 2013-07-03 09:41:34,438 Memtable.java (line 238) CFS(Keyspace='amlear', ColumnFamily='tmp2_rpt_rptStats_popkeywrd_sp_G') liveRatio is 4.12192 (just-counted was 4.12192). calculation took 168ms for 2048 columns 
ERROR [ReadStage:706] 2013-07-03 09:41:56,187 CassandraDaemon.java (line 175) Exception in thread Thread[ReadStage:706,5,main] 
java.lang.RuntimeException: org.apache.cassandra.db.marshal.MarshalException: invalid UTF8 bytes 37464646464646464646464638333943c08074656c65666f6e6f73206170617261746f7320792061636365736f72696f73 
    at org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:1582) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
    at java.lang.Thread.run(Thread.java:662) 
Caused by: org.apache.cassandra.db.marshal.MarshalException: invalid UTF8 bytes 37464646464646464646464638333943c08074656c65666f6e6f73206170617261746f7320792061636365736f72696f73 
    at org.apache.cassandra.db.marshal.UTF8Type.getString(UTF8Type.java:54) 
    at org.apache.cassandra.dht.AbstractBounds.format(AbstractBounds.java:103) 
    at org.apache.cassandra.dht.AbstractBounds.getString(AbstractBounds.java:96) 
    at org.apache.cassandra.db.ColumnFamilyStore.getSequentialIterator(ColumnFamilyStore.java:1387) 
    at org.apache.cassandra.db.ColumnFamilyStore.getRangeSlice(ColumnFamilyStore.java:1443) 
    at org.apache.cassandra.service.RangeSliceVerbHandler.executeLocally(RangeSliceVerbHandler.java:46) 
    at org.apache.cassandra.service.StorageProxy$LocalRangeSliceRunnable.runMayThrow(StorageProxy.java:1076) 
    at org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:1578) 
    ... 3 more 

注意,近日笔者从卡桑德拉1.1.4升级到1.2.5卡桑德拉(我不知道,如果是相关与否) 的java版本:1.6.0_32

有没有人有任何想法如何解决这个问题?

+0

你能分享一些信息,比如你的CF结构,代码片段等 – abhi

回答

1

Caused by: org.apache.cassandra.db.marshal.MarshalException: invalid UTF8 bytes 37464646464646464646464638333943c08074656c65666f6e6f73206170617261746f7320792061636365736f72696f73

您的中间有无效的UTF-8字节。

具体来说,从第17个字节开始的2字节序列c080无效。不知道什么字符的意图,可能是NUL字符(它应该是UTF-8中的00)。 UTF-8中的第一个2字节序列是c280,对应于Unicode U+0080

Broken UTF-8 encoder?

相关问题