Hi all,
Doing some concurrent tests with the following operations running on a
single table:
- mass insert into family1
- scanner running parsing records from family1, and updating same row
into family2
- lucene index built from family2
I am seeing occasionally the following exception (not reproducible reliably):
Exception in thread "main" java.lang.RuntimeException:
org.apache.hadoop.hbase.UnknownScannerException:
org.apache.hadoop.hbase.UnknownScannerException: Name:
-6847297385504321434
at
org.apache.hadoop.hbase.regionserver.HRegionServer.next(HRegionServer.java:1077)
at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.hbase.ipc.HbaseRPC$Server.call(HbaseRPC.java:554)
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:888)
at
org.apache.hadoop.hbase.client.HTable$ClientScanner$1.hasNext(HTable.java:1195)
at
com.ibiodiversity.index.parse.OccurrenceParser.run(OccurrenceParser.java:29)
at
com.ibiodiversity.index.parse.OccurrenceParser.main(OccurrenceParser.java:52)
Just running on laptop right now and a small table (1,000,000 rows) as
a first test - here is the scanner loop that is dying:
HTable table = new HTable("occurrence");
Scanner scanner = table.getScanner(new String[]{"unparsed:latitude",
"unparsed:longitude"});
for (RowResult result : scanner) {
BatchUpdate batchUpdate = new BatchUpdate(result.getRow());
Cell latitude = result.get("unparsed:latitude".getBytes());
Cell longitude = result.get("unparsed:longitude".getBytes());
batchUpdate.put("parsedGeospatial:latitude", parse(latitude.getValue()));
batchUpdate.put("parsedGeospatial:longitude", parse(longitude.getValue()));
table.commit(batchUpdate);
}
Am I abusing HBase running on the laptop (just in development...)?
Thanks,
Tim