HBase shellでも日本語を表示したい!

最近はレコメンドウィジェットTAXELの開発をやっているCTO室のHadoopエンジニアのJ.Nです。

HBaseで日本語を取り扱う時、日本語データはバイト列で格納されるためHBase Shellでデータを確認したい時はバイト列がprintされます。

このままだと、HBaseのデータを確認したい時に実際に何が入ってるのかが不明なため非常に困ります。

HBaseにはJRubyが内包されており、HBase ShellもJRubyで書かれてるため、JRubyでバイト列を文字列にするスクリプトを書けばとりあえず確認できるので書いてみました。

テストデータの準備

テーブルを作成

HBaseに日本語付のデータを投入

scan でデータ表示

バイト列でデータが入っている

JRubyで日本語表示できるプログラムを書く

print_jr.rbというファイル名で保存

実行(コンソール表示)

結果

実行(ファイル保存)

汎用的な日本語表示プログラム

先ほどのプログラムを改良し、汎用的なものを作りました。とりあえず日本語を表示したい、またはパイプラインでファイルに保存したいといった時に以下のプログラムが使えます。

使い方

引数が足りない場合(HELPを表示)

引数がある場合

他に、日本語表示する冴えたやり方があったら是非教えてください(;><)!