Since the hbase shell is irb, I wanted to get color output because that’s what I’m used to. Although the appropriate place to put this is in an .irbrc file, that would conflict with any ruby development environment already on the system and luckily jruby and hbase don’t seem to invoke it anyway.

First find a copy of wirble. If you don’t have it anywhere, download it from github:

cd ${hbase_home}/lib/ruby wget

Now edit ${hbase_home}/bin/hirb.rb. Add to the end but above IRB.start

  # load wirble
  require 'wirble'</p>

  # start wirble (with color)
rescue LoadError => err
  warn "Couldn't load Wirble: #{err}"

IRB.conf[:HISTORY_FILE] = "#{ENV['HOME']}/.hbase-history"

# add right before end but above this line

Now when you start hbase shell, you’ll have lovely color output. Why would you want this? I don’t know. You probably don’t want it. But I was happy to understand how the hbase shell works. It’s just jruby irb that loads hirb automatically.