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