2

当使用MassiveRecord而不是 thrift 将记录保存到 HBase 时,我收到一个奇怪的“中止”错误。

这里有一些代码将在 Mac OS X 上重现错误,通过自制软件安装 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
4

1 回答 1

0

原来这是一个版本控制问题。MassiveRecord v0.2.2 依赖于 thrift 0.6.0(由 Gemfile 中的“= 0.6.0”版本指定)。

我现在通过从 github 拉出 MassiveRecord 的“开发”分支来解决这个问题。

于 2012-10-23T22:53:35.050 回答