2011-08-10
■[ruby][hbase]hbaserb
アプリケーションのログをparseしてHBaseに格納する為に、hbaserbというライブラリを使ってみました。hbaserbからHBaseを操作するのはThrift経由となる為、先にThriftの受け口を起動しておきます。
hbase-daemon.sh start thrift
tableもhbaserbで作成することはできますが、今回は予めhbase shellでtableを作っておき、データを保存してみました。
hbase(main):004:0> create 'hbaserb_test', 'data'
HBaseを操作するRubyのコードは以下です。
require 'rubygems' require 'hbaserb' client = HBaseRb::Client.new '127.0.1.1' table = client.get_table 'hbaserb_test' table.mutate_row 'row1', {'data:key1' => 'value1', 'data:key2' => 'value2'} table.mutate_row 'row2', {'data:key1' => 'hoge', 'data:key2' => 'foobar'} table.create_scanner('row1') do |row| row.columns.keys.each do |key| puts "#{key} => #{row.columns[key].value}" end end
上記コードを実行すると、以下のように表示されます。
masayuki@ubuntu-vm:~/work/ruby/hbaserb$ ruby test.rb data:key1 => value1 data:key2 => value2 data:key1 => hoge data:key2 => foobar
hbase shellからも保存したデータを確認することができます。
hbase(main):005:0> scan 'hbaserb_test' ROW COLUMN+CELL row1 column=data:key1, timestamp=1312999209128, value=value1 row1 column=data:key2, timestamp=1312999209128, value=value2 row2 column=data:key1, timestamp=1312999209130, value=hoge row2 column=data:key2, timestamp=1312999209130, value=foobar 2 row(s) in 0.2240 seconds
トラックバック - http://d.hatena.ne.jp/hsyd/20110810/1313000153
リンク元
- 43 http://pipes.yahoo.com/pipes/pipe.info?_id=tDfBdGWF3RGl9XNm1L3fcQ
- 13 http://twitter.com/
- 10 http://www.google.co.jp/search?q=linux+swap+プロセス&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&hl=ja&client=firefox-a
- 9 http://pipes.yahoo.com/pipes/pipe.info?_id=12e453e301454b799b3ac6642aa089b5
- 9 http://www.google.co.jp/url?sa=t&rct=j&q=linux+swap+プロセス&source=web&cd=2&ved=0CDIQFjAB&url=http://d.hatena.ne.jp/hsyd/20100524/1274680980&ei=gE3LTv2TN8uUmQWJgc2lDQ&usg=AFQjCNFKo4XxnXp5MhPPtksh2fUwmYF0kA
- 9 http://www.google.co.jp/url?sa=t&rct=j&q=offline+application+caching&source=web&cd=2&ved=0CDIQFjAB&url=http://d.hatena.ne.jp/hsyd/20100725/1280074596&ei=LaTJTsWQNPGWmQXyw_wy&usg=AFQjCNHVtCUYOQGC1LDmSaBQIAyIsVNZJw
- 9 http://www.google.co.jp/url?sa=t&source=web&cd=2&ved=0CCEQFjAB&url=http://d.hatena.ne.jp/hsyd/20110511/1305139683&rct=j&q=org.apache.catalina.session.PersistentManager minIdleSwap Java&ei=EItITuvMFY7qrQez4s3zAw&usg=AFQjCNFfwcwnGN69jAFTl
- 8 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4GGLL_jaJP349JP349&q=java+mongodb+オブジェクト
- 8 http://www.google.co.jp/url?sa=t&rct=j&q=プロセス スワップ&source=web&cd=2&ved=0CCUQFjAB&url=http://d.hatena.ne.jp/hsyd/20100524/1274680980&ei=0umvTsXjKuWfmQWcwrWBAg&usg=AFQjCNFKo
- 8 http://www.google.co.jp/url?sa=t&rct=j&q=JSONRepresentation&source=web&cd=28&ved=0CFoQFjAHOBQ&url=http://d.hatena.ne.jp/hsyd/20100926/1285524201&ei=FGeqTuLMEoyCmQX9z_D4Dg&usg=AFQjCNFD_tsMCL4_d870LtPh6Nl-yOQWpg&sig2=88RzmTyCeFWxmD5LRNLSZw