在多节点拓扑中修改cassandra中的柱族

在多节点拓扑中修改cassandra中的柱族,cassandra,cassandra-2.0,datastax,datastax-java-driver,cassandra-cli,Cassandra,Cassandra 2.0,Datastax,Datastax Java Driver,Cassandra Cli,我在试图改变卡桑德拉时遇到了以下问题: 我正在直接改变桌子: ALTER TABLE posts ADD is_black BOOLEAN; 在单节点环境中,无论是在EC2服务器下还是在本地主机上,一切都可以完美地工作—选择、删除等等 当我在一个有3个节点的集群上进行更改时,事情变得越来越复杂。 当我表演的时候 select().all().from(tableName).where.. 我得到以下异常: java.lang.IllegalArgumentException: is_blac

我在试图改变卡桑德拉时遇到了以下问题: 我正在直接改变桌子:

ALTER TABLE posts ADD is_black BOOLEAN;
在单节点环境中,无论是在EC2服务器下还是在本地主机上,一切都可以完美地工作—选择、删除等等

当我在一个有3个节点的集群上进行更改时,事情变得越来越复杂。 当我表演的时候

select().all().from(tableName).where..
我得到以下异常:

java.lang.IllegalArgumentException: is_black is not a column defined in this metadata

    at com.datastax.driver.core.ColumnDefinitions.getAllIdx(ColumnDefinitions.java:273)

    at com.datastax.driver.core.ColumnDefinitions.getFirstIdx(ColumnDefinitions.java:279)

    at com.datastax.driver.core.ArrayBackedRow.getIndexOf(ArrayBackedRow.java:69)

    at com.datastax.driver.core.AbstractGettableData.getString(AbstractGettableData.java:137)
显然,我不是唯一一个有这种行为的人:

p、 s-drop创建键空间对我来说是不可能的,因为我无法删除表中包含的数据

错误已解决:-)

我的问题是DataStax在内存中维护包含每个节点配置的缓存,当我更改表时,这个缓存并没有更新,因为我使用了cqlsh而不是它们的SDK


重新启动所有节点后,内存缓存被删除,错误得到解决。

您可以通过cqlsh在所有节点上查询该列吗?@BryceAtNetwork23是的,我可以在每个节点上处理每个数据。这可能与datastax驱动程序的缓存元数据有关。您是否可以尝试重新启动应用程序服务器以清除缓存?您使用的是哪个版本的驱动程序?它应该刷新其元数据,即使第三方(如cqlsh)正在进行模式更改(请参阅)。我的2.1驱动程序也有类似的问题。