当看到cassandra-cli时,pycassa创建列族异常

时间:2014-02-06 12:13:00

标签: python pycassa cassandra-2.0

因为我是Cassandra的新手。我想使用pycassa API创建一个列族。我使用以下代码创建了一个列族:

validators = {'full_name': UTF8_TYPE,
          'email': UTF8_TYPE,
          'state': UTF8_TYPE,
          'gender': UTF8_TYPE,
          'birth_year': LONG_TYPE}

sys.create_column_family('TestKeyspace', 'TestCF', super=False,
          comparator_type=UTF8_TYPE,
          key_validation_class=UTF8_TYPE, 
          column_validation_classes=validators)

python脚本运行正常,没有任何异常。但是当我使用cassandra-cli检查这个列族时。我得到了以下例外:

UnavailableException()
        at org.apache.cassandra.thrift.Cassandra$get_range_slices_result$get_range_slices_resultStandardScheme.read(Cassandra.java:17439)
        at org.apache.cassandra.thrift.Cassandra$get_range_slices_result$get_range_slices_resultStandardScheme.read(Cassandra.java:17397)
        at org.apache.cassandra.thrift.Cassandra$get_range_slices_result.read(Cassandra.java:17323)
        at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:78)
        at org.apache.cassandra.thrift.Cassandra$Client.recv_get_range_slices(Cassandra.java:802)
        at org.apache.cassandra.thrift.Cassandra$Client.get_range_slices(Cassandra.java:786)
        at org.apache.cassandra.cli.CliClient.executeList(CliClient.java:1520)
        at org.apache.cassandra.cli.CliClient.executeCLIStatement(CliClient.java:285)
        at org.apache.cassandra.cli.CliMain.processStatementInteractive(CliMain.java:201)
        at org.apache.cassandra.cli.CliMain.main(CliMain.java:331)

我不知道为什么会收到此错误。有没有人有相同的工作代码。 提前谢谢。

1 个答案:

答案 0 :(得分:2)

你是如何创建Keyspace的?它的复制设置是什么? UnavailableException表示没有足够的实时副本来响应查询。我的猜测是,您不小心将复制因子设置得太高,或者您使用的是NetworkTopologyStrategy,并且复制设置中的数据中心名称与节点的实际数据中心名称不匹配。