2

MassiveRecord over thrift を使用してレコードを HBase に保存すると、奇妙な「中止」エラーが発生します。

自作で hbase (0.92.0 および 0.94.0) をインストールして、Mac OS X でエラーを再現するコードを次に示します。

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 の "develop" ブランチを引っ張って、今のところこれを解決しました。

于 2012-10-23T22:53:35.050 に答える