hbase-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ted Yu <yuzhih...@gmail.com>
Subject Re: Anyone good with JRuby?
Date Sat, 04 Oct 2014 22:29:11 GMT
Take a look at readFile() method in bin/region_mover.rb

Cheers

On Sat, Oct 4, 2014 at 2:33 PM, Roger Maillist <darkchanterlist@gmail.com>
wrote:

> Well, I see they are using .to_java_bytes to cast a string and pass it to
> the put-method, that's ok. But I am having trouble calling
> the inputStream.read method.
>
> I tried this:
>
> inFile = File.new("/home/roger/Downloads/test.jpg")
> inputStream = FileInputStream.new(inFile)
>
> length = inFile.length()
> buffer = ""
>
> inputStream.read(buffer)
>
> But that won't work. It's probably more of a JRuby question than actually
> an HBase issue...
>
> 2014-10-04 23:22 GMT+02:00 Ted Yu <yuzhihong@gmail.com>:
>
> > Take a look at _put_internal() method of
> > hbase-shell//src/main/ruby/hbase/table.rb
> >
> > On Sat, Oct 4, 2014 at 2:15 PM, Roger Maillist <
> darkchanterlist@gmail.com>
> > wrote:
> >
> > > Hi out there
> > >
> > > I am trying to read a (binary) file from the local FS and store it in
> > HBase
> > > using JRuby.
> > >
> > > But I fail with the byte-array InputStream needed for the Put-Method:
> > >
> > > require "java"
> > >
> > > java_import "java.io.File"
> > > java_import "java.io.FileInputStream"
> > >
> > > java_import "org.apache.hadoop.hbase.client.HTable"
> > > java_import "org.apache.hadoop.hbase.client.Put"
> > >
> > > def jbytes(*args)
> > >   args.map { |arg| arg.to_s.to_java_bytes }
> > > end
> > >
> > > puts "Hello from Ruby"
> > >
> > > inFile = File.new("/home/roger/Downloads/test.jpg")
> > > inputStream = FileInputStream.new(inFile)
> > >
> > > length = inFile.length()
> > > buffer = Java::byte[length].new
> > >
> > > inputStream.read(buffer)
> > >
> > > table = HTable.new(@hbase.configuration, "emails")
> > > p = Put.new(*jbytes("roger3.pdf"))
> > >
> > > p.add(*jbytes("inhalt", "", buffer))
> > >
> > > table.put(p)
> > >
> > > inputStream.close()
> > > table.close()
> > >
> > >
> > >
> > > Has anyone done this right?
> > >
> > > I tried and googled....no breakthrough :-/
> > >
> > > Thanks
> > > Roger
> > >
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message