You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hbase.apache.org by Ted Yu <yu...@gmail.com> on 2017/11/24 11:06:40 UTC

Re: java.lang.IllegalStateException: Invalid currKeyLen 33554496

What if you add '-m' to the HFile command ?

Any encoding you use for the underlying table ?

Did you use table API to write data or thru bulk load ?

Cheers

On Thu, Nov 23, 2017 at 10:37 PM, Weizhan Zeng <qg...@gmail.com> wrote:

>
> Hi,guys
>
> I user hbase-1.2.6 , and I found a strange  problem, the key is very short
> but get “ Invalid currKeyLen 33554496 "
>
> Is anyone had met that ?
>
>
> hbase(main):018:0> get 'test', '20#1960620#20171026'
> COLUMN                                         CELL
>
> ERROR: java.io.IOException: java.lang.IllegalStateException: Invalid
> currKeyLen 33554496 or currValueLen 706. Block offset: 3773220580287066162,
> block length: 158499, position: 0 (without header).
>         at org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.
> handleException(HRegion.java:5600)
>         at org.apache.hadoop.hbase.regionserver.HRegion$
> RegionScannerImpl.<init>(HRegion.java:5570)
>         at org.apache.hadoop.hbase.regionserver.HRegion.
> instantiateRegionScanner(HRegion.java:2574)
>         at org.apache.hadoop.hbase.regionserver.HRegion.
> getScanner(HRegion.java:2560)
>         at org.apache.hadoop.hbase.regionserver.HRegion.
> getScanner(HRegion.java:2541)
>         at org.apache.hadoop.hbase.regionserver.HRegion.get(
> HRegion.java:6830)
>         at org.apache.hadoop.hbase.regionserver.HRegion.get(
> HRegion.java:6809)
>         at org.apache.hadoop.hbase.regionserver.RSRpcServices.
> get(RSRpcServices.java:2049)
>         at org.apache.hadoop.hbase.protobuf.generated.
> ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:33644)
>         at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2196)
>         at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:112)
>         at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(
> RpcExecutor.java:133)
>         at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.
> java:108)
>         at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.IllegalStateException: Invalid currKeyLen 33554496
> or currValueLen 706. Block offset: 3773220580287066162, block length:
> 158499, position: 0 (without header).
>         at org.apache.hadoop.hbase.io.hfile.HFileReaderV2$ScannerV2.
> checkKeyValueLen(HFileReaderV2.java:985)
>         at org.apache.hadoop.hbase.io.hfile.HFileReaderV3$ScannerV3.
> readKeyValueLen(HFileReaderV3.java:245)
>         at org.apache.hadoop.hbase.io.hfile.HFileReaderV2$ScannerV2.
> updateCurrBlock(HFileReaderV2.java:962)
>         at org.apache.hadoop.hbase.io.hfile.HFileReaderV2$ScannerV2.
> loadBlockAndSeekToKey(HFileReaderV2.java:933)
>         at org.apache.hadoop.hbase.io.hfile.HFileReaderV2$
> AbstractScannerV2.seekTo(HFileReaderV2.java:655)
>         at org.apache.hadoop.hbase.io.hfile.HFileReaderV2$
> AbstractScannerV2.seekTo(HFileReaderV2.java:599)
>         at org.apache.hadoop.hbase.regionserver.StoreFileScanner.
> seekAtOrAfter(StoreFileScanner.java:268)
>         at org.apache.hadoop.hbase.regionserver.StoreFileScanner.
> seek(StoreFileScanner.java:173)
>         at org.apache.hadoop.hbase.regionserver.StoreScanner.
> seekScanners(StoreScanner.java:350)
>         at org.apache.hadoop.hbase.regionserver.StoreScanner.<
> init>(StoreScanner.java:199)
>         at org.apache.hadoop.hbase.regionserver.HStore.
> getScanner(HStore.java:2077)
>         at org.apache.hadoop.hbase.regionserver.HRegion$
> RegionScannerImpl.<init>(HRegion.java:5556)
>         ... 12 more
>
>
>
> hbase org.apache.hadoop.hbase.io.hfile.HFile  -p  -f
> /hbase/data/default/test/5e71e0ac15c82619de9602b713aa8cb9/f/
> b6695b40cdb14c189c7cc41fa2dd21e0 -w '20#1960620#20171026'
>  SLF4J: Class path contains multiple SLF4J bindings.
>  SLF4J: Found binding in [jar:file:/home/hadoop/hbase/
> lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
>  SLF4J: Found binding in [jar:file:/home/hadoop/hadoop/
> share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/
> impl/StaticLoggerBinder.class]
>  SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an
> explanation.
>  SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
>  2017-11-24 14:31:25,756 INFO  [main] hfile.CacheConfig: Created
> cacheConfig: CacheConfig:disabled
>  K: 20#1960620#20171026/f:d/1511428582215/Put/vlen=68/seqid=80546 V:
> ["20#1960620#20171026#20171026#1", "20#1960620#20171026#20171026#2"]
>  Scanned kv count -> 1

Re: java.lang.IllegalStateException: Invalid currKeyLen 33554496

Posted by Weizhan Zeng <qg...@gmail.com>.
Hi, Ted 

After add -m , I got this 



And I use  snappy in HDFS , my table DATA_BLOCK_ENCODING is NONE.

Also I used python write data by  thrift server and I readed by hbase shell and python api。



> 在 2017年11月24日,下午7:06,Ted Yu <yu...@gmail.com> 写道:
> 
> What if you add '-m' to the HFile command ?
> 
> Any encoding you use for the underlying table ?
> 
> Did you use table API to write data or thru bulk load ?
> 
> Cheers
> 
> On Thu, Nov 23, 2017 at 10:37 PM, Weizhan Zeng <qg...@gmail.com> wrote:
> 
>> 
>> Hi,guys
>> 
>> I user hbase-1.2.6 , and I found a strange  problem, the key is very short
>> but get “ Invalid currKeyLen 33554496 "
>> 
>> Is anyone had met that ?
>> 
>> 
>> hbase(main):018:0> get 'test', '20#1960620#20171026'
>> COLUMN                                         CELL
>> 
>> ERROR: java.io.IOException: java.lang.IllegalStateException: Invalid
>> currKeyLen 33554496 or currValueLen 706. Block offset: 3773220580287066162,
>> block length: 158499, position: 0 (without header).
>>        at org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.
>> handleException(HRegion.java:5600)
>>        at org.apache.hadoop.hbase.regionserver.HRegion$
>> RegionScannerImpl.<init>(HRegion.java:5570)
>>        at org.apache.hadoop.hbase.regionserver.HRegion.
>> instantiateRegionScanner(HRegion.java:2574)
>>        at org.apache.hadoop.hbase.regionserver.HRegion.
>> getScanner(HRegion.java:2560)
>>        at org.apache.hadoop.hbase.regionserver.HRegion.
>> getScanner(HRegion.java:2541)
>>        at org.apache.hadoop.hbase.regionserver.HRegion.get(
>> HRegion.java:6830)
>>        at org.apache.hadoop.hbase.regionserver.HRegion.get(
>> HRegion.java:6809)
>>        at org.apache.hadoop.hbase.regionserver.RSRpcServices.
>> get(RSRpcServices.java:2049)
>>        at org.apache.hadoop.hbase.protobuf.generated.
>> ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:33644)
>>        at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2196)
>>        at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:112)
>>        at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(
>> RpcExecutor.java:133)
>>        at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.
>> java:108)
>>        at java.lang.Thread.run(Thread.java:748)
>> Caused by: java.lang.IllegalStateException: Invalid currKeyLen 33554496
>> or currValueLen 706. Block offset: 3773220580287066162, block length:
>> 158499, position: 0 (without header).
>>        at org.apache.hadoop.hbase.io.hfile.HFileReaderV2$ScannerV2.
>> checkKeyValueLen(HFileReaderV2.java:985)
>>        at org.apache.hadoop.hbase.io.hfile.HFileReaderV3$ScannerV3.
>> readKeyValueLen(HFileReaderV3.java:245)
>>        at org.apache.hadoop.hbase.io.hfile.HFileReaderV2$ScannerV2.
>> updateCurrBlock(HFileReaderV2.java:962)
>>        at org.apache.hadoop.hbase.io.hfile.HFileReaderV2$ScannerV2.
>> loadBlockAndSeekToKey(HFileReaderV2.java:933)
>>        at org.apache.hadoop.hbase.io.hfile.HFileReaderV2$
>> AbstractScannerV2.seekTo(HFileReaderV2.java:655)
>>        at org.apache.hadoop.hbase.io.hfile.HFileReaderV2$
>> AbstractScannerV2.seekTo(HFileReaderV2.java:599)
>>        at org.apache.hadoop.hbase.regionserver.StoreFileScanner.
>> seekAtOrAfter(StoreFileScanner.java:268)
>>        at org.apache.hadoop.hbase.regionserver.StoreFileScanner.
>> seek(StoreFileScanner.java:173)
>>        at org.apache.hadoop.hbase.regionserver.StoreScanner.
>> seekScanners(StoreScanner.java:350)
>>        at org.apache.hadoop.hbase.regionserver.StoreScanner.<
>> init>(StoreScanner.java:199)
>>        at org.apache.hadoop.hbase.regionserver.HStore.
>> getScanner(HStore.java:2077)
>>        at org.apache.hadoop.hbase.regionserver.HRegion$
>> RegionScannerImpl.<init>(HRegion.java:5556)
>>        ... 12 more
>> 
>> 
>> 
>> hbase org.apache.hadoop.hbase.io.hfile.HFile  -p  -f
>> /hbase/data/default/test/5e71e0ac15c82619de9602b713aa8cb9/f/
>> b6695b40cdb14c189c7cc41fa2dd21e0 -w '20#1960620#20171026'
>> SLF4J: Class path contains multiple SLF4J bindings.
>> SLF4J: Found binding in [jar:file:/home/hadoop/hbase/
>> lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
>> SLF4J: Found binding in [jar:file:/home/hadoop/hadoop/
>> share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/
>> impl/StaticLoggerBinder.class]
>> SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an
>> explanation.
>> SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
>> 2017-11-24 14:31:25,756 INFO  [main] hfile.CacheConfig: Created
>> cacheConfig: CacheConfig:disabled
>> K: 20#1960620#20171026/f:d/1511428582215/Put/vlen=68/seqid=80546 V:
>> ["20#1960620#20171026#20171026#1", "20#1960620#20171026#20171026#2"]
>> Scanned kv count -> 1