Hello, Glad I could help! The simplest way to access a hbase is using the HTable object:
http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/HTable.html Create a Get() object: http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Get.html And then issue a get() on the HTable object using the Get() object you just created; http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/HTable.html#get%28org.apache.hadoop.hbase.client.Get%29 Once you have that working, then I would move on to using a Scanner: http://hbase.apache.org/docs/r0.20.6/api/org/apache/hadoop/hbase/client/ResultScanner.html Which accepts a Scan() object to that defines how the scan is performed: http://hbase.apache.org/docs/r0.20.6/api/org/apache/hadoop/hbase/client/Scan.html ___But before you do any of that, I would take a look at the example they have up on the Hbase page___ http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/package-summary.html#client_example which covers how to use both the Get()/Put interface an the Scanner interface(). Some more notes.. I've ended up storing almost everything in my database as a string.. which I then write out in bytes to the DB. So an Int would be something like: Put.add( [family], [qualifier], Bytes.toBytes( Integer.toString( my_int ) ) ); This means everything is readable using the hbase shell, and if I say, decided to change a field from an int to a long, it's OK, no worries about making sure I re-interpret everything correctly, and read the right number of bytes, etc.. In general, it just makes thing super easy for me, because everything is readable, and everything is the same type - which is especially handy when reading in from other languages and platforms ( say C# on Windows ), because pretty much every decent programming environment out there has support for decoding UTF-8 strings. I don't have to worry about a java integer being so many bytes and Big Endian when I read it back from a C# program on windows. Since Hbase compresses all it's data (assuming you have LZO enabled - you should!), you don't really waste too much space or anything (text generally compresses fairly well). Of course, the "real" solution is to use something like Avro: http://avro.apache.org/ and encode you data using that... but I'm lazy (efficient?), and strings work just fine, so it's all good. Take care, -stu ________________________________ From: neuron005 <[email protected]> To: [email protected] Sent: Thursday, December 15, 2011 9:52 PM Subject: Re: Different value of integer on querying in hbase! Stuart Smith-8 wrote: > > Hello, > How did you query base via a statement object? Are you using Hive? > > Or is this some new interface I don't know about.. I always had to use > Get() or Scan(). > And hbase stores everything as bytes, not strings.. unlike C, in java, > there is a difference ;) > > Take care, > -stu > > Thanks for your reply Stu > I am a newbie and thanks to you , you saved me from a big trouble.Hbase > stores as bytes. So, If I store an integer value, I will have to cast it > from byte to int. I was using getInt("String") method to read from hbase. > Or Should I use Scanner ? > Please tell > > > ________________________________ > From: neuron005 <[email protected]> > To: [email protected] > Sent: Wednesday, December 14, 2011 3:26 AM > Subject: Different value of integer on querying in hbase! > > > Hii there, > I just created a simple hbase table from my java program, Inserted value > in > it. But I got into an issue that whenever I store an integer value in > habse > and retrieve it by my java program , It gives a different value. > For eg. > I inserted an int value in my hbase table '1234' > When I queried from this using my java code -It showed a value 892745528. > Though hbase stores everything as string but I casted my result as > ResultSet rs=stmt.execute("select * from mapping_name"); > int val2=rs.getInt("val2");//val2 of type string > > Please help me out. Thanks in advance. > Cheers:working: > -- > View this message in context: > http://old.nabble.com/Different-value-of-integer-on-querying-in-hbase%21-tp32974072p32974072.html > Sent from the HBase User mailing list archive at Nabble.com. > -- View this message in context: http://old.nabble.com/Different-value-of-integer-on-querying-in-hbase%21-tp32974072p32985019.html Sent from the HBase User mailing list archive at Nabble.com.
