hbase-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jean-Daniel Cryans <jdcry...@apache.org>
Subject Re: HBase Client API: Why does HTable.get(get).getValue() return null if more than one family is added to the get instance?
Date Mon, 11 Jun 2012 21:38:04 GMT
See https://issues.apache.org/jira/browse/HBASE-6200

On Mon, Jun 11, 2012 at 11:23 AM, Desert R. <desert_rose_170@hotmail.com> wrote:
>
> I tried with 0.94 now.  I added the htablePool to simulate my other multi-thread environment.
Here's the code: http://pastebin.com/7TBA1XGh
> If line 70 is commented it returns not null. Am I doing something wrong?
>> From: nneverwei@gmail.com
>> Date: Mon, 11 Jun 2012 09:37:00 +0800
>> Subject: Re: HBase Client API: Why does HTable.get(get).getValue() return null if
more than one family is added to the get instance?
>> To: user@hbase.apache.org
>>
>> Hi Desert,
>> I try your code on 0.94.0, it works fine. Is there any detail you not list
>> above or maybe there exist some JIRAs fixed this bug for 0.92.2?
>> Can someone get this test run on 0.92.2 and give the result?
>>
>> Regards,
>> NN
>>
>> 2012/6/11 Desert R. <desert_rose_170@hotmail.com>
>>
>> >
>> > Sorry about my previous non-accurate description. Instead of 'family1' and
>> > 'family2' I used 'facebook_notify' (qualifier-less) and 'facebook' (with 2
>> > qualifiers). After I read your post, I replaced the column 'facebook' by
>> > 'tweeter', a similar column that I have with 2 qualifiers also, and
>> > everything worked fine.
>> > So, the problem happens when I do it like this:
>> >
>> > HTable htable = new HTable(config, TABLE_NAME);
>> > Get get = new Get(Bytes.toBytes("x"));
>> > get.addFamily(Bytes.toBytes("facebook_notify"));
>> > get.addFamily(Bytes.toBytes("facebook"));
>> > if(htable.get(get).getValue(Bytes.toBytes("facebook_notify"),
>> > Bytes.toBytes("")) == null)
>> >   log.debug("Value is null!");
>> >
>> > which still returns null.
>> > I'm using version 0.92.2. Any idea?
>> >
>> > > From: harsh@cloudera.com
>> > > Date: Mon, 11 Jun 2012 00:15:17 +0530
>> > > Subject: Re: HBase Client API: Why does HTable.get(get).getValue()
>> > return null if more than one family is added to the get instance?
>> > > To: user@hbase.apache.org
>> > >
>> > > Hi,
>> > >
>> > > Am unable to reproduce this on 0.90.6 at least. What version are you
>> > using?
>> > >
>> > > Regardless of "get.addFamily(Bytes.toBytes("family2"));" being present
>> > > or not, I do not receive a null.
>> > >
>> > > Original table scan (of a table 't'), to match your qualifier-less f1
>> > family:
>> > >
>> > >  x   column=f1:, timestamp=1339353441608, value=value
>> > >
>> > > And then again tried with a qualifier-added f2 family column:
>> > >
>> > >  x   column=f1:, timestamp=1339353441608, value=value
>> > >  x   column=f2:x, timestamp=1339353614689, value=value
>> > >
>> > > With both these data sets am still unable to get the null returns. I
>> > > only get a null if I instead comment the
>> > > "get.addFamily(Bytes.toBytes("family1"));" family1 line, which is
>> > > expected.
>> > >
>> > > Can you also detail out the steps you did to check this? Did you
>> > > recreate rows/tables between tests?
>> > >
>> > > On Sun, Jun 10, 2012 at 9:20 PM, Desert R. <desert_rose_170@hotmail.com>
>> > wrote:
>> > > >
>> > > > Hi,
>> > > >
>> > > >
>> > > >
>> > > >
>> > > >
>> > > >
>> > > >        I have a table with 2 column families. The column 'family1'
>> > > > has no qualifiers, and the row 'x' has the value \xFF. If I do the
>> > > > following
>> > > >
>> > > > HTable htable = new HTable(config, TABLE_NAME);
>> > > > Get get = new Get(Bytes.toBytes("x"));
>> > > > get.addFamily(Bytes.toBytes("family1"));
>> > > > if(htable.get(get).getValue(Bytes.toBytes("family1"),
>> > Bytes.toBytes("")) == null)
>> > > >  log.debug("Value is null!");
>> > > >
>> > > >
>> > > > the method getValue() returns not null (as expected). But if I add
>> > other family:
>> > > >
>> > > > HTable htable = new HTable(config, TABLE_NAME);
>> > > > Get get = new Get(Bytes.toBytes("x"));
>> > > > get.addFamily(Bytes.toBytes("family1"));
>> > > > get.addFamily(Bytes.toBytes("family2"));
>> > > > if(htable.get(get).getValue(Bytes.toBytes("family1"),
>> > Bytes.toBytes("")) == null)
>> > > >  log.debug("Value is null!");
>> > > >
>> > > >
>> > > > I get a null. Why does this happen?
>> > >
>> > >
>> > >
>> > > --
>> > > Harsh J
>> >
>> >
>

Mime
View raw message