hbaseインストールしたときのメモ
■インストール
brew install hbase # Homebrewで楽しちゃいました vi /usr/local/Cellar/hbase/0.92.0/libexec/conf/hbase-site.xml# 起動 start-hbase.sh # 停止 # stop-hbase.sh # Rest I/F起動 hbase rest start # ブラウザ確認 http://localhost:8080/ # → テーブルがないので白画面 # rubyでテーブル作成 gem install json gem install hbase-stargate require 'rubygems' require 'stargate' client = Stargate::Client.new("http://localhost:8080") p client.list_tables client.create_table('cats', 'profile', 'status') p client.list_tables # → create文なので、2回目からはコメントアウトすること hbase.rootdir file:///usr/local/Cellar/hbase/databases/hbase-${user.name}/hbase The directory shared by region servers and into which HBase persists. The URL should be 'fully-qualified' to include the filesystem scheme. For example, to specify the HDFS directory '/hbase' where the HDFS instance's namenode is running at namenode.example.org on port 9000, set this value to: hdfs://namenode.example.org:9000/hbase. By default HBase writes into /tmp. Change this configuration else all data will be lost on machine restart. 
■パフォーマンスどれくらいか見てみよう
#!/usr/bin/ruby
# -*- encoding: utf-8 -*-
require 'rubygems'
require 'stargate'
require 'benchmark'
# 接続
client = Stargate::Client.new("http://localhost:8080")
# ---------------------------------------
# Insert / Select 性能
# ---------------------------------------
count = 100000
p 'count:' + count.to_s
 
# ---------------------------------------
# hbase
Benchmark.bm { |rep|
  rep.report("hbase insert ") {
    for num in 1..count
      name = 'name' + num.to_s
      # 登録
      client.create_row('cats', num.to_s, Time.now.to_i,
        [{:name => 'profile:name', :value => name}])
    end
  }
}
Benchmark.bm { |rep|
  rep.report("hbase select") {
    for num in 1..count
      id = rand(count).to_i + 1
      row = client.show_row('cats', id.to_s)
    end
  }
}
■結果
"count:100000"
      user     system      total        real
hbase insert  45.120000   5.880000  51.000000 (223.785493)
      user     system      total        real
hbase select 51.610000   6.440000  58.050000 (273.129300)
# 前提として、1台のmacで行っているため、スケールアウトのメリットを享受できていません。
# そのため、Cassandra やhbaseでは期待する効果が出ていません!!
■参考サイト
Getting Hbase and Thrift Running on a Mac
hbase-stargateを使ってHBaseのCRUD
0 件のコメント:
コメントを投稿