|
View:
New views
8 Messages
—
Rating Filter:
Alert me
|
|
|
Problem using RowFilterHello,
I am trying to use a RowFilter and continue to get the following error: Exception in thread "main" org.apache.hadoop.hbase.client.RetriesExhaustedException: Trying to contact region server 127.0.0.1:54441 for region TableData,,1254329413425, row '', but failed after 10 attempts. Exceptions: java.io.IOException: Call to /127.0.0.1:54441 failed on local exception: java.io.EOFException java.io.IOException: Call to /127.0.0.1:54441 failed on local exception: java.io.EOFException java.io.IOException: Call to /127.0.0.1:54441 failed on local exception: java.io.EOFException ... Here is the code: HBaseConfiguration conf = new HBaseConfiguration(); HTable table = new HTable(conf, tableName); Scan scan = new Scan(); scan.setMaxVersions(); scan.setTimeRange(timeStart, timeEnd); RowFilter rf = new RowFilter(CompareOp.EQUAL, new SubstringComparator("abc")); scan.setFilter(rf); ResultScanner scanner = table.getScanner(scan); I've never came across this before until I started trying to use RowFilter. And if I comment out the setFilter function, there is no longer a problem. Actually, I get the exact same error for any type of Filter I attempt to use. I'm using 0.20 on a pseudo-dist setup - standard config as in the Getting Started docs. Any ideas on this? Am I using the Filter correctly? Thanks J |
|
|
Re: Problem using RowFilterLooks like your running into the issue described in this jira:
https://issues.apache.org/jira/browse/HBASE-1828 On Thu, Oct 1, 2009 at 5:52 AM, Bluemetrix Development < bmdevelopment@...> wrote: > Hello, > I am trying to use a RowFilter and continue to get the following error: > > Exception in thread "main" > org.apache.hadoop.hbase.client.RetriesExhaustedException: Trying to > contact region server 127.0.0.1:54441 for region > TableData,,1254329413425, row '', but failed after 10 attempts. > Exceptions: > java.io.IOException: Call to /127.0.0.1:54441 failed on local > exception: java.io.EOFException > java.io.IOException: Call to /127.0.0.1:54441 failed on local > exception: java.io.EOFException > java.io.IOException: Call to /127.0.0.1:54441 failed on local > exception: java.io.EOFException > ... > > Here is the code: > > HBaseConfiguration conf = new HBaseConfiguration(); > HTable table = new HTable(conf, tableName); > Scan scan = new Scan(); > scan.setMaxVersions(); > scan.setTimeRange(timeStart, timeEnd); > RowFilter rf = new RowFilter(CompareOp.EQUAL, new > SubstringComparator("abc")); > scan.setFilter(rf); > ResultScanner scanner = table.getScanner(scan); > > I've never came across this before until I started trying to use > RowFilter. And if I comment out the setFilter function, there is no > longer a problem. Actually, I get the exact same error for any type of > Filter I attempt to use. I'm using 0.20 on a pseudo-dist setup - > standard config as in the Getting Started docs. Any ideas on this? Am > I using the Filter correctly? > > Thanks > J > |
|
|
Re: Problem using RowFilterHi, Thanks very much.
I applied the patch and the RowFilter seem to be initially working. But, I have seem to come across another problem now. Filters only compare against the most recent version's values. Is this correct? For example, let's say I have a row with 3 versions: hbase(main):004:0> get 'Data', 'abc', {COLUMNS=>'x:y', VERSIONS=>3} timestamp=124380366942072, value=xxx timestamp=124380364890514, value=yyy timestamp=124380364491516, value=zzz Now, I want to be able to use a SingleColumnValueFilter on 'x:y' to find the value 'zzz'. It seems I can only test against the latest version 'xxx'. Sample code: Filter f = new SingleColumnValueFilter(Bytes.toBytes("x"), Bytes.toBytes("y"), CompareOp.EQUAL, new SubstringComparator("zzz")); This will not find anything. Is this the intended behavior or am I doing something wrong? Thanks again J On Wed, Sep 30, 2009 at 6:00 PM, Daniel Ploeg <dploeg@...> wrote: > Looks like your running into the issue described in this jira: > > https://issues.apache.org/jira/browse/HBASE-1828 > > On Thu, Oct 1, 2009 at 5:52 AM, Bluemetrix Development < > bmdevelopment@...> wrote: > >> Hello, >> I am trying to use a RowFilter and continue to get the following error: >> >> Exception in thread "main" >> org.apache.hadoop.hbase.client.RetriesExhaustedException: Trying to >> contact region server 127.0.0.1:54441 for region >> TableData,,1254329413425, row '', but failed after 10 attempts. >> Exceptions: >> java.io.IOException: Call to /127.0.0.1:54441 failed on local >> exception: java.io.EOFException >> java.io.IOException: Call to /127.0.0.1:54441 failed on local >> exception: java.io.EOFException >> java.io.IOException: Call to /127.0.0.1:54441 failed on local >> exception: java.io.EOFException >> ... >> >> Here is the code: >> >> HBaseConfiguration conf = new HBaseConfiguration(); >> HTable table = new HTable(conf, tableName); >> Scan scan = new Scan(); >> scan.setMaxVersions(); >> scan.setTimeRange(timeStart, timeEnd); >> RowFilter rf = new RowFilter(CompareOp.EQUAL, new >> SubstringComparator("abc")); >> scan.setFilter(rf); >> ResultScanner scanner = table.getScanner(scan); >> >> I've never came across this before until I started trying to use >> RowFilter. And if I comment out the setFilter function, there is no >> longer a problem. Actually, I get the exact same error for any type of >> Filter I attempt to use. I'm using 0.20 on a pseudo-dist setup - >> standard config as in the Getting Started docs. Any ideas on this? Am >> I using the Filter correctly? >> >> Thanks >> J >> > |
|
|
Re: Problem using RowFilterThat is the behavior for SCVF. The other filters generally don't pay
attention to versions, but SCVF is special because it makes the decision once it trips over the sought after column (the first/most recent version of it). What exactly are you trying to do? Could you use ValueFilter instead? JG On Thu, October 1, 2009 10:06 am, Bluemetrix Development wrote: > Hi, Thanks very much. > I applied the patch and the RowFilter seem to be initially working. > > > But, I have seem to come across another problem now. > Filters only compare against the most recent version's values. Is this > correct? > > For example, let's say I have a row with 3 versions: > hbase(main):004:0> get 'Data', 'abc', {COLUMNS=>'x:y', VERSIONS=>3} > timestamp=124380366942072, value=xxx timestamp=124380364890514, value=yyy > timestamp=124380364491516, value=zzz > > Now, I want to be able to use a SingleColumnValueFilter on 'x:y' to > find the value 'zzz'. It seems I can only test against the latest version > 'xxx'. > Sample code: > Filter f = new SingleColumnValueFilter(Bytes.toBytes("x"), > Bytes.toBytes("y"), CompareOp.EQUAL, new SubstringComparator("zzz")); > This will not find anything. > > > Is this the intended behavior or am I doing something wrong? > Thanks again > J > > > > > > > On Wed, Sep 30, 2009 at 6:00 PM, Daniel Ploeg <dploeg@...> wrote: > >> Looks like your running into the issue described in this jira: >> >> >> https://issues.apache.org/jira/browse/HBASE-1828 >> >> >> On Thu, Oct 1, 2009 at 5:52 AM, Bluemetrix Development < >> bmdevelopment@...> wrote: >> >>> Hello, >>> I am trying to use a RowFilter and continue to get the following >>> error: >>> >>> >>> Exception in thread "main" >>> org.apache.hadoop.hbase.client.RetriesExhaustedException: Trying to >>> contact region server 127.0.0.1:54441 for region >>> TableData,,1254329413425, row '', but failed after 10 attempts. >>> Exceptions: >>> java.io.IOException: Call to /127.0.0.1:54441 failed on local >>> exception: java.io.EOFException >>> java.io.IOException: Call to /127.0.0.1:54441 failed on local >>> exception: java.io.EOFException >>> java.io.IOException: Call to /127.0.0.1:54441 failed on local >>> exception: java.io.EOFException >>> ... >>> >>> >>> Here is the code: >>> >>> >>> Â Â Â Â HBaseConfiguration conf = new HBaseConfiguration(); >>> Â Â Â Â HTable table = new HTable(conf, tableName); >>> Â Â Â Â Scan scan = new Scan(); >>> Â Â Â Â scan.setMaxVersions(); >>> Â Â Â Â scan.setTimeRange(timeStart, timeEnd); >>> Â Â Â Â RowFilter rf = new RowFilter(CompareOp.EQUAL, new >>> SubstringComparator("abc")); >>> Â Â Â Â scan.setFilter(rf); >>> Â Â Â Â ResultScanner scanner = table.getScanner(scan); >>> >>> >>> I've never came across this before until I started trying to use >>> RowFilter. And if I comment out the setFilter function, there is no >>> longer a problem. Actually, I get the exact same error for any type of >>> Filter I attempt to use. I'm using 0.20 on a pseudo-dist setup - >>> standard config as in the Getting Started docs. Any ideas on this? Am I >>> using the Filter correctly? >>> >>> Thanks >>> J >>> >>> >> > > |
|
|
Re: Problem using RowFilterHi, Thanks for the response.
Yes, ValueFilter does compare against all versions. Thanks for pointing this out. I'm getting closer. :) Basically, I am wanting to do the following: Get all values (for all versions) of a row where a specific value (for any version), specified by family:qualifier, matches a string. The problems I am having now are that 1.) I can specify a string to match with ValueFilter, but now only that value is returned with the row. I want all values in that row returned. 2.) I cannot specify which family:qualifier to match against for a past version. This causes problems if the value I am looking for is, by chance, in a column other than the one I want to search, therefore returning a row that I do not really want. SCVF solves this, but does not work for past versions. I've started to work around this by filtering on the client side after the results are returned, but of course it would be nice not to return rows that will not be used in the final data set. Also, there are probably ways to work around this by re-structuring my table, but that could lead to many different tables per query type. Thanks again. J On Thu, Oct 1, 2009 at 2:50 PM, Jonathan Gray <jlist@...> wrote: > That is the behavior for SCVF. The other filters generally don't pay > attention to versions, but SCVF is special because it makes the decision > once it trips over the sought after column (the first/most recent version > of it). > > What exactly are you trying to do? Could you use ValueFilter instead? > > JG > > On Thu, October 1, 2009 10:06 am, Bluemetrix Development wrote: >> Hi, Thanks very much. >> I applied the patch and the RowFilter seem to be initially working. >> >> >> But, I have seem to come across another problem now. >> Filters only compare against the most recent version's values. Is this >> correct? >> >> For example, let's say I have a row with 3 versions: >> hbase(main):004:0> get 'Data', 'abc', {COLUMNS=>'x:y', VERSIONS=>3} >> timestamp=124380366942072, value=xxx timestamp=124380364890514, value=yyy >> timestamp=124380364491516, value=zzz >> >> Now, I want to be able to use a SingleColumnValueFilter on 'x:y' to >> find the value 'zzz'. It seems I can only test against the latest version >> 'xxx'. >> Sample code: >> Filter f = new SingleColumnValueFilter(Bytes.toBytes("x"), >> Bytes.toBytes("y"), CompareOp.EQUAL, new SubstringComparator("zzz")); >> This will not find anything. >> >> >> Is this the intended behavior or am I doing something wrong? >> Thanks again >> J >> >> >> >> >> >> >> On Wed, Sep 30, 2009 at 6:00 PM, Daniel Ploeg <dploeg@...> wrote: >> >>> Looks like your running into the issue described in this jira: >>> >>> >>> https://issues.apache.org/jira/browse/HBASE-1828 >>> >>> >>> On Thu, Oct 1, 2009 at 5:52 AM, Bluemetrix Development < >>> bmdevelopment@...> wrote: >>> >>>> Hello, >>>> I am trying to use a RowFilter and continue to get the following >>>> error: >>>> >>>> >>>> Exception in thread "main" >>>> org.apache.hadoop.hbase.client.RetriesExhaustedException: Trying to >>>> contact region server 127.0.0.1:54441 for region >>>> TableData,,1254329413425, row '', but failed after 10 attempts. >>>> Exceptions: >>>> java.io.IOException: Call to /127.0.0.1:54441 failed on local >>>> exception: java.io.EOFException >>>> java.io.IOException: Call to /127.0.0.1:54441 failed on local >>>> exception: java.io.EOFException >>>> java.io.IOException: Call to /127.0.0.1:54441 failed on local >>>> exception: java.io.EOFException >>>> ... >>>> >>>> >>>> Here is the code: >>>> >>>> >>>> HBaseConfiguration conf = new HBaseConfiguration(); >>>> HTable table = new HTable(conf, tableName); >>>> Scan scan = new Scan(); >>>> scan.setMaxVersions(); >>>> scan.setTimeRange(timeStart, timeEnd); >>>> RowFilter rf = new RowFilter(CompareOp.EQUAL, new >>>> SubstringComparator("abc")); >>>> scan.setFilter(rf); >>>> ResultScanner scanner = table.getScanner(scan); >>>> >>>> >>>> I've never came across this before until I started trying to use >>>> RowFilter. And if I comment out the setFilter function, there is no >>>> longer a problem. Actually, I get the exact same error for any type of >>>> Filter I attempt to use. I'm using 0.20 on a pseudo-dist setup - >>>> standard config as in the Getting Started docs. Any ideas on this? Am I >>>> using the Filter correctly? >>>> >>>> Thanks >>>> J >>>> >>>> >>> >> >> > > |
|
|
New Filter Functionality Required [was: Re: Problem using RowFilter]Hello,
I am back to where I am going to need the functionality I have described below - basically a SCVF that works on all versions. I was wondering if I may go ahead and open an issue for this and begin to contribute some code. Granted, I will have to do some digging to get my head around the filtering at the moment. If that is fine, then I will go ahead and do so and post in JIRA once I have something working. Thanks J Bluemetrix Development wrote: > Hi, Thanks for the response. > Yes, ValueFilter does compare against all versions. Thanks for > pointing this out. I'm getting closer. :) > > Basically, I am wanting to do the following: > Get all values (for all versions) of a row where a specific value (for > any version), specified by family:qualifier, matches a string. > > The problems I am having now are that > 1.) I can specify a string to match with ValueFilter, but now only > that value is returned with the row. I want all values in that row > returned. > 2.) I cannot specify which family:qualifier to match against for a > past version. This causes problems if the value I am looking for is, > by chance, in a column other than the one I want to search, therefore > returning a row that I do not really want. SCVF solves this, but does > not work for past versions. > > I've started to work around this by filtering on the client side after > the results are returned, but of course it would be nice not to return > rows that will not be used in the final data set. > Also, there are probably ways to work around this by re-structuring my > table, but that could lead to many different tables per query type. > > Thanks again. > J > > On Thu, Oct 1, 2009 at 2:50 PM, Jonathan Gray <jlist@...> wrote: >> That is the behavior for SCVF. The other filters generally don't pay >> attention to versions, but SCVF is special because it makes the decision >> once it trips over the sought after column (the first/most recent version >> of it). >> >> What exactly are you trying to do? Could you use ValueFilter instead? >> >> JG >> >> On Thu, October 1, 2009 10:06 am, Bluemetrix Development wrote: >>> Hi, Thanks very much. >>> I applied the patch and the RowFilter seem to be initially working. >>> >>> >>> But, I have seem to come across another problem now. >>> Filters only compare against the most recent version's values. Is this >>> correct? >>> >>> For example, let's say I have a row with 3 versions: >>> hbase(main):004:0> get 'Data', 'abc', {COLUMNS=>'x:y', VERSIONS=>3} >>> timestamp=124380366942072, value=xxx timestamp=124380364890514, value=yyy >>> timestamp=124380364491516, value=zzz >>> >>> Now, I want to be able to use a SingleColumnValueFilter on 'x:y' to >>> find the value 'zzz'. It seems I can only test against the latest version >>> 'xxx'. >>> Sample code: >>> Filter f = new SingleColumnValueFilter(Bytes.toBytes("x"), >>> Bytes.toBytes("y"), CompareOp.EQUAL, new SubstringComparator("zzz")); >>> This will not find anything. >>> >>> >>> Is this the intended behavior or am I doing something wrong? >>> Thanks again >>> J >>> >>> >>> >>> >>> >>> >>> On Wed, Sep 30, 2009 at 6:00 PM, Daniel Ploeg <dploeg@...> wrote: >>> >>>> Looks like your running into the issue described in this jira: >>>> >>>> >>>> https://issues.apache.org/jira/browse/HBASE-1828 >>>> >>>> >>>> On Thu, Oct 1, 2009 at 5:52 AM, Bluemetrix Development < >>>> bmdevelopment@...> wrote: >>>> >>>>> Hello, >>>>> I am trying to use a RowFilter and continue to get the following >>>>> error: >>>>> >>>>> >>>>> Exception in thread "main" >>>>> org.apache.hadoop.hbase.client.RetriesExhaustedException: Trying to >>>>> contact region server 127.0.0.1:54441 for region >>>>> TableData,,1254329413425, row '', but failed after 10 attempts. >>>>> Exceptions: >>>>> java.io.IOException: Call to /127.0.0.1:54441 failed on local >>>>> exception: java.io.EOFException >>>>> java.io.IOException: Call to /127.0.0.1:54441 failed on local >>>>> exception: java.io.EOFException >>>>> java.io.IOException: Call to /127.0.0.1:54441 failed on local >>>>> exception: java.io.EOFException >>>>> ... >>>>> >>>>> >>>>> Here is the code: >>>>> >>>>> >>>>> HBaseConfiguration conf = new HBaseConfiguration(); >>>>> HTable table = new HTable(conf, tableName); >>>>> Scan scan = new Scan(); >>>>> scan.setMaxVersions(); >>>>> scan.setTimeRange(timeStart, timeEnd); >>>>> RowFilter rf = new RowFilter(CompareOp.EQUAL, new >>>>> SubstringComparator("abc")); >>>>> scan.setFilter(rf); >>>>> ResultScanner scanner = table.getScanner(scan); >>>>> >>>>> >>>>> I've never came across this before until I started trying to use >>>>> RowFilter. And if I comment out the setFilter function, there is no >>>>> longer a problem. Actually, I get the exact same error for any type of >>>>> Filter I attempt to use. I'm using 0.20 on a pseudo-dist setup - >>>>> standard config as in the Getting Started docs. Any ideas on this? Am I >>>>> using the Filter correctly? >>>>> >>>>> Thanks >>>>> J >>>>> >>>>> >>> >> |
|
|
Re: New Filter Functionality Required [was: Re: Problem using RowFilter]On Mon, Nov 2, 2009 at 11:02 AM, bmdevelopment <bmdevelopment@...>wrote:
> Hello, > I am back to where I am going to need the functionality I have described > below - basically a SCVF that works on all versions. I was wondering if I > may go ahead and open an issue for this and begin to contribute some code. > Granted, I will have to do some digging to get my head around the filtering > at the moment. If that is fine, then I will go ahead and do so and post in > JIRA once I have something working. > Please do. Let us know if we can help out. Make sure you get latest code. Some fixes have gone in for filters recently. Yours, St.Ack > Thanks > J > > Bluemetrix Development wrote: > >> Hi, Thanks for the response. >> Yes, ValueFilter does compare against all versions. Thanks for >> pointing this out. I'm getting closer. :) >> >> Basically, I am wanting to do the following: >> Get all values (for all versions) of a row where a specific value (for >> any version), specified by family:qualifier, matches a string. >> >> The problems I am having now are that >> 1.) I can specify a string to match with ValueFilter, but now only >> that value is returned with the row. I want all values in that row >> returned. >> 2.) I cannot specify which family:qualifier to match against for a >> past version. This causes problems if the value I am looking for is, >> by chance, in a column other than the one I want to search, therefore >> returning a row that I do not really want. SCVF solves this, but does >> not work for past versions. >> >> I've started to work around this by filtering on the client side after >> the results are returned, but of course it would be nice not to return >> rows that will not be used in the final data set. >> Also, there are probably ways to work around this by re-structuring my >> table, but that could lead to many different tables per query type. >> >> Thanks again. >> J >> >> On Thu, Oct 1, 2009 at 2:50 PM, Jonathan Gray <jlist@...> wrote: >> >>> That is the behavior for SCVF. The other filters generally don't pay >>> attention to versions, but SCVF is special because it makes the decision >>> once it trips over the sought after column (the first/most recent version >>> of it). >>> >>> What exactly are you trying to do? Could you use ValueFilter instead? >>> >>> JG >>> >>> On Thu, October 1, 2009 10:06 am, Bluemetrix Development wrote: >>> >>>> Hi, Thanks very much. >>>> I applied the patch and the RowFilter seem to be initially working. >>>> >>>> >>>> But, I have seem to come across another problem now. >>>> Filters only compare against the most recent version's values. Is this >>>> correct? >>>> >>>> For example, let's say I have a row with 3 versions: >>>> hbase(main):004:0> get 'Data', 'abc', {COLUMNS=>'x:y', VERSIONS=>3} >>>> timestamp=124380366942072, value=xxx timestamp=124380364890514, >>>> value=yyy >>>> timestamp=124380364491516, value=zzz >>>> >>>> Now, I want to be able to use a SingleColumnValueFilter on 'x:y' to >>>> find the value 'zzz'. It seems I can only test against the latest >>>> version >>>> 'xxx'. >>>> Sample code: >>>> Filter f = new SingleColumnValueFilter(Bytes.toBytes("x"), >>>> Bytes.toBytes("y"), CompareOp.EQUAL, new SubstringComparator("zzz")); >>>> This will not find anything. >>>> >>>> >>>> Is this the intended behavior or am I doing something wrong? >>>> Thanks again >>>> J >>>> >>>> >>>> >>>> >>>> >>>> >>>> On Wed, Sep 30, 2009 at 6:00 PM, Daniel Ploeg <dploeg@...> wrote: >>>> >>>> Looks like your running into the issue described in this jira: >>>>> >>>>> >>>>> https://issues.apache.org/jira/browse/HBASE-1828 >>>>> >>>>> >>>>> On Thu, Oct 1, 2009 at 5:52 AM, Bluemetrix Development < >>>>> bmdevelopment@...> wrote: >>>>> >>>>> Hello, >>>>>> I am trying to use a RowFilter and continue to get the following >>>>>> error: >>>>>> >>>>>> >>>>>> Exception in thread "main" >>>>>> org.apache.hadoop.hbase.client.RetriesExhaustedException: Trying to >>>>>> contact region server 127.0.0.1:54441 for region >>>>>> TableData,,1254329413425, row '', but failed after 10 attempts. >>>>>> Exceptions: >>>>>> java.io.IOException: Call to /127.0.0.1:54441 failed on local >>>>>> exception: java.io.EOFException >>>>>> java.io.IOException: Call to /127.0.0.1:54441 failed on local >>>>>> exception: java.io.EOFException >>>>>> java.io.IOException: Call to /127.0.0.1:54441 failed on local >>>>>> exception: java.io.EOFException >>>>>> ... >>>>>> >>>>>> >>>>>> Here is the code: >>>>>> >>>>>> >>>>>> HBaseConfiguration conf = new HBaseConfiguration(); >>>>>> HTable table = new HTable(conf, tableName); >>>>>> Scan scan = new Scan(); >>>>>> scan.setMaxVersions(); >>>>>> scan.setTimeRange(timeStart, timeEnd); >>>>>> RowFilter rf = new RowFilter(CompareOp.EQUAL, new >>>>>> SubstringComparator("abc")); >>>>>> scan.setFilter(rf); >>>>>> ResultScanner scanner = table.getScanner(scan); >>>>>> >>>>>> >>>>>> I've never came across this before until I started trying to use >>>>>> RowFilter. And if I comment out the setFilter function, there is no >>>>>> longer a problem. Actually, I get the exact same error for any type of >>>>>> Filter I attempt to use. I'm using 0.20 on a pseudo-dist setup - >>>>>> standard config as in the Getting Started docs. Any ideas on this? Am >>>>>> I >>>>>> using the Filter correctly? >>>>>> >>>>>> Thanks >>>>>> J >>>>>> >>>>>> >>>>>> >>>> >>> > |
|
|
Re: New Filter Functionality Required [was: Re: Problem using RowFilter]Hello,
Created https://issues.apache.org/jira/browse/HBASE-1975 and submitted patch. PLMK if you have any questions. I assume we can continue discussion within the issue. Thanks Jeremiah stack wrote: > On Mon, Nov 2, 2009 at 11:02 AM, bmdevelopment <bmdevelopment@...>wrote: > >> Hello, >> I am back to where I am going to need the functionality I have described >> below - basically a SCVF that works on all versions. I was wondering if I >> may go ahead and open an issue for this and begin to contribute some code. >> Granted, I will have to do some digging to get my head around the filtering >> at the moment. If that is fine, then I will go ahead and do so and post in >> JIRA once I have something working. >> > > > Please do. Let us know if we can help out. Make sure you get latest code. > Some fixes have gone in for filters recently. > > Yours, > St.Ack > > > >> Thanks >> J >> >> Bluemetrix Development wrote: >> >>> Hi, Thanks for the response. >>> Yes, ValueFilter does compare against all versions. Thanks for >>> pointing this out. I'm getting closer. :) >>> >>> Basically, I am wanting to do the following: >>> Get all values (for all versions) of a row where a specific value (for >>> any version), specified by family:qualifier, matches a string. >>> >>> The problems I am having now are that >>> 1.) I can specify a string to match with ValueFilter, but now only >>> that value is returned with the row. I want all values in that row >>> returned. >>> 2.) I cannot specify which family:qualifier to match against for a >>> past version. This causes problems if the value I am looking for is, >>> by chance, in a column other than the one I want to search, therefore >>> returning a row that I do not really want. SCVF solves this, but does >>> not work for past versions. >>> >>> I've started to work around this by filtering on the client side after >>> the results are returned, but of course it would be nice not to return >>> rows that will not be used in the final data set. >>> Also, there are probably ways to work around this by re-structuring my >>> table, but that could lead to many different tables per query type. >>> >>> Thanks again. >>> J >>> >>> On Thu, Oct 1, 2009 at 2:50 PM, Jonathan Gray <jlist@...> wrote: >>> >>>> That is the behavior for SCVF. The other filters generally don't pay >>>> attention to versions, but SCVF is special because it makes the decision >>>> once it trips over the sought after column (the first/most recent version >>>> of it). >>>> >>>> What exactly are you trying to do? Could you use ValueFilter instead? >>>> >>>> JG >>>> >>>> On Thu, October 1, 2009 10:06 am, Bluemetrix Development wrote: >>>> >>>>> Hi, Thanks very much. >>>>> I applied the patch and the RowFilter seem to be initially working. >>>>> >>>>> >>>>> But, I have seem to come across another problem now. >>>>> Filters only compare against the most recent version's values. Is this >>>>> correct? >>>>> >>>>> For example, let's say I have a row with 3 versions: >>>>> hbase(main):004:0> get 'Data', 'abc', {COLUMNS=>'x:y', VERSIONS=>3} >>>>> timestamp=124380366942072, value=xxx timestamp=124380364890514, >>>>> value=yyy >>>>> timestamp=124380364491516, value=zzz >>>>> >>>>> Now, I want to be able to use a SingleColumnValueFilter on 'x:y' to >>>>> find the value 'zzz'. It seems I can only test against the latest >>>>> version >>>>> 'xxx'. >>>>> Sample code: >>>>> Filter f = new SingleColumnValueFilter(Bytes.toBytes("x"), >>>>> Bytes.toBytes("y"), CompareOp.EQUAL, new SubstringComparator("zzz")); >>>>> This will not find anything. >>>>> >>>>> >>>>> Is this the intended behavior or am I doing something wrong? >>>>> Thanks again >>>>> J >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> On Wed, Sep 30, 2009 at 6:00 PM, Daniel Ploeg <dploeg@...> wrote: >>>>> >>>>> Looks like your running into the issue described in this jira: >>>>>> >>>>>> https://issues.apache.org/jira/browse/HBASE-1828 >>>>>> >>>>>> >>>>>> On Thu, Oct 1, 2009 at 5:52 AM, Bluemetrix Development < >>>>>> bmdevelopment@...> wrote: >>>>>> >>>>>> Hello, >>>>>>> I am trying to use a RowFilter and continue to get the following >>>>>>> error: >>>>>>> >>>>>>> >>>>>>> Exception in thread "main" >>>>>>> org.apache.hadoop.hbase.client.RetriesExhaustedException: Trying to >>>>>>> contact region server 127.0.0.1:54441 for region >>>>>>> TableData,,1254329413425, row '', but failed after 10 attempts. >>>>>>> Exceptions: >>>>>>> java.io.IOException: Call to /127.0.0.1:54441 failed on local >>>>>>> exception: java.io.EOFException >>>>>>> java.io.IOException: Call to /127.0.0.1:54441 failed on local >>>>>>> exception: java.io.EOFException >>>>>>> java.io.IOException: Call to /127.0.0.1:54441 failed on local >>>>>>> exception: java.io.EOFException >>>>>>> ... >>>>>>> >>>>>>> >>>>>>> Here is the code: >>>>>>> >>>>>>> >>>>>>> HBaseConfiguration conf = new HBaseConfiguration(); >>>>>>> HTable table = new HTable(conf, tableName); >>>>>>> Scan scan = new Scan(); >>>>>>> scan.setMaxVersions(); >>>>>>> scan.setTimeRange(timeStart, timeEnd); >>>>>>> RowFilter rf = new RowFilter(CompareOp.EQUAL, new >>>>>>> SubstringComparator("abc")); >>>>>>> scan.setFilter(rf); >>>>>>> ResultScanner scanner = table.getScanner(scan); >>>>>>> >>>>>>> >>>>>>> I've never came across this before until I started trying to use >>>>>>> RowFilter. And if I comment out the setFilter function, there is no >>>>>>> longer a problem. Actually, I get the exact same error for any type of >>>>>>> Filter I attempt to use. I'm using 0.20 on a pseudo-dist setup - >>>>>>> standard config as in the Getting Started docs. Any ideas on this? Am >>>>>>> I >>>>>>> using the Filter correctly? >>>>>>> >>>>>>> Thanks >>>>>>> J >>>>>>> >>>>>>> >>>>>>> > |
| Free embeddable forum powered by Nabble | Forum Help |