On Sat, May 24, 2014 at 11:23 PM, David Liu <d...@gopivotal.com> wrote:

> Hi experts,
>
> I create a table using this command: create 'test','cf1'.
> then put some data there: put 'test','realRow','cf1','realvalue1'
> now I am trying to read its data using hdfs java api instead of hbase api:
>
> FileSystem fs = FileSystem.get(URI.create(uri), conf);
>
>  Path path = new Path(
>
>
> "hdfs://localhost:9000/apps/hbase/data/data/default/test/69c16a187661b1ea8dd904851b9e3bb0/cf1/111c243d1953442f93b4d653690abe20"
> );
>
>  FSDataInputStream in = fs.open(path);
>
>  String filename = "111c243d1953442f93b4d653690abe20";
>
>  BufferedOutputStream out = new BufferedOutputStream(
>
>   new FileOutputStream(new File(filename)));
>
>  byte[] b = new byte[1024];
>
>  int numBytes = 0;
>
>  while ((numBytes = in.read(b)) > 0) {
>
>  out.write(b, 0, numBytes);
>
>  System.out.println(Bytes.toString(b));
>
>  }
>
> But data come like this:
>
> [image: Inline image 1]
>
> Is there something wrong with my decoding code?
>
>
> Your image did not come across (they are suppressed on this mailing list).
 Better to put up a link in future.

You just want to read raw bytes or you want interpreted view on the
contents?

HBase writes hfiles: see http://hbase.apache.org/book.html#hfilev2

For an example reading them, start at the main method here
http://hbase.apache.org/xref/org/apache/hadoop/hbase/io/hfile/HFile.html#891and
follow through to the pretty print class.

St.Ack

Reply via email to