Everything you need to build a Ruby client for HBase
Ruby
Switch branches/tags
Latest commit ed8d210 Feb 18, 2012 @alindeman alindeman Bumps version
Permalink
Failed to load latest commit information.
lib
.gitignore
Gemfile
README.md
Rakefile
hbase-rb.gemspec

README.md

HBase For Ruby Made Easy

To use HBase with Apache Thrift, you might have to manually generate Ruby code from generic *.thrift files.

This gem tries to alleviate that slight annoyance by packaging everything you need to communicate with HBase.

Installation

Bundler

Add to Gemfile and run bundle install:

gem 'hbase-rb'

Without Bundler

Install the gem:

gem install hbase-rb

Require it explicitly in your scripts:

require "rubygems"
require "hbase-rb"

Versioning

The version of the gem matches the version of HBase the interface was generated against.

For instance, when using HBase 0.90.4:

gem 'hbase-rb', '0.90.4'

Usage

This library simply exposes the generated Ruby code from Thrift. Therefore it is not necessarily very idiomatic Ruby.

For example:

socket    = Thrift::Socket.new('localhost', 9090)

transport = Thrift::BufferedTransport.new(socket)
transport.open

protocol  = Thrift::BinaryProtocol.new(transport)
client    = HBase::Client.new(protocol)

puts client.getTableNames

Writing Rows

# Assuming a table "mytable" and a column family "c"
client.mutateRow("mytable", "abc123", [HBase::Mutation.new(column: "c:foo", value: "bar")])

Reading Rows

# Assuming a table "mytable" and a column family "c"
results = client.getRow("mytable", "abc123")
if result = results.first
  result.columns.each do |key, cell|
    puts "#{key}: #{cell.value}"
  end
end

API Reference