Hmmm, it's strange. Let me try your code on my cluster this weekend. What the 
HBase version are you using?

--
Tatsuya Kawano
Tokyo, Japan


On Feb 24, 2011, at 5:01 PM, 陈加俊 <[email protected]> wrote:

> It will be right if according to the following process:
> 
> step 1: create 'testTable',{NAME => 'log' , VERSIONS => 5 }
> 
> step 2: excute my code below
> 
> I will be wrong if uncomment the code :table.delete(new Delete(rowKey));
> 
> I will be run right agin If I comment the code and change the rowKey.
> 
> 
> 
> My code below :
> 
> 
> public class GetRowVersionsTest extends TestCase
> 
> {
> 
>    private final byte[] family    = Bytes.toBytes("log");
> 
> 
>    private final byte[] qualifier = Bytes.toBytes("siteUrl");
> 
> 
>    private final byte[] rowKey    = Bytes.toBytes(1000);
> 
> 
>    private final HTable table     =
> IDMHBaseConfiguration.getTable("testTable");
> 
> 
>    private final long   ts1       = 1298529542218L;
> 
> 
>    private final long   ts2       = ts1 + 100;
> 
> 
>    private final long   ts3       = ts1 + 1000;
> 
> 
>    private final byte[] value1    = Bytes.toBytes("value1");
> 
> 
>    private final byte[] value2    = Bytes.toBytes("value2");
> 
> 
>    private final byte[] value3    = Bytes.toBytes("value3");
> 
> 
>    private void insert(final long ts, final byte[] value) throws
> IOException
> 
>    {
> 
>        //        table.setAutoFlush(false);
> 
>        final Put put = new Put(rowKey);
> 
>        put.add(family, qualifier, ts, value);
> 
>        table.put(put);
> 
>    }
> 
> 
>    private void sleep()
> 
>    {
> 
>        try
> 
>        {
> 
>            Thread.sleep(1000);
> 
>        }
> 
>        catch (final InterruptedException e)
> 
>        {
> 
>            e.printStackTrace();
> 
>        }
> 
>    }
> 
> 
>    @Test
> 
>    public void testGetRowMultipleVersions() throws Exception
> 
>    {
> 
>        insert(ts1, value1);
> 
>        sleep();
> 
>        insert(ts2, value2);
> 
>        sleep();
> 
>        insert(ts3, value3);
> 
>        sleep();
> 
> 
>        // check getRow with multiple versions
> 
>        final Get get = new Get(rowKey);
> 
>        get.setMaxVersions();
> 
>        final Result r = table.get(get);
> 
> 
>        final List<KeyValue> list = r.list();
> 
>        for (final KeyValue kv : list)
> 
>        {
> 
>            System.err.println(kv.getKey());
> 
>            System.err.println(Bytes.toString(kv.getValue()));
> 
>        }
> 
> 
>        final NavigableMap<byte[], NavigableMap<byte[], NavigableMap<Long,
> byte[]>>> map = r.getMap();
> 
>        final NavigableMap<byte[], NavigableMap<Long, byte[]>> familyMap =
> map.get(family);
> 
>        final NavigableMap<Long, byte[]> versionMap =
> familyMap.get(qualifier);
> 
>        for (final Map.Entry<Long, byte[]> entry : versionMap.entrySet())
> 
>        {
> 
>            System.err.println(entry.getKey());
> 
>            System.err.println(Bytes.toString(entry.getValue()));
> 
>        }
> 
>        //        assertTrue(versionMap.size() == 3);
> 
> 
>        //        assertTrue(value1 == versionMap.get(ts1));
> 
>        //        assertTrue(value2 == versionMap.get(ts2));
> 
>        //        assertTrue(value3 == versionMap.get(ts3));
> 
> 
>        // table.delete(new Delete(rowKey));
> 
>        // assertTrue(table.get(get).size() == 0);
> 
>        //        table.close();
> 
>    }
> 
> 
> On Thu, Feb 24, 2011 at 3:41 PM, Lars George <[email protected]> wrote:
> 
>> What error are you getting? The NPE?
>> 
>> As Tatsuya pointed out, you are using the same time stamps:
>> 
>>  private final long   ts2       = ts1 + 100;
>> 
>>  private final long   ts3       = ts1 + 100;
>> 
>> That cannot work, you are overriding cells.
>> 
>> Lars
>> 
>> On Thu, Feb 24, 2011 at 8:34 AM, 陈加俊 <[email protected]> wrote:
>>> HTable object has not setAutoFlush. It's default value is true at my
>>> cluster.So I set it true as follows ,but error is still the same.
>>> 
>>> public class GetRowVersionsTest extends TestCase
>>> {
>>>   private final byte[] family    = Bytes.toBytes("log");
>>> 
>>>   private final byte[] qualifier = Bytes.toBytes("siteUrl");
>>> 
>>>   private final byte[] rowKey    = Bytes.toBytes(1);
>>> 
>>>   private final long   ts1       = 1298529542218L;
>>> 
>>>   private final long   ts2       = ts1 + 100;
>>> 
>>>   private final long   ts3       = ts1 + 100;
>>> 
>>>   private final byte[] value1    = Bytes.toBytes("value1");
>>> 
>>>   private final byte[] value2    = Bytes.toBytes("value2");
>>> 
>>>   private final byte[] value3    = Bytes.toBytes("value3");
>>> 
>>>   private void insert(final long ts, final byte[] value) throws
>>> IOException
>>>   {
>>>       final HTable table =
>>> IDMHBaseConfiguration.getTable(BigTableName.getSite());
>>>       table.setAutoFlush(false);
>>>       final Put put = new Put(rowKey);
>>>       put.add(family, qualifier, ts, value);
>>>       table.put(put);
>>>   }
>>> 
>>>   private void sleep()
>>>   {
>>>       try
>>>       {
>>>           Thread.sleep(1000);
>>>       }
>>>       catch (final InterruptedException e)
>>>       {
>>>           e.printStackTrace();
>>>       }
>>>   }
>>> 
>>>   @Test
>>>   public void testGetRowMultipleVersions() throws Exception
>>>   {
>>>       insert(ts1, value1);
>>>       sleep();
>>>       insert(ts2, value2);
>>>       sleep();
>>>       insert(ts3, value3);
>>>       sleep();
>>> 
>>>       // check getRow with multiple versions
>>>       final HTable table =
>>> IDMHBaseConfiguration.getTable(BigTableName.getSite());
>>>       final Get get = new Get(rowKey);
>>>       get.setMaxVersions();
>>>       final Result r = table.get(get);
>>> 
>>>       final List<KeyValue> list = r.list();
>>>       for (final KeyValue kv : list)
>>>       {
>>>           System.err.println(kv.getKey());
>>>           System.err.println(Bytes.toString(kv.getValue()));
>>>       }
>>> 
>>>       final NavigableMap<byte[], NavigableMap<byte[], NavigableMap<Long,
>>> byte[]>>> map = r.getMap();
>>>       final NavigableMap<byte[], NavigableMap<Long, byte[]>> familyMap =
>>> map.get(family);
>>>       final NavigableMap<Long, byte[]> versionMap =
>>> familyMap.get(qualifier);
>>>       for (final Map.Entry<Long, byte[]> entry : versionMap.entrySet())
>>>       {
>>>           System.err.println(entry.getKey());
>>>           System.err.println(Bytes.toString(entry.getValue()));
>>>       }
>>>       //        assertTrue(versionMap.size() == 3);
>>> 
>>>       //        assertTrue(value1 == versionMap.get(ts1));
>>>       //        assertTrue(value2 == versionMap.get(ts2));
>>>       //        assertTrue(value3 == versionMap.get(ts3));
>>> 
>>>       //        table.delete(new Delete(rowKey));
>>>       //        assertTrue(table.get(get).size() == 0);
>>>       //        table.close();
>>>   }
>>> 
>>> On Thu, Feb 24, 2011 at 3:26 PM, Ryan Rawson <[email protected]> wrote:
>>> 
>>>> Does the HTable object have setAutoFlush(false) turned on by any chance?
>>>> 
>>>> On Wed, Feb 23, 2011 at 11:22 PM, 陈加俊 <[email protected]> wrote:
>>>>> line 89:        final NavigableMap<byte[], NavigableMap<Long, byte[]>>
>>>>> familyMap = map.get(family);
>>>>> map is null ,
>>>>> and strangely  I use r.list() instead,
>>>>> final List<KeyValue> list = r.list();
>>>>> r is null !
>>>>> 
>>>>> 
>>>>> 2011/2/24 Ryan Rawson <[email protected]>
>>>>>> 
>>>>>> Which line is line 89?
>>>>>> 
>>>>>> Also it's preferable to do:
>>>>>> assertEquals(3, versionMap.size());
>>>>>> vs:
>>>>>> assertTrue(versionMap.size() == 3);
>>>>>> 
>>>>>> since the error messages from the former are more descriptive
>>>>>> "expected 3 was 2".
>>>>>> 
>>>>>> looking at the code it looks like it should work...
>>>>>> 
>>>>>> On Wed, Feb 23, 2011 at 11:07 PM, 陈加俊 <[email protected]> wrote:
>>>>>>> This is my test case ,but I get NPE some times .
>>>>>>> 
>>>>>>> java.lang.NullPointerException
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>> 
>> com.uuwatch.idm.hbase.GetRowVersionsTest.testGetRowMultipleVersions(GetRowVersionsTest.java:89)
>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>> 
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>> 
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>> 
>> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>> 
>> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>> 
>> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>> 
>> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>> 
>> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>> 
>> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
>>>>>>> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
>>>>>>> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
>>>>>>> at
>> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
>>>>>>> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
>>>>>>> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
>>>>>>> at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>> 
>> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>> 
>> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>> 
>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>> 
>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>> 
>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>> 
>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
>>>>>>> 
>>>>>>> public class GetRowVersionsTest extends TestCase
>>>>>>> {
>>>>>>>   private final byte[] family    = Bytes.toBytes("log");
>>>>>>> 
>>>>>>>   private final byte[] qualifier = Bytes.toBytes("siteUrl");
>>>>>>> 
>>>>>>>   private final byte[] rowKey    = Bytes.toBytes(1);
>>>>>>> 
>>>>>>>   private final HTable table     =
>>>>>>> IDMHBaseConfiguration.getTable(BigTableName.getSite());
>>>>>>> 
>>>>>>>   private final long   ts1       = 1298529542218L;
>>>>>>> 
>>>>>>>   private final long   ts2       = ts1 + 100;
>>>>>>> 
>>>>>>>   private final long   ts3       = ts1 + 100;
>>>>>>> 
>>>>>>>   private final byte[] value1    = Bytes.toBytes("value1");
>>>>>>> 
>>>>>>>   private final byte[] value2    = Bytes.toBytes("value2");
>>>>>>> 
>>>>>>>   private final byte[] value3    = Bytes.toBytes("value3");
>>>>>>> 
>>>>>>>   private void insert(final long ts, final byte[] value) throws
>>>>>>> IOException
>>>>>>>   {
>>>>>>>       final Put put = new Put(rowKey);
>>>>>>>       put.add(family, qualifier, ts, value);
>>>>>>>       table.put(put);
>>>>>>>   }
>>>>>>> 
>>>>>>>   private void sleep()
>>>>>>>   {
>>>>>>>       try
>>>>>>>       {
>>>>>>>           Thread.sleep(1000);
>>>>>>>       }
>>>>>>>       catch (final InterruptedException e)
>>>>>>>       {
>>>>>>>           e.printStackTrace();
>>>>>>>       }
>>>>>>>   }
>>>>>>> 
>>>>>>>   @Test
>>>>>>>   public void testGetRowMultipleVersions() throws Exception
>>>>>>>   {
>>>>>>>       insert(ts1, value1);
>>>>>>>       sleep();
>>>>>>>       insert(ts2, value2);
>>>>>>>       sleep();
>>>>>>>       insert(ts3, value3);
>>>>>>>       sleep();
>>>>>>> 
>>>>>>>       // check getRow with multiple versions
>>>>>>>       final Get get = new Get(rowKey);
>>>>>>>       get.setMaxVersions();
>>>>>>>       final Result r = table.get(get);
>>>>>>>       final NavigableMap<byte[], NavigableMap<byte[],
>>>>>>> NavigableMap<Long,
>>>>>>> byte[]>>> map = r.getMap();
>>>>>>>       final NavigableMap<byte[], NavigableMap<Long, byte[]>>
>>>> familyMap
>>>>>>> =
>>>>>>> map.get(family);
>>>>>>>       final NavigableMap<Long, byte[]> versionMap =
>>>>>>> familyMap.get(qualifier);
>>>>>>>       for (final Map.Entry<Long, byte[]> entry :
>>>> versionMap.entrySet())
>>>>>>>       {
>>>>>>>           System.err.println(entry.getKey());
>>>>>>>           System.err.println(Bytes.toString(entry.getValue()));
>>>>>>>       }
>>>>>>>       //        assertTrue(versionMap.size() == 3);
>>>>>>> 
>>>>>>>       //        assertTrue(value1 == versionMap.get(ts1));
>>>>>>>       //        assertTrue(value2 == versionMap.get(ts2));
>>>>>>>       //        assertTrue(value3 == versionMap.get(ts3));
>>>>>>> 
>>>>>>>       //        table.delete(new Delete(rowKey));
>>>>>>>       //        assertTrue(table.get(get).size() == 0);
>>>>>>>       //        table.close();
>>>>>>>   }
>>>>>>> }
>>>>>>> 
>>>>>>> 
>>>>>>> On Thu, Feb 24, 2011 at 11:07 AM, Tatsuya Kawano
>>>>>>> <[email protected]>wrote:
>>>>>>> 
>>>>>>>> Hi Jiajun,
>>>>>>>> 
>>>>>>>> Make sure you don't have the same timestamp on every versions of
>>>> puts;
>>>>>>>> try
>>>>>>>> to put Thread.sleep() in your test(?) codes when necessary.
>>>>>>>> 
>>>>>>>> You might not want to specify the timestamp by yourself but want
>> to
>>>> let
>>>>>>>> HBase to store appropriate ones.
>>>>>>>> 
>>>>>>>> --
>>>>>>>> Tatsuya Kawano (Mr.)
>>>>>>>> Tokyo, Japan
>>>>>>>> 
>>>>>>>> 
>>>>>>>> On Feb 24, 2011, at 11:30 AM, Ryan Rawson <[email protected]>
>>>> wrote:
>>>>>>>> 
>>>>>>>>> There are test cases for this, the functionality DOES work,
>>>> something
>>>>>>>>> is
>>>>>>>> up...
>>>>>>>>> 
>>>>>>>>> Without full code and full descriptions of your tables,
>> debugging
>>>> is
>>>>>>>>> harder than it needs to be.  It's probably a simple typo or
>>>>>>>>> something,
>>>>>>>>> check your code and table descriptions again. Many people rely
>> on
>>>> the
>>>>>>>>> multi version query capabilities and it is very unlikely to be
>>>> broken
>>>>>>>>> in a released version of hbase.
>>>>>>>>> 
>>>>>>>>> On Wed, Feb 23, 2011 at 6:27 PM, 陈加俊 <[email protected]>
>> wrote:
>>>>>>>>>> final List<KeyValue> list = result.list();
>>>>>>>>>>          for (final KeyValue it : list)
>>>>>>>>>>          {
>>>>>>>>>>              System.out.println(Bytes.toString(it.getKey()));
>>>>>>>>>> 
>> System.out.println(Bytes.toString(it.getValue()));
>>>>>>>>>>          }
>>>>>>>>>> I can only get the last version!  why ? Is there any testcase
>> in
>>>>>>>>>> Hbase?
>>>>>>>>>> 
>>>>>>>>>> On Thu, Feb 24, 2011 at 9:56 AM, 陈加俊 <[email protected]>
>>>> wrote:
>>>>>>>>>> 
>>>>>>>>>>> /**
>>>>>>>>>>>  * Create a sorted list of the KeyValue's in this result.
>>>>>>>>>>>  *
>>>>>>>>>>>  * @return The sorted list of KeyValue's.
>>>>>>>>>>>  */
>>>>>>>>>>> public List<KeyValue> list() {
>>>>>>>>>>>   if(this.kvs == null) {
>>>>>>>>>>>     readFields();
>>>>>>>>>>>   }
>>>>>>>>>>>   return isEmpty()? null: Arrays.asList(sorted());
>>>>>>>>>>> }
>>>>>>>>>>> 
>>>>>>>>>>> I will try it . Thank you very much!
>>>>>>>>>>> 
>>>>>>>>>>> On Thu, Feb 24, 2011 at 9:45 AM, Buttler, David <
>>>> [email protected]>
>>>>>>>> wrote:
>>>>>>>>>>> 
>>>>>>>>>>>> Result.list() ?
>>>>>>>>>>>> Putting the hbase source into your IDE of choice (yay
>> Eclipse!)
>>>> is
>>>>>>>> really
>>>>>>>>>>>> helpful
>>>>>>>>>>>> 
>>>>>>>>>>>> Dave
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> -----Original Message-----
>>>>>>>>>>>> From: 陈加俊 [mailto:[email protected]]
>>>>>>>>>>>> Sent: Wednesday, February 23, 2011 5:42 PM
>>>>>>>>>>>> To: [email protected]
>>>>>>>>>>>> Cc: Buttler, David
>>>>>>>>>>>> Subject: Re: I can't get many versions of the specified
>>>> column,but
>>>>>>>> only
>>>>>>>>>>>> get the latest version of the specified column
>>>>>>>>>>>> 
>>>>>>>>>>>> Thank you David !
>>>>>>>>>>>> 
>>>>>>>>>>>> I alter the table schema as follow:
>>>>>>>>>>>> 
>>>>>>>>>>>>> alter 'cjjIndexPageModify', {NAME => 'log' , VERSIONS => 5 ,
>>>>>>>>>>>>> METHOD
>>>>>>>> =>
>>>>>>>>>>>> 'add'}
>>>>>>>>>>>> 
>>>>>>>>>>>> How to iterate over KeyValues?  which method in Result?
>>>>>>>>>>>> 
>>>>>>>>>>>> On Thu, Feb 24, 2011 at 9:27 AM, Buttler, David
>>>>>>>>>>>> <[email protected]>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>>> What is your table schema set to?  By default it holds 3
>>>>>>>>>>>>> versions.
>>>>>>>>>>>>> Also, you might iterating over KeyValues instead of using
>> the
>>>> Map
>>>>>>>> since
>>>>>>>>>>>> you
>>>>>>>>>>>>> don't really care about the organization, just the time.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Dave
>>>>>>>>>>>>> 
>>>>>>>>>>>>> -----Original Message-----
>>>>>>>>>>>>> From: 陈加俊 [mailto:[email protected]]
>>>>>>>>>>>>> Sent: Wednesday, February 23, 2011 5:22 PM
>>>>>>>>>>>>> To: [email protected]
>>>>>>>>>>>>> Cc: Stack
>>>>>>>>>>>>> Subject: Re: I can't get many versions of the specified
>>>>>>>>>>>>> column,but
>>>>>>>> only
>>>>>>>>>>>> get
>>>>>>>>>>>>> the latest version of the specified column
>>>>>>>>>>>>> 
>>>>>>>>>>>>> I execute it five times at diffrent time.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> //put data by version
>>>>>>>>>>>>> 
>>>>>>>>>>>>> final Put p = new Put(key); // key
>>>>>>>>>>>>> final long ts = System.currentTimeMillis();
>>>>>>>>>>>>>     p.add(FAMILY, q1, ts,v1);
>>>>>>>>>>>>>     p.add(FAMILY, q2, ts,v2);
>>>>>>>>>>>>>     p.add(FAMILY, q3, ts,v3);
>>>>>>>>>>>>>    table.put(p);
>>>>>>>>>>>>> 
>>>>>>>>>>>>> So I can get five versions ,right?
>>>>>>>>>>>>> 
>>>>>>>>>>>>> On Thu, Feb 24, 2011 at 2:06 AM, Stack <[email protected]>
>>>> wrote:
>>>>>>>>>>>>> 
>>>>>>>>>>>>>> What do you get for a result?
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> You are only entering a single version of each column, a
>>>> single
>>>>>>>>>>>>>> version of FAMILY:q1, a single version FAMILY:q2, and a
>>>>>>>>>>>>>> FAMILY:q3.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> St.Ack
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> On Wed, Feb 23, 2011 at 2:54 AM, 陈加俊 <[email protected]
>>> 
>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>> I can't get many versions of the specified column,but only
>>>> get
>>>>>>>>>>>>>>> the
>>>>>>>>>>>>> latest
>>>>>>>>>>>>>>> version of the specified column. Is there anyone  help me?
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> //put data by version
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> final Put p = new Put(key); // key
>>>>>>>>>>>>>>> final long ts = System.currentTimeMillis();
>>>>>>>>>>>>>>>     p.add(FAMILY, q1, ts,v1);
>>>>>>>>>>>>>>>     p.add(FAMILY, q2, ts,v2);
>>>>>>>>>>>>>>>     p.add(FAMILY, q3, ts,v3);
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>    table.put(p);
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> //get all versions of data
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> final Get get = new Get(key);
>>>>>>>>>>>>>>>         get.addFamily(FAMILY);
>>>>>>>>>>>>>>>         get.setMaxVersions(10);
>>>>>>>>>>>>>>>         final Result result = htable.get(get);
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>         final NavigableMap<byte[], NavigableMap<byte[],
>>>>>>>>>>>>>>> NavigableMap<Long, byte[]>>> map = result.getMap();
>>>>>>>>>>>>>>>         final Set<Entry<byte[], NavigableMap<byte[],
>>>>>>>>>>>>>>> NavigableMap<Long, byte[]>>>> entrySet = map.entrySet();
>>>>>>>>>>>>>>>         final Iterator<Entry<byte[], NavigableMap<byte[],
>>>>>>>>>>>>>>> NavigableMap<Long, byte[]>>>> iterator = entrySet
>>>>>>>>>>>>>>>                 .iterator();
>>>>>>>>>>>>>>>         while (iterator.hasNext())
>>>>>>>>>>>>>>>         {
>>>>>>>>>>>>>>>             final Entry<byte[], NavigableMap<byte[],
>>>>>>>>>>>>>>> NavigableMap<Long, byte[]>>> next = iterator.next();
>>>>>>>>>>>>>>> 
>>>> System.out.println(Bytes.toString(next.getKey()));
>>>>>>>>>>>>> //family
>>>>>>>>>>>>>>>             for (final Entry<byte[], NavigableMap<Long,
>>>>>>>>>>>>>>> byte[]>>
>>>>>>>>>>>>>>> item : next.getValue().entrySet())
>>>>>>>>>>>>>>>             {
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> System.out.println(Bytes.toString(item.getKey()));
>>>>>>>>>>>>>>>                 for (final Entry<Long, byte[]> _item :
>>>>>>>>>>>>>>> item.getValue().entrySet())
>>>>>>>>>>>>>>>                 {
>>>>>>>>>>>>>>>                     System.out.println(_item.getKey());
>> //q
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> System.out.println(Bytes.toString(_item.getValue()));
>>>>>>>>>>>>>>> //value
>>>>>>>>>>>>>>>                 }
>>>>>>>>>>>>>>>             }
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>         }
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>> Thanks & Best regards
>>>>>>>>>>>>>>> jiajun
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> --
>>>>>>>>>>>>> Thanks & Best regards
>>>>>>>>>>>>> jiajun
>>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> --
>>>>>>>>>>>> Thanks & Best regards
>>>>>>>>>>>> jiajun
>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> --
>>>>>>>>>>> Thanks & Best regards
>>>>>>>>>>> jiajun
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> --
>>>>>>>>>> Thanks & Best regards
>>>>>>>>>> jiajun
>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> --
>>>>>>> Thanks & Best regards
>>>>>>> jiajun
>>>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> --
>>>>> Thanks & Best regards
>>>>> jiajun
>>>>> 
>>>>> 
>>>> 
>>> 
>>> 
>>> 
>>> --
>>> Thanks & Best regards
>>> jiajun
>>> 
>> 
> 
> 
> 
> -- 
> Thanks & Best regards
> jiajun

Reply via email to