|
Julian Wissmann
2012-09-05, 16:17
Ted Yu
2012-09-05, 16:22
Julian Wissmann
2012-09-05, 19:07
Ted Yu
2012-09-05, 19:22
Julian Wissmann
2012-09-05, 19:49
Ted Yu
2012-09-05, 20:04
Julian Wissmann
2012-09-05, 20:30
anil gupta
2012-09-05, 21:04
anil gupta
2012-09-05, 21:27
Julian Wissmann
2012-09-06, 09:28
anil gupta
2012-09-06, 17:19
anil gupta
2012-09-06, 17:24
Julian Wissmann
2012-09-06, 18:43
anil gupta
2012-09-06, 19:22
Julian Wissmann
2012-09-10, 16:36
anil gupta
2012-09-10, 18:22
Julian Wissmann
2012-09-12, 16:27
Ted Yu
2012-09-12, 16:45
Julian Wissmann
2012-09-12, 19:56
anil gupta
2012-09-14, 07:56
anil gupta
2012-09-14, 19:27
anil gupta
2012-09-14, 22:17
Ted Yu
2012-09-15, 14:56
anil gupta
2012-09-15, 15:26
Julian Wissmann
2012-10-03, 16:26
|
-
BigDecimalColumnInterpreterJulian Wissmann 2012-09-05, 16:17
Hi,
I am currently experimenting with the BigDecimalColumnInterpreter from https://issues.apache.org/jira/browse/HBASE-6669. I was thinking the best way for me to work with it would be to use the Java class and just use that as is. Imported it into my project and tried to work with it as is, by just instantiating the ColumnInterpreter as BigDecimalColumnInterpreter. Okay, threw errors and also complained about not knowing where to find such a class. So I did some reading and found out, that I'd need to have an Endpoint for it. So I imported AggregateImplementation and AggregateProtocol into my workspace, renamed them, and refactored them where necessary to take BigDecimal. Re-exported the jar, then and had another try. So when I call: ------ final Scan scan = new Scan((metricID + "," + basetime_begin).getBytes(), (metricID + "," + basetime_end).getBytes()); scan.addFamily(family.getBytes()); final ColumnInterpreter<BigDecimal, BigDecimal> ci = new BigDecimalColumnInterpreter(); Map<byte[], BigDecimal> results table.coprocessorExec(BigDecimalProtocol.class, null, null, new Batch.Call<BigDecimalProtocol,BigDecimal>() { public BigDecimal call(BigDecimalProtocol instance)throws IOException{ return instance.getMax(ci, scan); } }); ------ I get errors in the log again, that it can't find BigDecimalColumnInterpreter... okay, so I tried ------ Scan scan = new Scan((metricID + "," + basetime_begin).getBytes(), (metricID + "," + basetime_end).getBytes()); scan.addFamily(family.getBytes()); final ColumnInterpreter<BigDecimal, BigDecimal> ci = new BigDecimalColumnInterpreter(); AggregationClient ag = new AggregationClient(config); BigDecimal max = ag.max(Bytes.toBytes(tableName), ci, scan); ------ I don't get errors recored in the log anymore, but a load of Java error output: ------ java.util.concurrent.ExecutionException: org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=10, exceptions: Wed Sep 05 18:13:43 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, java.io.IOException: IPC server unable to read call parameters: Error in readFields Wed Sep 05 18:13:44 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, java.io.IOException: IPC server unable to read call parameters: Error in readFields Wed Sep 05 18:13:45 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, java.io.IOException: IPC server unable to read call parameters: Error in readFields Wed Sep 05 18:13:46 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, java.io.IOException: IPC server unable to read call parameters: Error in readFields Wed Sep 05 18:13:49 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, java.io.IOException: IPC server unable to read call parameters: Error in readFields Wed Sep 05 18:13:51 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, java.io.IOException: IPC server unable to read call parameters: Error in readFields Wed Sep 05 18:13:55 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, java.io.IOException: IPC server unable to read call parameters: Error in readFields Wed Sep 05 18:13:59 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, java.io.IOException: IPC server unable to read call parameters: Error in readFields Wed Sep 05 18:14:07 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, java.io.IOException: IPC server unable to read call parameters: Error in readFields Wed Sep 05 18:14:23 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, java.io.IOException: IPC server unable to read call parameters: Error in readFields at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:252) at java.util.concurrent.FutureTask.get(FutureTask.java:111) at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.processExecs(HConnectionManager.java:1434) at org.apache.hadoop.hbase.client.HTable.coprocessorExec(HTable.java:1263) at org.apache.hadoop.hbase.client.coprocessor.AggregationClient.sum(AggregationClient.java:259) at helpers.HbaseReaderBigDecimal.getWeeksumSCAN(HbaseReaderBigDecimal.java:360) at helpers.HbaseReaderBigDecimal.main(HbaseReaderBigDecimal.java:81) Caused by: org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=10, exceptions: Wed Sep 05 18:13:43 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, java.io.IOException: IPC server unable to read call parameters: Error in readFields Wed Sep 05 18:13:44 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, java.io.IOException: IPC server unable to read call parameters: Error in readFields Wed Sep 05 18:13:45 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, java.io.IOException: IPC server unable to read call parameters: Error in readFields Wed Sep 05 18:13:46 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, java.io.IOException: IPC server unable to read call parameters: Error in readFields Wed Sep 05 18:13:49 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, java.io.IOException: IPC server unable to read call parameters: Error in readFields Wed Sep 05 18:13:51 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, java.io.IOException: IPC server unable to read call parameters: Error in readFields Wed Sep 05 18:13:55 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, java.io.IOException: IPC server unable to read call parameters: Error in readFields Wed Sep 05 18:13:59 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, java.io.IOException: IPC server unable to read call parameters: Error in readFields Wed Sep 05 18:14:07 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, java.io.IOException: IPC server unable to read call parameters: Error in readFields Wed Sep 05 18:14:23 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, java.io.IOException: IPC server +
Julian Wissmann 2012-09-05, 16:17
-
Re: BigDecimalColumnInterpreterTed Yu 2012-09-05, 16:22
You haven't told us the schema of your table yet.
Your table should have column whose value can be interpreted by BigDecimalColumnInterpreter. Cheers On Wed, Sep 5, 2012 at 9:17 AM, Julian Wissmann <[EMAIL PROTECTED]>wrote: > Hi, > > I am currently experimenting with the BigDecimalColumnInterpreter from > https://issues.apache.org/jira/browse/HBASE-6669. > > I was thinking the best way for me to work with it would be to use the Java > class and just use that as is. > > Imported it into my project and tried to work with it as is, by just > instantiating the ColumnInterpreter as BigDecimalColumnInterpreter. Okay, > threw errors and also complained about not knowing where to find such a > class. > > So I did some reading and found out, that I'd need to have an Endpoint for > it. So I imported AggregateImplementation and AggregateProtocol into my > workspace, renamed them, and refactored them where necessary to take > BigDecimal. Re-exported the jar, then and had another try. > > So when I call: > ------ > final Scan scan = new Scan((metricID + "," + basetime_begin).getBytes(), > (metricID + "," + basetime_end).getBytes()); > scan.addFamily(family.getBytes()); > final ColumnInterpreter<BigDecimal, BigDecimal> ci = new > BigDecimalColumnInterpreter(); > Map<byte[], BigDecimal> results > table.coprocessorExec(BigDecimalProtocol.class, null, null, > new Batch.Call<BigDecimalProtocol,BigDecimal>() { > public BigDecimal call(BigDecimalProtocol instance)throws > IOException{ > return instance.getMax(ci, scan); > } > }); > ------ > I get errors in the log again, that it can't find > BigDecimalColumnInterpreter... okay, so I tried > ------ > Scan scan = new Scan((metricID + "," + basetime_begin).getBytes(), > (metricID + "," + basetime_end).getBytes()); > scan.addFamily(family.getBytes()); > final ColumnInterpreter<BigDecimal, BigDecimal> ci = new > BigDecimalColumnInterpreter(); > AggregationClient ag = new AggregationClient(config); > BigDecimal max = ag.max(Bytes.toBytes(tableName), ci, scan); > ------ > I don't get errors recored in the log anymore, but a load of Java error > output: > ------ > > java.util.concurrent.ExecutionException: > org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after > attempts=10, exceptions: > Wed Sep 05 18:13:43 CEST 2012, > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, > java.io.IOException: > IPC server unable to read call parameters: Error in readFields > Wed Sep 05 18:13:44 CEST 2012, > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, > java.io.IOException: > IPC server unable to read call parameters: Error in readFields > Wed Sep 05 18:13:45 CEST 2012, > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, > java.io.IOException: > IPC server unable to read call parameters: Error in readFields > Wed Sep 05 18:13:46 CEST 2012, > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, > java.io.IOException: > IPC server unable to read call parameters: Error in readFields > Wed Sep 05 18:13:49 CEST 2012, > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, > java.io.IOException: > IPC server unable to read call parameters: Error in readFields > Wed Sep 05 18:13:51 CEST 2012, > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, > java.io.IOException: > IPC server unable to read call parameters: Error in readFields > Wed Sep 05 18:13:55 CEST 2012, > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, > java.io.IOException: > IPC server unable to read call parameters: Error in readFields > Wed Sep 05 18:13:59 CEST 2012, > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, > java.io.IOException: > IPC server unable to read call parameters: Error in readFields > Wed Sep 05 18:14:07 CEST 2012, > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, > java.io.IOException: > IPC server unable to read call parameters: Error in readFields > Wed Sep 05 18:14:23 CEST 2012, > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, > java.io.IOException: +
Ted Yu 2012-09-05, 16:22
-
Re: BigDecimalColumnInterpreterJulian Wissmann 2012-09-05, 19:07
Hi,
the schema looks like this: RowKey: id,timerange_timestamp,offset (String) Qualifier: Offset (long) Timestamp: timestamp (long) Value:number (BigDecimal) Or as code when I read data from csv:byte[] value Bytes.toBytes(BigDecimal.valueOf(Double.parseDouble(cData[2]))); Cheers, Julian 2012/9/5 Ted Yu <[EMAIL PROTECTED]> > You haven't told us the schema of your table yet. > Your table should have column whose value can be interpreted by > BigDecimalColumnInterpreter. > > Cheers > > On Wed, Sep 5, 2012 at 9:17 AM, Julian Wissmann <[EMAIL PROTECTED] > >wrote: > > > Hi, > > > > I am currently experimenting with the BigDecimalColumnInterpreter from > > https://issues.apache.org/jira/browse/HBASE-6669. > > > > I was thinking the best way for me to work with it would be to use the > Java > > class and just use that as is. > > > > Imported it into my project and tried to work with it as is, by just > > instantiating the ColumnInterpreter as BigDecimalColumnInterpreter. Okay, > > threw errors and also complained about not knowing where to find such a > > class. > > > > So I did some reading and found out, that I'd need to have an Endpoint > for > > it. So I imported AggregateImplementation and AggregateProtocol into my > > workspace, renamed them, and refactored them where necessary to take > > BigDecimal. Re-exported the jar, then and had another try. > > > > So when I call: > > ------ > > final Scan scan = new Scan((metricID + "," + basetime_begin).getBytes(), > > (metricID + "," + basetime_end).getBytes()); > > scan.addFamily(family.getBytes()); > > final ColumnInterpreter<BigDecimal, BigDecimal> ci = new > > BigDecimalColumnInterpreter(); > > Map<byte[], BigDecimal> results > > table.coprocessorExec(BigDecimalProtocol.class, null, null, > > new Batch.Call<BigDecimalProtocol,BigDecimal>() { > > public BigDecimal call(BigDecimalProtocol instance)throws > > IOException{ > > return instance.getMax(ci, scan); > > } > > }); > > ------ > > I get errors in the log again, that it can't find > > BigDecimalColumnInterpreter... okay, so I tried > > ------ > > Scan scan = new Scan((metricID + "," + basetime_begin).getBytes(), > > (metricID + "," + basetime_end).getBytes()); > > scan.addFamily(family.getBytes()); > > final ColumnInterpreter<BigDecimal, BigDecimal> ci = new > > BigDecimalColumnInterpreter(); > > AggregationClient ag = new AggregationClient(config); > > BigDecimal max = ag.max(Bytes.toBytes(tableName), ci, scan); > > ------ > > I don't get errors recored in the log anymore, but a load of Java error > > output: > > ------ > > > > java.util.concurrent.ExecutionException: > > org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after > > attempts=10, exceptions: > > Wed Sep 05 18:13:43 CEST 2012, > > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, > > java.io.IOException: > > IPC server unable to read call parameters: Error in readFields > > Wed Sep 05 18:13:44 CEST 2012, > > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, > > java.io.IOException: > > IPC server unable to read call parameters: Error in readFields > > Wed Sep 05 18:13:45 CEST 2012, > > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, > > java.io.IOException: > > IPC server unable to read call parameters: Error in readFields > > Wed Sep 05 18:13:46 CEST 2012, > > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, > > java.io.IOException: > > IPC server unable to read call parameters: Error in readFields > > Wed Sep 05 18:13:49 CEST 2012, > > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, > > java.io.IOException: > > IPC server unable to read call parameters: Error in readFields > > Wed Sep 05 18:13:51 CEST 2012, > > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, > > java.io.IOException: > > IPC server unable to read call parameters: Error in readFields > > Wed Sep 05 18:13:55 CEST 2012, > > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, > > java.io.IOException: > > IPC server unable to read call parameters: Error in readFields +
Julian Wissmann 2012-09-05, 19:07
-
Re: BigDecimalColumnInterpreterTed Yu 2012-09-05, 19:22
And your HBase version is ?
Since you use Double.parseDouble(), looks like it would be more efficient to develop DoubleColumnInterpreter. On Wed, Sep 5, 2012 at 12:07 PM, Julian Wissmann <[EMAIL PROTECTED]>wrote: > Hi, > the schema looks like this: > RowKey: id,timerange_timestamp,offset (String) > Qualifier: Offset (long) > Timestamp: timestamp (long) > Value:number (BigDecimal) > > Or as code when I read data from csv:byte[] value > Bytes.toBytes(BigDecimal.valueOf(Double.parseDouble(cData[2]))); > > Cheers, > > Julian > > 2012/9/5 Ted Yu <[EMAIL PROTECTED]> > > > You haven't told us the schema of your table yet. > > Your table should have column whose value can be interpreted by > > BigDecimalColumnInterpreter. > > > > Cheers > > > > On Wed, Sep 5, 2012 at 9:17 AM, Julian Wissmann < > [EMAIL PROTECTED] > > >wrote: > > > > > Hi, > > > > > > I am currently experimenting with the BigDecimalColumnInterpreter from > > > https://issues.apache.org/jira/browse/HBASE-6669. > > > > > > I was thinking the best way for me to work with it would be to use the > > Java > > > class and just use that as is. > > > > > > Imported it into my project and tried to work with it as is, by just > > > instantiating the ColumnInterpreter as BigDecimalColumnInterpreter. > Okay, > > > threw errors and also complained about not knowing where to find such a > > > class. > > > > > > So I did some reading and found out, that I'd need to have an Endpoint > > for > > > it. So I imported AggregateImplementation and AggregateProtocol into my > > > workspace, renamed them, and refactored them where necessary to take > > > BigDecimal. Re-exported the jar, then and had another try. > > > > > > So when I call: > > > ------ > > > final Scan scan = new Scan((metricID + "," + > basetime_begin).getBytes(), > > > (metricID + "," + basetime_end).getBytes()); > > > scan.addFamily(family.getBytes()); > > > final ColumnInterpreter<BigDecimal, BigDecimal> ci = new > > > BigDecimalColumnInterpreter(); > > > Map<byte[], BigDecimal> results > > > table.coprocessorExec(BigDecimalProtocol.class, null, null, > > > new Batch.Call<BigDecimalProtocol,BigDecimal>() { > > > public BigDecimal call(BigDecimalProtocol instance)throws > > > IOException{ > > > return instance.getMax(ci, scan); > > > } > > > }); > > > ------ > > > I get errors in the log again, that it can't find > > > BigDecimalColumnInterpreter... okay, so I tried > > > ------ > > > Scan scan = new Scan((metricID + "," + basetime_begin).getBytes(), > > > (metricID + "," + basetime_end).getBytes()); > > > scan.addFamily(family.getBytes()); > > > final ColumnInterpreter<BigDecimal, BigDecimal> ci = new > > > BigDecimalColumnInterpreter(); > > > AggregationClient ag = new AggregationClient(config); > > > BigDecimal max = ag.max(Bytes.toBytes(tableName), ci, scan); > > > ------ > > > I don't get errors recored in the log anymore, but a load of Java error > > > output: > > > ------ > > > > > > java.util.concurrent.ExecutionException: > > > org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after > > > attempts=10, exceptions: > > > Wed Sep 05 18:13:43 CEST 2012, > > > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, > > > java.io.IOException: > > > IPC server unable to read call parameters: Error in readFields > > > Wed Sep 05 18:13:44 CEST 2012, > > > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, > > > java.io.IOException: > > > IPC server unable to read call parameters: Error in readFields > > > Wed Sep 05 18:13:45 CEST 2012, > > > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, > > > java.io.IOException: > > > IPC server unable to read call parameters: Error in readFields > > > Wed Sep 05 18:13:46 CEST 2012, > > > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, > > > java.io.IOException: > > > IPC server unable to read call parameters: Error in readFields > > > Wed Sep 05 18:13:49 CEST 2012, > > > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, +
Ted Yu 2012-09-05, 19:22
-
Re: BigDecimalColumnInterpreterJulian Wissmann 2012-09-05, 19:49
I get supplied with doubles from sensors, but in the end I loose too much
precision if I do my aggregations on double, otherwise I'd go for it. I use 0.92.1, from Cloudera CDH4. I've done some initial testing with LongColumnInterpreter on a dataset that I've generated, to do some testing and get accustomed to stuff, but that worked like a charm after some initial stupidity on my side. So now I'm trying to do some testing with the real data, which comes in as double and gets parsed to BigDecimal before writing. 2012/9/5 Ted Yu <[EMAIL PROTECTED]> > And your HBase version is ? > > Since you use Double.parseDouble(), looks like it would be more efficient > to develop DoubleColumnInterpreter. > > On Wed, Sep 5, 2012 at 12:07 PM, Julian Wissmann > <[EMAIL PROTECTED]>wrote: > > > Hi, > > the schema looks like this: > > RowKey: id,timerange_timestamp,offset (String) > > Qualifier: Offset (long) > > Timestamp: timestamp (long) > > Value:number (BigDecimal) > > > > Or as code when I read data from csv:byte[] value > > Bytes.toBytes(BigDecimal.valueOf(Double.parseDouble(cData[2]))); > > > > Cheers, > > > > Julian > > > > 2012/9/5 Ted Yu <[EMAIL PROTECTED]> > > > > > You haven't told us the schema of your table yet. > > > Your table should have column whose value can be interpreted by > > > BigDecimalColumnInterpreter. > > > > > > Cheers > > > > > > On Wed, Sep 5, 2012 at 9:17 AM, Julian Wissmann < > > [EMAIL PROTECTED] > > > >wrote: > > > > > > > Hi, > > > > > > > > I am currently experimenting with the BigDecimalColumnInterpreter > from > > > > https://issues.apache.org/jira/browse/HBASE-6669. > > > > > > > > I was thinking the best way for me to work with it would be to use > the > > > Java > > > > class and just use that as is. > > > > > > > > Imported it into my project and tried to work with it as is, by just > > > > instantiating the ColumnInterpreter as BigDecimalColumnInterpreter. > > Okay, > > > > threw errors and also complained about not knowing where to find > such a > > > > class. > > > > > > > > So I did some reading and found out, that I'd need to have an > Endpoint > > > for > > > > it. So I imported AggregateImplementation and AggregateProtocol into > my > > > > workspace, renamed them, and refactored them where necessary to take > > > > BigDecimal. Re-exported the jar, then and had another try. > > > > > > > > So when I call: > > > > ------ > > > > final Scan scan = new Scan((metricID + "," + > > basetime_begin).getBytes(), > > > > (metricID + "," + basetime_end).getBytes()); > > > > scan.addFamily(family.getBytes()); > > > > final ColumnInterpreter<BigDecimal, BigDecimal> ci = new > > > > BigDecimalColumnInterpreter(); > > > > Map<byte[], BigDecimal> results > > > > table.coprocessorExec(BigDecimalProtocol.class, null, null, > > > > new Batch.Call<BigDecimalProtocol,BigDecimal>() { > > > > public BigDecimal call(BigDecimalProtocol instance)throws > > > > IOException{ > > > > return instance.getMax(ci, scan); > > > > } > > > > }); > > > > ------ > > > > I get errors in the log again, that it can't find > > > > BigDecimalColumnInterpreter... okay, so I tried > > > > ------ > > > > Scan scan = new Scan((metricID + "," + basetime_begin).getBytes(), > > > > (metricID + "," + basetime_end).getBytes()); > > > > scan.addFamily(family.getBytes()); > > > > final ColumnInterpreter<BigDecimal, BigDecimal> ci = new > > > > BigDecimalColumnInterpreter(); > > > > AggregationClient ag = new AggregationClient(config); > > > > BigDecimal max = ag.max(Bytes.toBytes(tableName), ci, scan); > > > > ------ > > > > I don't get errors recored in the log anymore, but a load of Java > error > > > > output: > > > > ------ > > > > > > > > java.util.concurrent.ExecutionException: > > > > org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed > after > > > > attempts=10, exceptions: > > > > Wed Sep 05 18:13:43 CEST 2012, > > > > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@50502819, > > > > java.io.IOException: +
Julian Wissmann 2012-09-05, 19:49
-
Re: BigDecimalColumnInterpreterTed Yu 2012-09-05, 20:04
I added one review comment on
HBASE-6669<https://issues.apache.org/jira/browse/HBASE-6669> . Thanks Julian for reminding me. On Wed, Sep 5, 2012 at 12:49 PM, Julian Wissmann <[EMAIL PROTECTED]>wrote: > I get supplied with doubles from sensors, but in the end I loose too much > precision if I do my aggregations on double, otherwise I'd go for it. > I use 0.92.1, from Cloudera CDH4. > I've done some initial testing with LongColumnInterpreter on a dataset that > I've generated, to do some testing and get accustomed to stuff, but that > worked like a charm after some initial stupidity on my side. > So now I'm trying to do some testing with the real data, which comes in as > double and gets parsed to BigDecimal before writing. > > 2012/9/5 Ted Yu <[EMAIL PROTECTED]> > > > And your HBase version is ? > > > > Since you use Double.parseDouble(), looks like it would be more efficient > > to develop DoubleColumnInterpreter. > > > > On Wed, Sep 5, 2012 at 12:07 PM, Julian Wissmann > > <[EMAIL PROTECTED]>wrote: > > > > > Hi, > > > the schema looks like this: > > > RowKey: id,timerange_timestamp,offset (String) > > > Qualifier: Offset (long) > > > Timestamp: timestamp (long) > > > Value:number (BigDecimal) > > > > > > Or as code when I read data from csv:byte[] value > > > Bytes.toBytes(BigDecimal.valueOf(Double.parseDouble(cData[2]))); > > > > > > Cheers, > > > > > > Julian > > > > > > 2012/9/5 Ted Yu <[EMAIL PROTECTED]> > > > > > > > You haven't told us the schema of your table yet. > > > > Your table should have column whose value can be interpreted by > > > > BigDecimalColumnInterpreter. > > > > > > > > Cheers > > > > > > > > On Wed, Sep 5, 2012 at 9:17 AM, Julian Wissmann < > > > [EMAIL PROTECTED] > > > > >wrote: > > > > > > > > > Hi, > > > > > > > > > > I am currently experimenting with the BigDecimalColumnInterpreter > > from > > > > > https://issues.apache.org/jira/browse/HBASE-6669. > > > > > > > > > > I was thinking the best way for me to work with it would be to use > > the > > > > Java > > > > > class and just use that as is. > > > > > > > > > > Imported it into my project and tried to work with it as is, by > just > > > > > instantiating the ColumnInterpreter as BigDecimalColumnInterpreter. > > > Okay, > > > > > threw errors and also complained about not knowing where to find > > such a > > > > > class. > > > > > > > > > > So I did some reading and found out, that I'd need to have an > > Endpoint > > > > for > > > > > it. So I imported AggregateImplementation and AggregateProtocol > into > > my > > > > > workspace, renamed them, and refactored them where necessary to > take > > > > > BigDecimal. Re-exported the jar, then and had another try. > > > > > > > > > > So when I call: > > > > > ------ > > > > > final Scan scan = new Scan((metricID + "," + > > > basetime_begin).getBytes(), > > > > > (metricID + "," + basetime_end).getBytes()); > > > > > scan.addFamily(family.getBytes()); > > > > > final ColumnInterpreter<BigDecimal, BigDecimal> ci = new > > > > > BigDecimalColumnInterpreter(); > > > > > Map<byte[], BigDecimal> results > > > > > table.coprocessorExec(BigDecimalProtocol.class, null, null, > > > > > new Batch.Call<BigDecimalProtocol,BigDecimal>() { > > > > > public BigDecimal call(BigDecimalProtocol instance)throws > > > > > IOException{ > > > > > return instance.getMax(ci, scan); > > > > > } > > > > > }); > > > > > ------ > > > > > I get errors in the log again, that it can't find > > > > > BigDecimalColumnInterpreter... okay, so I tried > > > > > ------ > > > > > Scan scan = new Scan((metricID + "," + basetime_begin).getBytes(), > > > > > (metricID + "," + basetime_end).getBytes()); > > > > > scan.addFamily(family.getBytes()); > > > > > final ColumnInterpreter<BigDecimal, BigDecimal> ci = new > > > > > BigDecimalColumnInterpreter(); > > > > > AggregationClient ag = new AggregationClient(config); > > > > > BigDecimal max = ag.max(Bytes.toBytes(tableName), ci, scan); +
Ted Yu 2012-09-05, 20:04
-
Re: BigDecimalColumnInterpreterJulian Wissmann 2012-09-05, 20:30
Thank you!
So this looks like the missing link here. I'll see if I can get it working, tomorrow morning. Cheers 2012/9/5 Ted Yu <[EMAIL PROTECTED]> > I added one review comment on > HBASE-6669<https://issues.apache.org/jira/browse/HBASE-6669> > . > > Thanks Julian for reminding me. > > On Wed, Sep 5, 2012 at 12:49 PM, Julian Wissmann > <[EMAIL PROTECTED]>wrote: > > > I get supplied with doubles from sensors, but in the end I loose too much > > precision if I do my aggregations on double, otherwise I'd go for it. > > I use 0.92.1, from Cloudera CDH4. > > I've done some initial testing with LongColumnInterpreter on a dataset > that > > I've generated, to do some testing and get accustomed to stuff, but that > > worked like a charm after some initial stupidity on my side. > > So now I'm trying to do some testing with the real data, which comes in > as > > double and gets parsed to BigDecimal before writing. > > > > 2012/9/5 Ted Yu <[EMAIL PROTECTED]> > > > > > And your HBase version is ? > > > > > > Since you use Double.parseDouble(), looks like it would be more > efficient > > > to develop DoubleColumnInterpreter. > > > > > > On Wed, Sep 5, 2012 at 12:07 PM, Julian Wissmann > > > <[EMAIL PROTECTED]>wrote: > > > > > > > Hi, > > > > the schema looks like this: > > > > RowKey: id,timerange_timestamp,offset (String) > > > > Qualifier: Offset (long) > > > > Timestamp: timestamp (long) > > > > Value:number (BigDecimal) > > > > > > > > Or as code when I read data from csv:byte[] value > > > > Bytes.toBytes(BigDecimal.valueOf(Double.parseDouble(cData[2]))); > > > > > > > > Cheers, > > > > > > > > Julian > > > > > > > > 2012/9/5 Ted Yu <[EMAIL PROTECTED]> > > > > > > > > > You haven't told us the schema of your table yet. > > > > > Your table should have column whose value can be interpreted by > > > > > BigDecimalColumnInterpreter. > > > > > > > > > > Cheers > > > > > > > > > > On Wed, Sep 5, 2012 at 9:17 AM, Julian Wissmann < > > > > [EMAIL PROTECTED] > > > > > >wrote: > > > > > > > > > > > Hi, > > > > > > > > > > > > I am currently experimenting with the BigDecimalColumnInterpreter > > > from > > > > > > https://issues.apache.org/jira/browse/HBASE-6669. > > > > > > > > > > > > I was thinking the best way for me to work with it would be to > use > > > the > > > > > Java > > > > > > class and just use that as is. > > > > > > > > > > > > Imported it into my project and tried to work with it as is, by > > just > > > > > > instantiating the ColumnInterpreter as > BigDecimalColumnInterpreter. > > > > Okay, > > > > > > threw errors and also complained about not knowing where to find > > > such a > > > > > > class. > > > > > > > > > > > > So I did some reading and found out, that I'd need to have an > > > Endpoint > > > > > for > > > > > > it. So I imported AggregateImplementation and AggregateProtocol > > into > > > my > > > > > > workspace, renamed them, and refactored them where necessary to > > take > > > > > > BigDecimal. Re-exported the jar, then and had another try. > > > > > > > > > > > > So when I call: > > > > > > ------ > > > > > > final Scan scan = new Scan((metricID + "," + > > > > basetime_begin).getBytes(), > > > > > > (metricID + "," + basetime_end).getBytes()); > > > > > > scan.addFamily(family.getBytes()); > > > > > > final ColumnInterpreter<BigDecimal, BigDecimal> ci = new > > > > > > BigDecimalColumnInterpreter(); > > > > > > Map<byte[], BigDecimal> results > > > > > > table.coprocessorExec(BigDecimalProtocol.class, null, null, > > > > > > new Batch.Call<BigDecimalProtocol,BigDecimal>() { > > > > > > public BigDecimal call(BigDecimalProtocol instance)throws > > > > > > IOException{ > > > > > > return instance.getMax(ci, scan); > > > > > > } > > > > > > }); > > > > > > ------ > > > > > > I get errors in the log again, that it can't find > > > > > > BigDecimalColumnInterpreter... okay, so I tried > > > > > > ------ > > > > > > Scan scan = new Scan((metricID + "," + > basetime_begin).getBytes(), +
Julian Wissmann 2012-09-05, 20:30
-
Re: BigDecimalColumnInterpreteranil gupta 2012-09-05, 21:04
Hi Julian,
I have been running the same class on my distributed cluster for aggregation. It has been working fine. The only difference is that i use the methods provided incom.intuit.ihub.hbase.poc.aggregation.client. AggregationClient<eclipse-javadoc:%E2%98%82=Hbase_cdh4/src%3Ccom.intuit.ihub.hbase.poc.aggregation.client%7BAggregationClient.java%E2%98%83AggregationClient>class. IMHO, you don't need to define an Endpoint for using the BigDecimalColumnInterpreter. You need to use methods of AggregationClient: sum(Bytes.toBytes(tableName), ci, scan), avg(final byte[] tableName, final ColumnInterpreter<R, S> ci, Scan scan), etc. In the above method you just need to pass the BigDecimalColumnInterpreter, Scan object and Byte Array of TableName. It should work. Let me know if it doesn't work this way.* * Thanks, Anil Gupta* * On Wed, Sep 5, 2012 at 1:30 PM, Julian Wissmann <[EMAIL PROTECTED]>wrote: > Thank you! > So this looks like the missing link here. > I'll see if I can get it working, tomorrow morning. > > Cheers > > 2012/9/5 Ted Yu <[EMAIL PROTECTED]> > > > I added one review comment on > > HBASE-6669<https://issues.apache.org/jira/browse/HBASE-6669> > > . > > > > Thanks Julian for reminding me. > > > > On Wed, Sep 5, 2012 at 12:49 PM, Julian Wissmann > > <[EMAIL PROTECTED]>wrote: > > > > > I get supplied with doubles from sensors, but in the end I loose too > much > > > precision if I do my aggregations on double, otherwise I'd go for it. > > > I use 0.92.1, from Cloudera CDH4. > > > I've done some initial testing with LongColumnInterpreter on a dataset > > that > > > I've generated, to do some testing and get accustomed to stuff, but > that > > > worked like a charm after some initial stupidity on my side. > > > So now I'm trying to do some testing with the real data, which comes in > > as > > > double and gets parsed to BigDecimal before writing. > > > > > > 2012/9/5 Ted Yu <[EMAIL PROTECTED]> > > > > > > > And your HBase version is ? > > > > > > > > Since you use Double.parseDouble(), looks like it would be more > > efficient > > > > to develop DoubleColumnInterpreter. > > > > > > > > On Wed, Sep 5, 2012 at 12:07 PM, Julian Wissmann > > > > <[EMAIL PROTECTED]>wrote: > > > > > > > > > Hi, > > > > > the schema looks like this: > > > > > RowKey: id,timerange_timestamp,offset (String) > > > > > Qualifier: Offset (long) > > > > > Timestamp: timestamp (long) > > > > > Value:number (BigDecimal) > > > > > > > > > > Or as code when I read data from csv:byte[] value > > > > > Bytes.toBytes(BigDecimal.valueOf(Double.parseDouble(cData[2]))); > > > > > > > > > > Cheers, > > > > > > > > > > Julian > > > > > > > > > > 2012/9/5 Ted Yu <[EMAIL PROTECTED]> > > > > > > > > > > > You haven't told us the schema of your table yet. > > > > > > Your table should have column whose value can be interpreted by > > > > > > BigDecimalColumnInterpreter. > > > > > > > > > > > > Cheers > > > > > > > > > > > > On Wed, Sep 5, 2012 at 9:17 AM, Julian Wissmann < > > > > > [EMAIL PROTECTED] > > > > > > >wrote: > > > > > > > > > > > > > Hi, > > > > > > > > > > > > > > I am currently experimenting with the > BigDecimalColumnInterpreter > > > > from > > > > > > > https://issues.apache.org/jira/browse/HBASE-6669. > > > > > > > > > > > > > > I was thinking the best way for me to work with it would be to > > use > > > > the > > > > > > Java > > > > > > > class and just use that as is. > > > > > > > > > > > > > > Imported it into my project and tried to work with it as is, by > > > just > > > > > > > instantiating the ColumnInterpreter as > > BigDecimalColumnInterpreter. > > > > > Okay, > > > > > > > threw errors and also complained about not knowing where to > find > > > > such a > > > > > > > class. > > > > > > > > > > > > > > So I did some reading and found out, that I'd need to have an > > > > Endpoint > > > > > > for > > > > > > > it. So I imported AggregateImplementation and AggregateProtocol > > > into > > > > my > > > > > > > workspace, renamed them, and refactored them where necessary to Thanks & Regards, Anil Gupta +
anil gupta 2012-09-05, 21:04
-
Re: BigDecimalColumnInterpreteranil gupta 2012-09-05, 21:27
Hi Julian,
Sorry for wrong reference to the aggregation client class in my previous email. Here is the right class:org.apache.hadoop.hbase.client.coprocessor.AggregationClient. HTH, Anil On Wed, Sep 5, 2012 at 2:04 PM, anil gupta <[EMAIL PROTECTED]> wrote: > Hi Julian, > > I have been running the same class on my distributed cluster for > aggregation. It has been working fine. The only difference is that i use > the methods provided incom.intuit.ihub.hbase.poc.aggregation.client. > AggregationClient class. IMHO, you don't need to define an Endpoint for > using the BigDecimalColumnInterpreter. > > You need to use methods of AggregationClient: > sum(Bytes.toBytes(tableName), ci, scan), avg(final byte[] tableName, final > ColumnInterpreter<R, S> ci, Scan scan), etc. > > In the above method you just need to pass the BigDecimalColumnInterpreter, > Scan object and Byte Array of TableName. It should work. Let me know if it > doesn't work this way.* > * > Thanks, > Anil Gupta > * > * > > On Wed, Sep 5, 2012 at 1:30 PM, Julian Wissmann <[EMAIL PROTECTED]>wrote: > >> Thank you! >> So this looks like the missing link here. >> I'll see if I can get it working, tomorrow morning. >> >> Cheers >> >> 2012/9/5 Ted Yu <[EMAIL PROTECTED]> >> >> > I added one review comment on >> > HBASE-6669<https://issues.apache.org/jira/browse/HBASE-6669> >> > . >> > >> > Thanks Julian for reminding me. >> > >> > On Wed, Sep 5, 2012 at 12:49 PM, Julian Wissmann >> > <[EMAIL PROTECTED]>wrote: >> > >> > > I get supplied with doubles from sensors, but in the end I loose too >> much >> > > precision if I do my aggregations on double, otherwise I'd go for it. >> > > I use 0.92.1, from Cloudera CDH4. >> > > I've done some initial testing with LongColumnInterpreter on a dataset >> > that >> > > I've generated, to do some testing and get accustomed to stuff, but >> that >> > > worked like a charm after some initial stupidity on my side. >> > > So now I'm trying to do some testing with the real data, which comes >> in >> > as >> > > double and gets parsed to BigDecimal before writing. >> > > >> > > 2012/9/5 Ted Yu <[EMAIL PROTECTED]> >> > > >> > > > And your HBase version is ? >> > > > >> > > > Since you use Double.parseDouble(), looks like it would be more >> > efficient >> > > > to develop DoubleColumnInterpreter. >> > > > >> > > > On Wed, Sep 5, 2012 at 12:07 PM, Julian Wissmann >> > > > <[EMAIL PROTECTED]>wrote: >> > > > >> > > > > Hi, >> > > > > the schema looks like this: >> > > > > RowKey: id,timerange_timestamp,offset (String) >> > > > > Qualifier: Offset (long) >> > > > > Timestamp: timestamp (long) >> > > > > Value:number (BigDecimal) >> > > > > >> > > > > Or as code when I read data from csv:byte[] value >> > > > > Bytes.toBytes(BigDecimal.valueOf(Double.parseDouble(cData[2]))); >> > > > > >> > > > > Cheers, >> > > > > >> > > > > Julian >> > > > > >> > > > > 2012/9/5 Ted Yu <[EMAIL PROTECTED]> >> > > > > >> > > > > > You haven't told us the schema of your table yet. >> > > > > > Your table should have column whose value can be interpreted by >> > > > > > BigDecimalColumnInterpreter. >> > > > > > >> > > > > > Cheers >> > > > > > >> > > > > > On Wed, Sep 5, 2012 at 9:17 AM, Julian Wissmann < >> > > > > [EMAIL PROTECTED] >> > > > > > >wrote: >> > > > > > >> > > > > > > Hi, >> > > > > > > >> > > > > > > I am currently experimenting with the >> BigDecimalColumnInterpreter >> > > > from >> > > > > > > https://issues.apache.org/jira/browse/HBASE-6669. >> > > > > > > >> > > > > > > I was thinking the best way for me to work with it would be to >> > use >> > > > the >> > > > > > Java >> > > > > > > class and just use that as is. >> > > > > > > >> > > > > > > Imported it into my project and tried to work with it as is, >> by >> > > just >> > > > > > > instantiating the ColumnInterpreter as >> > BigDecimalColumnInterpreter. >> > > > > Okay, >> > > > > > > threw errors and also complained about not knowing where to >> find >> > Thanks & Regards, Anil Gupta +
anil gupta 2012-09-05, 21:27
-
Re: BigDecimalColumnInterpreterJulian Wissmann 2012-09-06, 09:28
Hi, anil,
I presume you mean something like this: Scan scan = new Scan(_start, _end); scan.addFamily(family.getBytes()); final ColumnInterpreter<BigDecimal, BigDecimal> ci = new mypackage.BigDecimalColumnInterpreter(); AggregationClient ag = new org.apache.hadoop.hbase. client.coprocessor.AggregationClient(config); BigDecimal sum = ag.sum(Bytes.toBytes(tableName), new BigDecimalColumnInterpreter(), scan); When I call this,with the Endpoint in place and loaded as a jar, I get the above error. When I call it without the endpoint loaded as coprocessor, though, I get this: java.util.concurrent.ExecutionException: org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=10, exceptions: Thu Sep 06 11:07:39 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, java.io.IOException: IPC server unable to read call parameters: Error in readFields Thu Sep 06 11:07:40 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, java.io.IOException: IPC server unable to read call parameters: Error in readFields Thu Sep 06 11:07:41 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, java.io.IOException: IPC server unable to read call parameters: Error in readFields Thu Sep 06 11:07:42 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, java.io.IOException: IPC server unable to read call parameters: Error in readFields Thu Sep 06 11:07:44 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, java.io.IOException: IPC server unable to read call parameters: Error in readFields Thu Sep 06 11:07:46 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, java.io.IOException: IPC server unable to read call parameters: Error in readFields Thu Sep 06 11:07:50 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, java.io.IOException: IPC server unable to read call parameters: Error in readFields Thu Sep 06 11:07:54 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, java.io.IOException: IPC server unable to read call parameters: Error in readFields Thu Sep 06 11:08:02 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, java.io.IOException: IPC server unable to read call parameters: Error in readFields Thu Sep 06 11:08:18 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, java.io.IOException: IPC server unable to read call parameters: Error in readFields at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:252) at java.util.concurrent.FutureTask.get(FutureTask.java:111) at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.processExecs(HConnectionManager.java:1434) at org.apache.hadoop.hbase.client.HTable.coprocessorExec(HTable.java:1263) at org.apache.hadoop.hbase.client.coprocessor.AggregationClient.sum(AggregationClient.java:259) at helpers.HbaseReaderBigDecimal.getWeeksumSCAN(HbaseReaderBigDecimal.java:355) at helpers.HbaseReaderBigDecimal.main(HbaseReaderBigDecimal.java:76) Caused by: org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=10, exceptions: Thu Sep 06 11:07:39 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, java.io.IOException: IPC server unable to read call parameters: Error in readFields Thu Sep 06 11:07:40 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, java.io.IOException: IPC server unable to read call parameters: Error in readFields Thu Sep 06 11:07:41 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, java.io.IOException: IPC server unable to read call parameters: Error in readFields Thu Sep 06 11:07:42 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, java.io.IOException: IPC server unable to read call parameters: Error in readFields Thu Sep 06 11:07:44 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, java.io.IOException: IPC server unable to read call parameters: Error in readFields Thu Sep 06 11org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, java.io.IOException: IPC server unable to read call parameters: Error in readFields Thu Sep 06 11:07:50 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, java.io.IOException: IPC server unable to read call parameters: Error in readFields Thu Sep 06 11:07:54 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, java.io.IOException: IPC server unable to read call parameters: Error in readFields Thu Sep 06 11:08:02 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, java.io.IOException: IPC server unable to read call parameters: Error in readFields Thu Sep 06 11:08:18 CEST 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, java.io.IOException: IPC server unable to read call parameters: Error in readFields at org.apache.hadoop.hbase.client.ServerCallable.withRetries(ServerCallable.java:183) at org.apache.hadoop.hbase.ipc.ExecRPCInvoker.invoke(ExecRPCInvoker.java:79) at $Proxy7.getSum(Unknown Source) at org.apache.hadoop.hbase.client.coprocessor.AggregationClient$4.call(AggregationClient.java:263) at org.apache.hadoop.hbase.client.coprocessor.AggregationClient$4.call(AggregationClient.java:260) at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation$4.call(HConnectionManager.java:1422) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:679) Interestingly, the RegionServer-log doesn't give me any errors, here, just some info stuff, that suggests it was actually doing something. Did you implement readFields() and write(), then as Ted suggested? 2012/9/5 anil gupta <[EMAIL PROTECTED]> +
Julian Wissmann 2012-09-06, 09:28
-
Re: BigDecimalColumnInterpreteranil gupta 2012-09-06, 17:19
Hi Julian,
You need to add the column qualifier explicitly in the scanner. You have only added the column family in the scanner. I am also assuming that you are writing a ByteArray of BigDecimal object as value of these cells in HBase. Is that right? Thanks, Anil On Thu, Sep 6, 2012 at 2:28 AM, Julian Wissmann <[EMAIL PROTECTED]>wrote: > Hi, anil, > > I presume you mean something like this: > Scan scan = new Scan(_start, _end); > scan.addFamily(family.getBytes()); > final ColumnInterpreter<BigDecimal, BigDecimal> ci = new > mypackage.BigDecimalColumnInterpreter(); > AggregationClient ag = new org.apache.hadoop.hbase. > client.coprocessor.AggregationClient(config); > BigDecimal sum = ag.sum(Bytes.toBytes(tableName), new > BigDecimalColumnInterpreter(), scan); > > > When I call this,with the Endpoint in place and loaded as a jar, I get the > above error. > When I call it without the endpoint loaded as coprocessor, though, I get > this: > > java.util.concurrent.ExecutionException: > org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after > attempts=10, exceptions: > Thu Sep 06 11:07:39 CEST 2012, > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > java.io.IOException: > IPC server unable to read call parameters: Error in readFields > Thu Sep 06 11:07:40 CEST 2012, > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > java.io.IOException: > IPC server unable to read call parameters: Error in readFields > Thu Sep 06 11:07:41 CEST 2012, > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > java.io.IOException: > IPC server unable to read call parameters: Error in readFields > Thu Sep 06 11:07:42 CEST 2012, > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > java.io.IOException: > IPC server unable to read call parameters: Error in readFields > Thu Sep 06 11:07:44 CEST 2012, > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > java.io.IOException: > IPC server unable to read call parameters: Error in readFields > Thu Sep 06 11:07:46 CEST 2012, > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > java.io.IOException: > IPC server unable to read call parameters: Error in readFields > Thu Sep 06 11:07:50 CEST 2012, > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > java.io.IOException: > IPC server unable to read call parameters: Error in readFields > Thu Sep 06 11:07:54 CEST 2012, > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > java.io.IOException: > IPC server unable to read call parameters: Error in readFields > Thu Sep 06 11:08:02 CEST 2012, > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > java.io.IOException: > IPC server unable to read call parameters: Error in readFields > Thu Sep 06 11:08:18 CEST 2012, > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > java.io.IOException: > IPC server unable to read call parameters: Error in readFields > > at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:252) > at java.util.concurrent.FutureTask.get(FutureTask.java:111) > at > > org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.processExecs(HConnectionManager.java:1434) > at org.apache.hadoop.hbase.client.HTable.coprocessorExec(HTable.java:1263) > at > > org.apache.hadoop.hbase.client.coprocessor.AggregationClient.sum(AggregationClient.java:259) > at > > helpers.HbaseReaderBigDecimal.getWeeksumSCAN(HbaseReaderBigDecimal.java:355) > at helpers.HbaseReaderBigDecimal.main(HbaseReaderBigDecimal.java:76) > Caused by: org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed > after attempts=10, exceptions: > Thu Sep 06 11:07:39 CEST 2012, > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > java.io.IOException: > IPC server unable to read call parameters: Error in readFields > Thu Sep 06 11:07:40 CEST 2012, > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > java.io.IOException: > IPC server unable to read call parameters: Error in readFields > Thu Sep 06 11:07:41 CEST 2012, Thanks & Regards, Anil Gupta +
anil gupta 2012-09-06, 17:19
-
Re: BigDecimalColumnInterpreteranil gupta 2012-09-06, 17:24
I am using HBase0.92.1. Which version you are using?
On Thu, Sep 6, 2012 at 10:19 AM, anil gupta <[EMAIL PROTECTED]> wrote: > Hi Julian, > > You need to add the column qualifier explicitly in the scanner. You have > only added the column family in the scanner. > I am also assuming that you are writing a ByteArray of BigDecimal object > as value of these cells in HBase. Is that right? > > Thanks, > Anil > > > On Thu, Sep 6, 2012 at 2:28 AM, Julian Wissmann <[EMAIL PROTECTED]>wrote: > >> Hi, anil, >> >> I presume you mean something like this: >> Scan scan = new Scan(_start, _end); >> scan.addFamily(family.getBytes()); >> final ColumnInterpreter<BigDecimal, BigDecimal> ci = new >> mypackage.BigDecimalColumnInterpreter(); >> AggregationClient ag = new org.apache.hadoop.hbase. >> client.coprocessor.AggregationClient(config); >> BigDecimal sum = ag.sum(Bytes.toBytes(tableName), new >> BigDecimalColumnInterpreter(), scan); >> >> >> When I call this,with the Endpoint in place and loaded as a jar, I get the >> above error. >> When I call it without the endpoint loaded as coprocessor, though, I get >> this: >> >> java.util.concurrent.ExecutionException: >> org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after >> attempts=10, exceptions: >> Thu Sep 06 11:07:39 CEST 2012, >> org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, >> java.io.IOException: >> IPC server unable to read call parameters: Error in readFields >> Thu Sep 06 11:07:40 CEST 2012, >> org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, >> java.io.IOException: >> IPC server unable to read call parameters: Error in readFields >> Thu Sep 06 11:07:41 CEST 2012, >> org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, >> java.io.IOException: >> IPC server unable to read call parameters: Error in readFields >> Thu Sep 06 11:07:42 CEST 2012, >> org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, >> java.io.IOException: >> IPC server unable to read call parameters: Error in readFields >> Thu Sep 06 11:07:44 CEST 2012, >> org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, >> java.io.IOException: >> IPC server unable to read call parameters: Error in readFields >> Thu Sep 06 11:07:46 CEST 2012, >> org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, >> java.io.IOException: >> IPC server unable to read call parameters: Error in readFields >> Thu Sep 06 11:07:50 CEST 2012, >> org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, >> java.io.IOException: >> IPC server unable to read call parameters: Error in readFields >> Thu Sep 06 11:07:54 CEST 2012, >> org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, >> java.io.IOException: >> IPC server unable to read call parameters: Error in readFields >> Thu Sep 06 11:08:02 CEST 2012, >> org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, >> java.io.IOException: >> IPC server unable to read call parameters: Error in readFields >> Thu Sep 06 11:08:18 CEST 2012, >> org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, >> java.io.IOException: >> IPC server unable to read call parameters: Error in readFields >> >> at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:252) >> at java.util.concurrent.FutureTask.get(FutureTask.java:111) >> at >> >> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.processExecs(HConnectionManager.java:1434) >> at org.apache.hadoop.hbase.client.HTable.coprocessorExec(HTable.java:1263) >> at >> >> org.apache.hadoop.hbase.client.coprocessor.AggregationClient.sum(AggregationClient.java:259) >> at >> >> helpers.HbaseReaderBigDecimal.getWeeksumSCAN(HbaseReaderBigDecimal.java:355) >> at helpers.HbaseReaderBigDecimal.main(HbaseReaderBigDecimal.java:76) >> Caused by: org.apache.hadoop.hbase.client.RetriesExhaustedException: >> Failed >> after attempts=10, exceptions: >> Thu Sep 06 11:07:39 CEST 2012, >> org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, >> java.io.IOException: >> IPC server unable to read call parameters: Error in readFields Thanks & Regards, Anil Gupta +
anil gupta 2012-09-06, 17:24
-
Re: BigDecimalColumnInterpreterJulian Wissmann 2012-09-06, 18:43
0.92.1 from cdh4. I assume we use the same thing.
2012/9/6 anil gupta <[EMAIL PROTECTED]> > I am using HBase0.92.1. Which version you are using? > > > On Thu, Sep 6, 2012 at 10:19 AM, anil gupta <[EMAIL PROTECTED]> wrote: > > > Hi Julian, > > > > You need to add the column qualifier explicitly in the scanner. You have > > only added the column family in the scanner. > > I am also assuming that you are writing a ByteArray of BigDecimal object > > as value of these cells in HBase. Is that right? > > > > Thanks, > > Anil > > > > > > On Thu, Sep 6, 2012 at 2:28 AM, Julian Wissmann < > [EMAIL PROTECTED]>wrote: > > > >> Hi, anil, > >> > >> I presume you mean something like this: > >> Scan scan = new Scan(_start, _end); > >> scan.addFamily(family.getBytes()); > >> final ColumnInterpreter<BigDecimal, BigDecimal> ci = new > >> mypackage.BigDecimalColumnInterpreter(); > >> AggregationClient ag = new org.apache.hadoop.hbase. > >> client.coprocessor.AggregationClient(config); > >> BigDecimal sum = ag.sum(Bytes.toBytes(tableName), new > >> BigDecimalColumnInterpreter(), scan); > >> > >> > >> When I call this,with the Endpoint in place and loaded as a jar, I get > the > >> above error. > >> When I call it without the endpoint loaded as coprocessor, though, I get > >> this: > >> > >> java.util.concurrent.ExecutionException: > >> org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after > >> attempts=10, exceptions: > >> Thu Sep 06 11:07:39 CEST 2012, > >> org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > >> java.io.IOException: > >> IPC server unable to read call parameters: Error in readFields > >> Thu Sep 06 11:07:40 CEST 2012, > >> org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > >> java.io.IOException: > >> IPC server unable to read call parameters: Error in readFields > >> Thu Sep 06 11:07:41 CEST 2012, > >> org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > >> java.io.IOException: > >> IPC server unable to read call parameters: Error in readFields > >> Thu Sep 06 11:07:42 CEST 2012, > >> org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > >> java.io.IOException: > >> IPC server unable to read call parameters: Error in readFields > >> Thu Sep 06 11:07:44 CEST 2012, > >> org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > >> java.io.IOException: > >> IPC server unable to read call parameters: Error in readFields > >> Thu Sep 06 11:07:46 CEST 2012, > >> org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > >> java.io.IOException: > >> IPC server unable to read call parameters: Error in readFields > >> Thu Sep 06 11:07:50 CEST 2012, > >> org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > >> java.io.IOException: > >> IPC server unable to read call parameters: Error in readFields > >> Thu Sep 06 11:07:54 CEST 2012, > >> org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > >> java.io.IOException: > >> IPC server unable to read call parameters: Error in readFields > >> Thu Sep 06 11:08:02 CEST 2012, > >> org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > >> java.io.IOException: > >> IPC server unable to read call parameters: Error in readFields > >> Thu Sep 06 11:08:18 CEST 2012, > >> org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > >> java.io.IOException: > >> IPC server unable to read call parameters: Error in readFields > >> > >> at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:252) > >> at java.util.concurrent.FutureTask.get(FutureTask.java:111) > >> at > >> > >> > org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.processExecs(HConnectionManager.java:1434) > >> at > org.apache.hadoop.hbase.client.HTable.coprocessorExec(HTable.java:1263) > >> at > >> > >> > org.apache.hadoop.hbase.client.coprocessor.AggregationClient.sum(AggregationClient.java:259) > >> at > >> > >> > helpers.HbaseReaderBigDecimal.getWeeksumSCAN(HbaseReaderBigDecimal.java:355) > >> at helpers.HbaseReaderBigDecimal.main(HbaseReaderBigDecimal.java:76) +
Julian Wissmann 2012-09-06, 18:43
-
Re: BigDecimalColumnInterpreteranil gupta 2012-09-06, 19:22
Yes, we do. :)
Let me know the outcome. If you look at the BD ColumnInterpreter, getValue method is converting the byte array into BigDecimal. So you should not have any problem. The BD ColumnInterpreter is pretty similar to LongColumnInterpreter. Here is the code snippet for getValue() method which will convert Byte[] to BigDecimal: @Override public BigDecimal getValue(byte[] paramArrayOfByte1, byte[] paramArrayOfByte2, KeyValue kv) throws IOException { if ((kv == null || kv.getValue() == null)) return null; return Bytes.toBigDecimal(kv.getValue()); } Thanks, Anil On Thu, Sep 6, 2012 at 11:43 AM, Julian Wissmann <[EMAIL PROTECTED]>wrote: > 0.92.1 from cdh4. I assume we use the same thing. > > 2012/9/6 anil gupta <[EMAIL PROTECTED]> > > > I am using HBase0.92.1. Which version you are using? > > > > > > On Thu, Sep 6, 2012 at 10:19 AM, anil gupta <[EMAIL PROTECTED]> > wrote: > > > > > Hi Julian, > > > > > > You need to add the column qualifier explicitly in the scanner. You > have > > > only added the column family in the scanner. > > > I am also assuming that you are writing a ByteArray of BigDecimal > object > > > as value of these cells in HBase. Is that right? > > > > > > Thanks, > > > Anil > > > > > > > > > On Thu, Sep 6, 2012 at 2:28 AM, Julian Wissmann < > > [EMAIL PROTECTED]>wrote: > > > > > >> Hi, anil, > > >> > > >> I presume you mean something like this: > > >> Scan scan = new Scan(_start, _end); > > >> scan.addFamily(family.getBytes()); > > >> final ColumnInterpreter<BigDecimal, BigDecimal> ci = new > > >> mypackage.BigDecimalColumnInterpreter(); > > >> AggregationClient ag = new org.apache.hadoop.hbase. > > >> client.coprocessor.AggregationClient(config); > > >> BigDecimal sum = ag.sum(Bytes.toBytes(tableName), new > > >> BigDecimalColumnInterpreter(), scan); > > >> > > >> > > >> When I call this,with the Endpoint in place and loaded as a jar, I get > > the > > >> above error. > > >> When I call it without the endpoint loaded as coprocessor, though, I > get > > >> this: > > >> > > >> java.util.concurrent.ExecutionException: > > >> org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after > > >> attempts=10, exceptions: > > >> Thu Sep 06 11:07:39 CEST 2012, > > >> org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > > >> java.io.IOException: > > >> IPC server unable to read call parameters: Error in readFields > > >> Thu Sep 06 11:07:40 CEST 2012, > > >> org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > > >> java.io.IOException: > > >> IPC server unable to read call parameters: Error in readFields > > >> Thu Sep 06 11:07:41 CEST 2012, > > >> org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > > >> java.io.IOException: > > >> IPC server unable to read call parameters: Error in readFields > > >> Thu Sep 06 11:07:42 CEST 2012, > > >> org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > > >> java.io.IOException: > > >> IPC server unable to read call parameters: Error in readFields > > >> Thu Sep 06 11:07:44 CEST 2012, > > >> org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > > >> java.io.IOException: > > >> IPC server unable to read call parameters: Error in readFields > > >> Thu Sep 06 11:07:46 CEST 2012, > > >> org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > > >> java.io.IOException: > > >> IPC server unable to read call parameters: Error in readFields > > >> Thu Sep 06 11:07:50 CEST 2012, > > >> org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > > >> java.io.IOException: > > >> IPC server unable to read call parameters: Error in readFields > > >> Thu Sep 06 11:07:54 CEST 2012, > > >> org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > > >> java.io.IOException: > > >> IPC server unable to read call parameters: Error in readFields > > >> Thu Sep 06 11:08:02 CEST 2012, > > >> org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > > >> java.io.IOException: > > >> IPC server unable to read call parameters: Error in readFields Thanks & Regards, Anil Gupta +
anil gupta 2012-09-06, 19:22
-
Re: BigDecimalColumnInterpreterJulian Wissmann 2012-09-10, 16:36
Hi,
I haven't really gotten to working on this, since last wednesday. Checked readFields() and write() today, but don't really see, why I would need to reimplement those. Admittedly I'm not that into the whole Hbase codebase, yet, so there is a good chance I'm missing something, here. Also, Anil, what hbase library are you coding this against? It does seem like madness, that even though, we're both using this identically it does not work for me. Cheers, Julian 2012/9/6 anil gupta <[EMAIL PROTECTED]> > Yes, we do. :) > Let me know the outcome. If you look at the BD ColumnInterpreter, getValue > method is converting the byte array into BigDecimal. So you should not have > any problem. The BD ColumnInterpreter is pretty similar to > LongColumnInterpreter. > > Here is the code snippet for getValue() method which will convert Byte[] to > BigDecimal: > > @Override > public BigDecimal getValue(byte[] paramArrayOfByte1, byte[] > paramArrayOfByte2, > KeyValue kv) throws IOException { > if ((kv == null || kv.getValue() == null)) > return null; > return Bytes.toBigDecimal(kv.getValue()); > } > > Thanks, > Anil > > > On Thu, Sep 6, 2012 at 11:43 AM, Julian Wissmann > <[EMAIL PROTECTED]>wrote: > > > 0.92.1 from cdh4. I assume we use the same thing. > > > > 2012/9/6 anil gupta <[EMAIL PROTECTED]> > > > > > I am using HBase0.92.1. Which version you are using? > > > > > > > > > On Thu, Sep 6, 2012 at 10:19 AM, anil gupta <[EMAIL PROTECTED]> > > wrote: > > > > > > > Hi Julian, > > > > > > > > You need to add the column qualifier explicitly in the scanner. You > > have > > > > only added the column family in the scanner. > > > > I am also assuming that you are writing a ByteArray of BigDecimal > > object > > > > as value of these cells in HBase. Is that right? > > > > > > > > Thanks, > > > > Anil > > > > > > > > > > > > On Thu, Sep 6, 2012 at 2:28 AM, Julian Wissmann < > > > [EMAIL PROTECTED]>wrote: > > > > > > > >> Hi, anil, > > > >> > > > >> I presume you mean something like this: > > > >> Scan scan = new Scan(_start, _end); > > > >> scan.addFamily(family.getBytes()); > > > >> final ColumnInterpreter<BigDecimal, BigDecimal> ci = new > > > >> mypackage.BigDecimalColumnInterpreter(); > > > >> AggregationClient ag = new org.apache.hadoop.hbase. > > > >> client.coprocessor.AggregationClient(config); > > > >> BigDecimal sum = ag.sum(Bytes.toBytes(tableName), new > > > >> BigDecimalColumnInterpreter(), scan); > > > >> > > > >> > > > >> When I call this,with the Endpoint in place and loaded as a jar, I > get > > > the > > > >> above error. > > > >> When I call it without the endpoint loaded as coprocessor, though, I > > get > > > >> this: > > > >> > > > >> java.util.concurrent.ExecutionException: > > > >> org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed > after > > > >> attempts=10, exceptions: > > > >> Thu Sep 06 11:07:39 CEST 2012, > > > >> org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > > > >> java.io.IOException: > > > >> IPC server unable to read call parameters: Error in readFields > > > >> Thu Sep 06 11:07:40 CEST 2012, > > > >> org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > > > >> java.io.IOException: > > > >> IPC server unable to read call parameters: Error in readFields > > > >> Thu Sep 06 11:07:41 CEST 2012, > > > >> org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > > > >> java.io.IOException: > > > >> IPC server unable to read call parameters: Error in readFields > > > >> Thu Sep 06 11:07:42 CEST 2012, > > > >> org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > > > >> java.io.IOException: > > > >> IPC server unable to read call parameters: Error in readFields > > > >> Thu Sep 06 11:07:44 CEST 2012, > > > >> org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > > > >> java.io.IOException: > > > +
Julian Wissmann 2012-09-10, 16:36
-
Re: BigDecimalColumnInterpreteranil gupta 2012-09-10, 18:22
Hi Julian,
I am using only cdh4 libraries. I use the jars present under hadoop and hbase installed dir. In my last email i gave you some more pointers. Try to follow them and see what happens. If then also it doesn't works for you, then i will try to write an utility to test BigDecimalColumnInterpreter on your setup also. Thanks, Anil On Mon, Sep 10, 2012 at 9:36 AM, Julian Wissmann <[EMAIL PROTECTED]>wrote: > Hi, > > I haven't really gotten to working on this, since last wednesday. > Checked readFields() and write() today, but don't really see, why I would > need to reimplement those. Admittedly I'm not that into the whole Hbase > codebase, yet, so there is a good chance I'm missing something, here. > > Also, Anil, what hbase library are you coding this against? > It does seem like madness, that even though, we're both using this > identically it does not work for me. > > Cheers, > > Julian > > 2012/9/6 anil gupta <[EMAIL PROTECTED]> > > > Yes, we do. :) > > Let me know the outcome. If you look at the BD ColumnInterpreter, > getValue > > method is converting the byte array into BigDecimal. So you should not > have > > any problem. The BD ColumnInterpreter is pretty similar to > > LongColumnInterpreter. > > > > Here is the code snippet for getValue() method which will convert Byte[] > to > > BigDecimal: > > > > @Override > > public BigDecimal getValue(byte[] paramArrayOfByte1, byte[] > > paramArrayOfByte2, > > KeyValue kv) throws IOException { > > if ((kv == null || kv.getValue() == null)) > > return null; > > return Bytes.toBigDecimal(kv.getValue()); > > } > > > > Thanks, > > Anil > > > > > > On Thu, Sep 6, 2012 at 11:43 AM, Julian Wissmann > > <[EMAIL PROTECTED]>wrote: > > > > > 0.92.1 from cdh4. I assume we use the same thing. > > > > > > 2012/9/6 anil gupta <[EMAIL PROTECTED]> > > > > > > > I am using HBase0.92.1. Which version you are using? > > > > > > > > > > > > On Thu, Sep 6, 2012 at 10:19 AM, anil gupta <[EMAIL PROTECTED]> > > > wrote: > > > > > > > > > Hi Julian, > > > > > > > > > > You need to add the column qualifier explicitly in the scanner. You > > > have > > > > > only added the column family in the scanner. > > > > > I am also assuming that you are writing a ByteArray of BigDecimal > > > object > > > > > as value of these cells in HBase. Is that right? > > > > > > > > > > Thanks, > > > > > Anil > > > > > > > > > > > > > > > On Thu, Sep 6, 2012 at 2:28 AM, Julian Wissmann < > > > > [EMAIL PROTECTED]>wrote: > > > > > > > > > >> Hi, anil, > > > > >> > > > > >> I presume you mean something like this: > > > > >> Scan scan = new Scan(_start, _end); > > > > >> scan.addFamily(family.getBytes()); > > > > >> final ColumnInterpreter<BigDecimal, BigDecimal> ci = new > > > > >> mypackage.BigDecimalColumnInterpreter(); > > > > >> AggregationClient ag = new org.apache.hadoop.hbase. > > > > >> client.coprocessor.AggregationClient(config); > > > > >> BigDecimal sum = ag.sum(Bytes.toBytes(tableName), new > > > > >> BigDecimalColumnInterpreter(), scan); > > > > >> > > > > >> > > > > >> When I call this,with the Endpoint in place and loaded as a jar, I > > get > > > > the > > > > >> above error. > > > > >> When I call it without the endpoint loaded as coprocessor, > though, I > > > get > > > > >> this: > > > > >> > > > > >> java.util.concurrent.ExecutionException: > > > > >> org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed > > after > > > > >> attempts=10, exceptions: > > > > >> Thu Sep 06 11:07:39 CEST 2012, > > > > >> org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > > > > >> java.io.IOException: > > > > >> IPC server unable to read call parameters: Error in readFields > > > > >> Thu Sep 06 11:07:40 CEST 2012, > > > > >> org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@7bd6747b, > > > > >> java.io.IOException: Thanks & Regards, Anil Gupta +
anil gupta 2012-09-10, 18:22
-
Re: BigDecimalColumnInterpreterJulian Wissmann 2012-09-12, 16:27
Hi,
so I'm slowly getting an overview of the code, here. I haven't really understood the problem yet, though. DataInput and DataOutput cannot handle BigDecimal, which seems to be somehwere close to the root cause of the problem. The error is being triggered in HBaseServer on line 1642 param.readFields(dis); which calls org.apache.hadoop.io.writable, which implements write and readFields(), and I assume is being implemented by HbaseObjectWritable#readFields. In HbaseObjectWritable#readObject DataInput in then gets checked for being a primitive data type and read accordingly. Now if I interpret Bytes#valueOf() correctly, it just takes a BigDecimal value and converts _just_ the value to byte[] and not the whole object. So what readObject finds here, should be interpreted as byte[] and happily passed on. The first method, that should even care about parsing this to BigDecimal would then be BigDecimalColumnInterpreter#getValue() To test this, I decided to overwrite write and readFields, as I inherit them from Exec, anyway, however I have no understanding of how these methods work. I put in a few printlns to get a feeling for it, but turns out it is never even beling called, at all. 2012/9/10 anil gupta <[EMAIL PROTECTED]> > Hi Julian, > > I am using only cdh4 libraries. I use the jars present under hadoop and > hbase installed dir. In my last email i gave you some more pointers. Try to > follow them and see what happens. > If then also it doesn't works for you, then i will try to write an utility > to test BigDecimalColumnInterpreter on your setup also. > > Thanks, > Anil > > On Mon, Sep 10, 2012 at 9:36 AM, Julian Wissmann > <[EMAIL PROTECTED]>wrote: > > > Hi, > > > > I haven't really gotten to working on this, since last wednesday. > > Checked readFields() and write() today, but don't really see, why I would > > need to reimplement those. Admittedly I'm not that into the whole Hbase > > codebase, yet, so there is a good chance I'm missing something, here. > > > > Also, Anil, what hbase library are you coding this against? > > It does seem like madness, that even though, we're both using this > > identically it does not work for me. > > > > Cheers, > > > > Julian > > > > 2012/9/6 anil gupta <[EMAIL PROTECTED]> > > > > > Yes, we do. :) > > > Let me know the outcome. If you look at the BD ColumnInterpreter, > > getValue > > > method is converting the byte array into BigDecimal. So you should not > > have > > > any problem. The BD ColumnInterpreter is pretty similar to > > > LongColumnInterpreter. > > > > > > Here is the code snippet for getValue() method which will convert > Byte[] > > to > > > BigDecimal: > > > > > > @Override > > > public BigDecimal getValue(byte[] paramArrayOfByte1, byte[] > > > paramArrayOfByte2, > > > KeyValue kv) throws IOException { > > > if ((kv == null || kv.getValue() == null)) > > > return null; > > > return Bytes.toBigDecimal(kv.getValue()); > > > } > > > > > > Thanks, > > > Anil > > > > > > > > > On Thu, Sep 6, 2012 at 11:43 AM, Julian Wissmann > > > <[EMAIL PROTECTED]>wrote: > > > > > > > 0.92.1 from cdh4. I assume we use the same thing. > > > > > > > > 2012/9/6 anil gupta <[EMAIL PROTECTED]> > > > > > > > > > I am using HBase0.92.1. Which version you are using? > > > > > > > > > > > > > > > On Thu, Sep 6, 2012 at 10:19 AM, anil gupta <[EMAIL PROTECTED] > > > > > > wrote: > > > > > > > > > > > Hi Julian, > > > > > > > > > > > > You need to add the column qualifier explicitly in the scanner. > You > > > > have > > > > > > only added the column family in the scanner. > > > > > > I am also assuming that you are writing a ByteArray of BigDecimal > > > > object > > > > > > as value of these cells in HBase. Is that right? > > > > > > > > > > > > Thanks, > > > > > > Anil > > > > > > > > > > > > > > > > > > On Thu, Sep 6, 2012 at 2:28 AM, Julian Wissmann < +
Julian Wissmann 2012-09-12, 16:27
-
Re: BigDecimalColumnInterpreterTed Yu 2012-09-12, 16:45
Thanks for digging, Julian.
Looks like we need to support BigDecimal in HbaseObjectWritable Actually once a test is written for BigDecimalColumnInterpreter, it would become much easier for anyone to debug this issue. On Wed, Sep 12, 2012 at 9:27 AM, Julian Wissmann <[EMAIL PROTECTED]>wrote: > Hi, > > so I'm slowly getting an overview of the code, here. I haven't really > understood the problem yet, though. > > DataInput and DataOutput cannot handle BigDecimal, which seems to be > somehwere close to the root cause of the problem. > The error is being triggered in HBaseServer on line > 1642 param.readFields(dis); > which calls org.apache.hadoop.io.writable, which implements write and > readFields(), and I assume is being implemented by > HbaseObjectWritable#readFields. > In HbaseObjectWritable#readObject DataInput in then gets checked for being > a primitive data type and read accordingly. > > Now if I interpret Bytes#valueOf() correctly, it just takes a BigDecimal > value and converts _just_ the value to byte[] and not the whole object. So > what readObject finds here, should be interpreted as byte[] and happily > passed on. The first method, that should even care about parsing this to > BigDecimal would then be BigDecimalColumnInterpreter#getValue() > > To test this, I decided to overwrite write and readFields, as I inherit > them from Exec, anyway, however I have no understanding of how these > methods work. > I put in a few printlns to get a feeling for it, but turns out it is never > even beling called, at all. > > > 2012/9/10 anil gupta <[EMAIL PROTECTED]> > > > Hi Julian, > > > > I am using only cdh4 libraries. I use the jars present under hadoop and > > hbase installed dir. In my last email i gave you some more pointers. Try > to > > follow them and see what happens. > > If then also it doesn't works for you, then i will try to write an > utility > > to test BigDecimalColumnInterpreter on your setup also. > > > > Thanks, > > Anil > > > > On Mon, Sep 10, 2012 at 9:36 AM, Julian Wissmann > > <[EMAIL PROTECTED]>wrote: > > > > > Hi, > > > > > > I haven't really gotten to working on this, since last wednesday. > > > Checked readFields() and write() today, but don't really see, why I > would > > > need to reimplement those. Admittedly I'm not that into the whole Hbase > > > codebase, yet, so there is a good chance I'm missing something, here. > > > > > > Also, Anil, what hbase library are you coding this against? > > > It does seem like madness, that even though, we're both using this > > > identically it does not work for me. > > > > > > Cheers, > > > > > > Julian > > > > > > 2012/9/6 anil gupta <[EMAIL PROTECTED]> > > > > > > > Yes, we do. :) > > > > Let me know the outcome. If you look at the BD ColumnInterpreter, > > > getValue > > > > method is converting the byte array into BigDecimal. So you should > not > > > have > > > > any problem. The BD ColumnInterpreter is pretty similar to > > > > LongColumnInterpreter. > > > > > > > > Here is the code snippet for getValue() method which will convert > > Byte[] > > > to > > > > BigDecimal: > > > > > > > > @Override > > > > public BigDecimal getValue(byte[] paramArrayOfByte1, byte[] > > > > paramArrayOfByte2, > > > > KeyValue kv) throws IOException { > > > > if ((kv == null || kv.getValue() == null)) > > > > return null; > > > > return > Bytes.toBigDecimal(kv.getValue()); > > > > } > > > > > > > > Thanks, > > > > Anil > > > > > > > > > > > > On Thu, Sep 6, 2012 at 11:43 AM, Julian Wissmann > > > > <[EMAIL PROTECTED]>wrote: > > > > > > > > > 0.92.1 from cdh4. I assume we use the same thing. > > > > > > > > > > 2012/9/6 anil gupta <[EMAIL PROTECTED]> > > > > > > > > > > > I am using HBase0.92.1. Which version you are using? > > > > > > > > > > > > > > > > > > On Thu, Sep 6, 2012 at 10:19 AM, anil gupta < > [EMAIL PROTECTED] +
Ted Yu 2012-09-12, 16:45
-
Re: BigDecimalColumnInterpreterJulian Wissmann 2012-09-12, 19:56
Cool!
I'm sure I'll find some time to digg into it early next week if nobody else lusts after it ;-) Cheers 2012/9/12 Ted Yu <[EMAIL PROTECTED]> > Thanks for digging, Julian. > > Looks like we need to support BigDecimal in HbaseObjectWritable > > Actually once a test is written for BigDecimalColumnInterpreter, it would > become much easier for anyone to debug this issue. > > On Wed, Sep 12, 2012 at 9:27 AM, Julian Wissmann > <[EMAIL PROTECTED]>wrote: > > > Hi, > > > > so I'm slowly getting an overview of the code, here. I haven't really > > understood the problem yet, though. > > > > DataInput and DataOutput cannot handle BigDecimal, which seems to be > > somehwere close to the root cause of the problem. > > The error is being triggered in HBaseServer on line > > 1642 param.readFields(dis); > > which calls org.apache.hadoop.io.writable, which implements write and > > readFields(), and I assume is being implemented by > > HbaseObjectWritable#readFields. > > In HbaseObjectWritable#readObject DataInput in then gets checked for > being > > a primitive data type and read accordingly. > > > > Now if I interpret Bytes#valueOf() correctly, it just takes a BigDecimal > > value and converts _just_ the value to byte[] and not the whole object. > So > > what readObject finds here, should be interpreted as byte[] and happily > > passed on. The first method, that should even care about parsing this to > > BigDecimal would then be BigDecimalColumnInterpreter#getValue() > > > > To test this, I decided to overwrite write and readFields, as I inherit > > them from Exec, anyway, however I have no understanding of how these > > methods work. > > I put in a few printlns to get a feeling for it, but turns out it is > never > > even beling called, at all. > > > > > > 2012/9/10 anil gupta <[EMAIL PROTECTED]> > > > > > Hi Julian, > > > > > > I am using only cdh4 libraries. I use the jars present under hadoop and > > > hbase installed dir. In my last email i gave you some more pointers. > Try > > to > > > follow them and see what happens. > > > If then also it doesn't works for you, then i will try to write an > > utility > > > to test BigDecimalColumnInterpreter on your setup also. > > > > > > Thanks, > > > Anil > > > > > > On Mon, Sep 10, 2012 at 9:36 AM, Julian Wissmann > > > <[EMAIL PROTECTED]>wrote: > > > > > > > Hi, > > > > > > > > I haven't really gotten to working on this, since last wednesday. > > > > Checked readFields() and write() today, but don't really see, why I > > would > > > > need to reimplement those. Admittedly I'm not that into the whole > Hbase > > > > codebase, yet, so there is a good chance I'm missing something, here. > > > > > > > > Also, Anil, what hbase library are you coding this against? > > > > It does seem like madness, that even though, we're both using this > > > > identically it does not work for me. > > > > > > > > Cheers, > > > > > > > > Julian > > > > > > > > 2012/9/6 anil gupta <[EMAIL PROTECTED]> > > > > > > > > > Yes, we do. :) > > > > > Let me know the outcome. If you look at the BD ColumnInterpreter, > > > > getValue > > > > > method is converting the byte array into BigDecimal. So you should > > not > > > > have > > > > > any problem. The BD ColumnInterpreter is pretty similar to > > > > > LongColumnInterpreter. > > > > > > > > > > Here is the code snippet for getValue() method which will convert > > > Byte[] > > > > to > > > > > BigDecimal: > > > > > > > > > > @Override > > > > > public BigDecimal getValue(byte[] paramArrayOfByte1, byte[] > > > > > paramArrayOfByte2, > > > > > KeyValue kv) throws IOException { > > > > > if ((kv == null || kv.getValue() == null)) > > > > > return null; > > > > > return > > Bytes.toBigDecimal(kv.getValue()); > > > > > } > > > > > > > > > > Thanks, > > > > > Anil > > > > > > > > > > > > > > > On Thu, Sep 6, 2012 at 11:43 AM, Julian Wissmann +
Julian Wissmann 2012-09-12, 19:56
-
Re: BigDecimalColumnInterpreteranil gupta 2012-09-14, 07:56
Hi Julian,
I am still failing to understand how the same BigDecimalColumnInterpreter(BDCI) is working at my end. I am doing the interpretation of the bytes in getValue method and i havent faced any trouble yet. There has to be some difference between our set-up or you have taken a very different approach using BDCI. I have created a util class which will create a table in Hbase and then run a aggregation. Here is the link to class: https://dl.dropbox.com/u/64149128/TestBigDecimalCI.java . Please make sure that you use the correct libraries at client and server side. You can run this code directly from the client side. I am using HBase 0.92.1(cdh4.0.0). Let me know the outcome or if you face any error in running that class. I dont have the cluster access right now. If possible, tomorrow in morning i will also try to provide the stack trace of method call of BigDecimalColumnInterpreter.getValue(). @Ted: It would be of great help if you can also give the above mentioned utility a try on your own set-up and let me know the outcome. Thanks, Anil Gupta On Wed, Sep 12, 2012 at 12:56 PM, Julian Wissmann <[EMAIL PROTECTED]>wrote: > Cool! > I'm sure I'll find some time to digg into it early next week if nobody else > lusts after it ;-) > > Cheers > > 2012/9/12 Ted Yu <[EMAIL PROTECTED]> > > > Thanks for digging, Julian. > > > > Looks like we need to support BigDecimal in HbaseObjectWritable > > > > Actually once a test is written for BigDecimalColumnInterpreter, it would > > become much easier for anyone to debug this issue. > > > > On Wed, Sep 12, 2012 at 9:27 AM, Julian Wissmann > > <[EMAIL PROTECTED]>wrote: > > > > > Hi, > > > > > > so I'm slowly getting an overview of the code, here. I haven't really > > > understood the problem yet, though. > > > > > > DataInput and DataOutput cannot handle BigDecimal, which seems to be > > > somehwere close to the root cause of the problem. > > > The error is being triggered in HBaseServer on line > > > 1642 param.readFields(dis); > > > which calls org.apache.hadoop.io.writable, which implements write and > > > readFields(), and I assume is being implemented by > > > HbaseObjectWritable#readFields. > > > In HbaseObjectWritable#readObject DataInput in then gets checked for > > being > > > a primitive data type and read accordingly. > > > > > > Now if I interpret Bytes#valueOf() correctly, it just takes a > BigDecimal > > > value and converts _just_ the value to byte[] and not the whole object. > > So > > > what readObject finds here, should be interpreted as byte[] and happily > > > passed on. The first method, that should even care about parsing this > to > > > BigDecimal would then be BigDecimalColumnInterpreter#getValue() > > > > > > To test this, I decided to overwrite write and readFields, as I inherit > > > them from Exec, anyway, however I have no understanding of how these > > > methods work. > > > I put in a few printlns to get a feeling for it, but turns out it is > > never > > > even beling called, at all. > > > > > > > > > 2012/9/10 anil gupta <[EMAIL PROTECTED]> > > > > > > > Hi Julian, > > > > > > > > I am using only cdh4 libraries. I use the jars present under hadoop > and > > > > hbase installed dir. In my last email i gave you some more pointers. > > Try > > > to > > > > follow them and see what happens. > > > > If then also it doesn't works for you, then i will try to write an > > > utility > > > > to test BigDecimalColumnInterpreter on your setup also. > > > > > > > > Thanks, > > > > Anil > > > > > > > > On Mon, Sep 10, 2012 at 9:36 AM, Julian Wissmann > > > > <[EMAIL PROTECTED]>wrote: > > > > > > > > > Hi, > > > > > > > > > > I haven't really gotten to working on this, since last wednesday. > > > > > Checked readFields() and write() today, but don't really see, why I > > > would > > > > > need to reimplement those. Admittedly I'm not that into the whole > > Hbase > > > > > codebase, yet, so there is a good chance I'm missing something, > here. Thanks & Regards, Anil Gupta +
anil gupta 2012-09-14, 07:56
-
Re: BigDecimalColumnInterpreteranil gupta 2012-09-14, 19:27
Hi Guys,
I found something really interesting. If i run the utility then i also get the errors related to readfields. *Howerver, within the same eclipse project, the separate class which i have been using in my setup for more than 2-3 weeks is working absolutely fine. In a short while i could not figure out what's helping this class to run successfully. I'll try to dig in. *Here is the error message i received from utility:* *2012-09-14 12:17:04,127 WARN [main] client.HConnectionManager$HConnectionImplementation (HConnectionManager.java:processExecs(1468)) - Error executing for row java.util.concurrent.ExecutionException: org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=10, exceptions: Fri Sep 14 12:16:25 PDT 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@45e67e6a, java.io.IOException: IPC server unable to read call parameters: Error in readFields Fri Sep 14 12:16:26 PDT 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@45e67e6a, java.io.IOException: IPC server unable to read call parameters: Error in readFields Fri Sep 14 12:16:27 PDT 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@45e67e6a, java.io.IOException: IPC server unable to read call parameters: Error in readFields Fri Sep 14 12:16:28 PDT 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@45e67e6a, java.io.IOException: IPC server unable to read call parameters: Error in readFields Fri Sep 14 12:16:30 PDT 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@45e67e6a, java.io.IOException: IPC server unable to read call parameters: Error in readFields Fri Sep 14 12:16:32 PDT 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@45e67e6a, java.io.IOException: IPC server unable to read call parameters: Error in readFields Fri Sep 14 12:16:36 PDT 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@45e67e6a, java.io.IOException: IPC server unable to read call parameters: Error in readFields Fri Sep 14 12:16:40 PDT 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@45e67e6a, java.io.IOException: IPC server unable to read call parameters: Error in readFields Fri Sep 14 12:16:48 PDT 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@45e67e6a, java.io.IOException: IPC server unable to read call parameters: Error in readFields Fri Sep 14 12:17:04 PDT 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@45e67e6a, java.io.IOException: IPC server unable to read call parameters: Error in readFields at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222) at java.util.concurrent.FutureTask.get(FutureTask.java:83) at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.processExecs(HConnectionManager.java:1466) at org.apache.hadoop.hbase.client.HTable.coprocessorExec(HTable.java:1600) at org.apache.hadoop.hbase.client.coprocessor.AggregationClient.sum(AggregationClient.java:230) at com.intuit.ihub.hbase.poc.aggregation.TestBigDecimalCI.doAggregation(TestBigDecimalCI.java:77) at com.intuit.ihub.hbase.poc.aggregation.TestBigDecimalCI.main(TestBigDecimalCI.java:121) Caused by: org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=10, exceptions: Fri Sep 14 12:16:25 PDT 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@45e67e6a, java.io.IOException: IPC server unable to read call parameters: Error in readFields Fri Sep 14 12:16:26 PDT 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@45e67e6a, java.io.IOException: IPC server unable to read call parameters: Error in readFields Fri Sep 14 12:16:27 PDT 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@45e67e6a, java.io.IOException: IPC server unable to read call parameters: Error in readFields Fri Sep 14 12:16:28 PDT 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@45e67e6a, java.io.IOException: IPC server unable to read call parameters: Error in readFields Fri Sep 14 12:16:30 PDT 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@45e67e6a, java.io.IOException: IPC server unable to read call parameters: Error in readFields Fri Sep 14 12:16:32 PDT 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@45e67e6a, java.io.IOException: IPC server unable to read call parameters: Error in readFields Fri Sep 14 12:16:36 PDT 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@45e67e6a, java.io.IOException: IPC server unable to read call parameters: Error in readFields Fri Sep 14 12:16:40 PDT 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@45e67e6a, java.io.IOException: IPC server unable to read call parameters: Error in readFields Fri Sep 14 12:16:48 PDT 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@45e67e6a, java.io.IOException: IPC server unable to read call parameters: Error in readFields Fri Sep 14 12:17:04 PDT 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@45e67e6a, java.io.IOException: IPC server unable to read call parameters: Error in readFields at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getRegionServerWithRetries(HConnectionManager.java:1345) at org.apache.hadoop.hbase.ipc.ExecRPCInvoker.invoke(ExecRPCInvoker.java:79) at $Proxy9.getSum(Unknown Source) at org.apache.hadoop.hbase.client.coprocessor.AggregationClient$4.call(AggregationClient.java:234) at org.apache.hadoop.hbase.client.coprocessor.AggregationClient$4.call(AggregationClient.java:231) at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation$4.call(HConnectionManager.java:1454) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) 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:619) org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=10, exceptions: Fri Sep 14 12:16:25 PDT 2012, org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@45e67e6a, java.io.IOExcept +
anil gupta 2012-09-14, 19:27
-
Re: BigDecimalColumnInterpreteranil gupta 2012-09-14, 22:17
Hi Guys,
The regionservers need to have the jar which contains the BigDecimalColumnInterpreter class in their classpath. I was successfully able to run the utility class once i copied the jar across the cluster and rebooted the cluster. Also, please specify the following property in hbase-site.xml to load the co-processor: <property> <name>hbase.coprocessor.region.classes</name> <value>org.apache.hadoop.hbase.coprocessor.AggregateImplementation</value> </property> Let me know once you guys try this out. Thanks, Anil Gupta On Fri, Sep 14, 2012 at 12:27 PM, anil gupta <[EMAIL PROTECTED]> wrote: > Hi Guys, > > I found something really interesting. If i run the utility then i also get > the errors related to readfields. > *Howerver, within the same eclipse project, the separate class which i > have been using in my setup for more than 2-3 weeks is working absolutely > fine. In a short while i could not figure out what's helping this class to > run successfully. I'll try to dig in. > > > *Here is the error message i received from utility:* > *2012-09-14 12:17:04,127 WARN [main] > client.HConnectionManager$HConnectionImplementation > (HConnectionManager.java:processExecs(1468)) - Error executing for row > java.util.concurrent.ExecutionException: > org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after > attempts=10, exceptions: > Fri Sep 14 12:16:25 PDT 2012, > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@45e67e6a, > java.io.IOException: IPC server unable to read call parameters: Error in > readFields > Fri Sep 14 12:16:26 PDT 2012, > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@45e67e6a, > java.io.IOException: IPC server unable to read call parameters: Error in > readFields > Fri Sep 14 12:16:27 PDT 2012, > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@45e67e6a, > java.io.IOException: IPC server unable to read call parameters: Error in > readFields > Fri Sep 14 12:16:28 PDT 2012, > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@45e67e6a, > java.io.IOException: IPC server unable to read call parameters: Error in > readFields > Fri Sep 14 12:16:30 PDT 2012, > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@45e67e6a, > java.io.IOException: IPC server unable to read call parameters: Error in > readFields > Fri Sep 14 12:16:32 PDT 2012, > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@45e67e6a, > java.io.IOException: IPC server unable to read call parameters: Error in > readFields > Fri Sep 14 12:16:36 PDT 2012, > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@45e67e6a, > java.io.IOException: IPC server unable to read call parameters: Error in > readFields > Fri Sep 14 12:16:40 PDT 2012, > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@45e67e6a, > java.io.IOException: IPC server unable to read call parameters: Error in > readFields > Fri Sep 14 12:16:48 PDT 2012, > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@45e67e6a, > java.io.IOException: IPC server unable to read call parameters: Error in > readFields > Fri Sep 14 12:17:04 PDT 2012, > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@45e67e6a, > java.io.IOException: IPC server unable to read call parameters: Error in > readFields > > at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222) > at java.util.concurrent.FutureTask.get(FutureTask.java:83) > at > org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.processExecs(HConnectionManager.java:1466) > at > org.apache.hadoop.hbase.client.HTable.coprocessorExec(HTable.java:1600) > at > org.apache.hadoop.hbase.client.coprocessor.AggregationClient.sum(AggregationClient.java:230) > at > com.intuit.ihub.hbase.poc.aggregation.TestBigDecimalCI.doAggregation(TestBigDecimalCI.java:77) > at > com.intuit.ihub.hbase.poc.aggregation.TestBigDecimalCI.main(TestBigDecimalCI.java:121) > Caused by: org.apache.hadoop.hbase.client.RetriesExhaustedException: > Failed after attempts=10, exceptions: > Fri Sep 14 12:16:25 PDT 2012, > org.apache.hadoop.hbase.ipc.ExecRPCInvoker$1@45e67e6a, Thanks & Regards, Anil Gupta +
anil gupta 2012-09-14, 22:17
-
Re: BigDecimalColumnInterpreterTed Yu 2012-09-15, 14:56
Anil:
Thanks for the sharing. If you add a test to HBASE-6669 showing use of BigDecimalColumnInterpreter, your patch would be more easily acceptable. Cheers On Fri, Sep 14, 2012 at 3:17 PM, anil gupta <[EMAIL PROTECTED]> wrote: > Hi Guys, > > The regionservers need to have the jar which contains the > BigDecimalColumnInterpreter class in their classpath. I was successfully > able to run the utility class once i copied the jar across the cluster and > rebooted the cluster. Also, please specify the following property in > hbase-site.xml to load the co-processor: > <property> > <name>hbase.coprocessor.region.classes</name> > > <value>org.apache.hadoop.hbase.coprocessor.AggregateImplementation</value> > </property> > > Let me know once you guys try this out. > > Thanks, > Anil Gupta > > +
Ted Yu 2012-09-15, 14:56
-
Re: BigDecimalColumnInterpreteranil gupta 2012-09-15, 15:26
Hi Ted,
I've been unable to squeeze time for writing unit test for BDCI due to my tight schedule lately. I will try to submit the patch with unit test next week. Thanks, Anil On Sat, Sep 15, 2012 at 7:56 AM, Ted Yu <[EMAIL PROTECTED]> wrote: > Anil: > Thanks for the sharing. > If you add a test to HBASE-6669 showing use of BigDecimalColumnInterpreter, > your patch would be more easily acceptable. > > Cheers > > On Fri, Sep 14, 2012 at 3:17 PM, anil gupta <[EMAIL PROTECTED]> wrote: > > > Hi Guys, > > > > The regionservers need to have the jar which contains the > > BigDecimalColumnInterpreter class in their classpath. I was successfully > > able to run the utility class once i copied the jar across the cluster > and > > rebooted the cluster. Also, please specify the following property in > > hbase-site.xml to load the co-processor: > > <property> > > <name>hbase.coprocessor.region.classes</name> > > > > > <value>org.apache.hadoop.hbase.coprocessor.AggregateImplementation</value> > > </property> > > > > Let me know once you guys try this out. > > > > Thanks, > > Anil Gupta > > > > > -- Thanks & Regards, Anil Gupta +
anil gupta 2012-09-15, 15:26
-
Re: BigDecimalColumnInterpreterJulian Wissmann 2012-10-03, 16:26
Hi, thank you Anil. I realized I had put the jar only on the master and
expected stuff to work from there. I now deployed it on all the regionservers and loaded AggregateImplementation on the regions. It works now. Thank you! 2012/9/29 Robertis Tongbram <[EMAIL PROTECTED]> > For pushing jars to the region servers , i have a small script. > > <code> > > #!/usr/bin/expect -f > > > for {set i 1} {$i < 6} {incr i 1} { > > > spawn scp target/lib.jar root@region-$i:/opt/hbase/hbase-0.92.1/lib/ > expect { > -re ".*es.*o.*" { > exp_send "yes\r" > exp_continue > } > -re ".*sword.*" { > exp_send "p4sSw0rd\r" > } > } > interact > > } > > </code> > > I have my region servers as region-1, region-2 and so on, default > installation is at /opt/hbase/hbase-0.92.1/ > lib.jar is the final jar file that has the classes. > > I put this script where the pom file is ( i have a maven project). > > > > > Hope this helps. > > > Thanks, > Robertis > > > > On Sat, Sep 29, 2012 at 8:35 AM, anil gupta <[EMAIL PROTECTED]> wrote: > > > This ColumnInterpreter is required at the server side. You need to put > the > > jar into the classpath of regionservers. HBase picks up all the jar under > > $hbase_home/lib folder. So you can put the jar containing the BDCI class > in > > this folder. Please make sure that in your client side you are > referencing > > the correct BDCI class(the full name of class at server side should match > > with the ColumnInterpreter class you reference on client side). Once you > > put the jar into lib folder then you will need to restart the cluster > once > > so that the regionserver will the load the jar containing BDCI. > > > > Basically you just need to put the utility class(which i sent a couple of > > weeks ago) into a jar, copy the jar into lib folder, restart the cluster, > > and then run the utility. It should work. > > > > Hope it's clear this time. > > > > Thanks, > > Anil Gupta > > > > On Sat, Sep 29, 2012 at 8:03 AM, Julian Wissmann > > <[EMAIL PROTECTED]>wrote: > > > > > Interesting. Did you put just the ColumnInterpreter into the jar? > > > > > > 2012/9/21 Anil Gupta <[EMAIL PROTECTED]> > > > > > > > I was able to run it successfully once I copied the jar into lib > > folders > > > > of region server and hamster and restarted the cluster. > > > > Did you copied the jar into lib folders of region servers and hmaster > > and > > > > restarted the cluster. If yes, can you share the logs of regionserver > > > > hosting the region test table? > > > > > > > > Best Regards, > > > > Anil > > > > > > > > On Sep 21, 2012, at 4:14 AM, Julian Wissmann < > [EMAIL PROTECTED] > > > > > > > wrote: > > > > > > > > > Hi Anil, > > > > > > > > > > found some time to test it, today. Same error as you get, same > error > > as > > > > > always ;-) > > > > > > > > > > Julian > > > > > > > > > > 2012/9/20 anil gupta <[EMAIL PROTECTED]> > > > > > > > > > >> Hi Julian, > > > > >> > > > > >> I am curious to know whether you got the opportunity to test BDCI > > > > utility i > > > > >> sent last week along with some suggestions on using it? Did it run > > > > >> successfully? > > > > >> > > > > >> I will try to have a look at your unit test over weekend. > > > > >> Thanks, > > > > >> Anil Gupta > > > > >> > > > > >> On Thu, Sep 20, 2012 at 10:29 AM, Julian Wissmann > > > > >> <[EMAIL PROTECTED]>wrote: > > > > >> > > > > >>> Hi, > > > > >>> > > > > >>> as I've also mentioned in the JIRA Issue: > > > > >>> > > > > >>> I've written a Test, but have problems with Medium Tests > requiring > > > > >>> MiniDFSCluster: > > > > >>> > > > > >>> > > > > >> > > > > > > > > > > ------------------------------------------------------------------------------- > > > > >>> Test set: > org.apache.hadoop.hbase.coprocessor.TestAggregateProtocol > > > > >>> > > > > >>> > > > > >> > > > > > > > > > > ----------------------------------------------- +
Julian Wissmann 2012-10-03, 16:26
|