2012-10-20 14 views
2

當在節儉上使用MassiveRecord將記錄保存到HBase中時,出現奇怪的「中止」錯誤。HBase通過Ruby中的MassiveRecord導致中止

這裏是一些代碼,將在Mac OS X上重現錯誤,並通過homebrew安裝hbase(0.92.0和0.94.0)。

require 'massive_record' 

MassiveRecord::ORM::Base.connection_configuration = { :host => 'hbase' } 
class Woot < MassiveRecord::ORM::Table 
    default_scope select(:data) 
    column_family :data do 
    field :name, :string 
    end 
end 

woot = Woot.new(:name => 'rawr') 
woot.save 

這總是導致進程停止,離開消息

[1] 8756 abort  ruby massive_woot.rb 

檢索工作得很好,但我似乎無法保存記錄。

這裏的架構是什麼樣子:

>> describe 'woots' 
DESCRIPTION                           ENABLED               
{NAME => 'woots', FAMILIES => [{NAME => 'data', BLOOMFILTER => 'NONE', REPLICATION_SCOPE => '0', VERSIONS => '3', C true                
OMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => '2147483647', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCA                 
CHE => 'true'}]}                                          
1 row(s) in 0.0190 seconds 

回答

0

事實證明,這是一個版本的問題。 MassiveRecord v0.2.2依賴於節儉0.6.0(由Gemfile中的「= 0.6.0」版本指定)。

我現在通過從github上拉下MassiveRecord的「develop」分支來解決這個問題。