因为我是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)
我不知道为什么会收到此错误。有没有人有相同的工作代码。 提前谢谢。
答案 0 :(得分:2)
你是如何创建Keyspace的?它的复制设置是什么? UnavailableException
表示没有足够的实时副本来响应查询。我的猜测是,您不小心将复制因子设置得太高,或者您使用的是NetworkTopologyStrategy
,并且复制设置中的数据中心名称与节点的实际数据中心名称不匹配。