当前位置: 首页 > 知识库问答 >
问题:

Cassandra 2.0-即使在30分钟后,CQL3模式更改也不会传播到集群的其余部分

滕项明
2023-03-14

几个月前,我在CQL 3.0 / Cassandra 1.2中创建了一个表,其中包含一个非常简单的表结构,其中包括几个带有CQL3集合的列。

今天,我在我们的开发C*集群上对该表的模式进行了更新,该集群已升级到运行CQL 3.1的Cassandra 2.0。

我今天通过cqlsh在我们环中的4个节点之一上运行以下命令: ALTER TABLE ExistingTable DROP OldColumn1;更改表现有表删除OldColumn1_;--用于 DSE 搜索 solr 索引;不再需要 更改表 现有表 添加新列集

然而,30分钟后,我看到应用程序中的一些测试失败,我非常惊讶地发现,虽然我运行这些更改的节点具有正确的模式,但这些更改都没有传播到环中的对等节点。我已经使用卡桑德拉一年半了,以前从未见过。

如何解决此问题以及问题的原因?

编辑这个可能有助于解释正在发生的事情。当我尝试启动< code>nodetool修复时,出现以下错误:

线程“main”中出现异常Java . lang . unsupportedclassversionerror:org/Apache/Cassandra/tools/node cmd:不支持的major.minor版本51.0 at Java . lang . class loader . define class 1(本机方法)at Java . lang . class loader . Java:631 at Java . class loader . define class(class loader . Java:615)at Java . security . secure class loader . define class(secure class loader . Java:1

共有2个答案

解沈义
2023-03-14

您的代码是为JDK 7编译的,您正在JDK 6上运行。

凌俊语
2023-03-14

我遵循了Christopher的建议,并使用nodetool/dse工具修复了我的JDK问题。Cassandra之所以成功,是因为它寻找指向“java”命令的符号链接,该命令在升级到Oracle JDK7期间被正确设置为JRE 7,并使用该命令运行其JAR。但是,除了<code>cqlsh

修复该问题后,一旦我将架构更改重新应用到不同的节点,我的架构立即复制到其他节点。

 类似资料:
  • 问题内容: 我需要将会话保留30分钟,然后销毁它。 问题答案: 您应该自己实现会话超时。其他人提到的两个选项_session.gc_maxlifetime_和_session.cookie_lifetime_都不可靠。我将解释其原因。 第一: session.gc_maxlifetime session.gc_maxlifetime 指定秒数,此后将数据视为“垃圾”并清除。垃圾收集在会话开始期间发

  • 问题内容: 我有一个包含10个元素的div,这些元素将被逐个更新,延迟时间为2秒。下面是相同的代码 但是,当我运行它时,所有元素都会一起更新。该程序只是添加一个延迟添加一个开始,并且所有元素都一起更新(被标记)。如何制作代码来逐一标记元素? 问题答案: 您正在打破React的两个基本规则: 不要直接改变状态 如果根据现有状态更新状态,请使用回调形式,因为状态更新可能是异步的(无论如何,在您的示例中

  • 在这里,是主列键中的第三列。我想要做到这一点的唯一方法是将主复合键更改为。我找不到任何文档告诉我如何做到这一点。有可能吗? 或者,我是否错过了解决这个问题的“正确”方法/我是否曲解了这个问题?

  • 我们使用作业 属性来自动清理已完成的作业。当我们的作业数量非常少(10-50 个)时,作业(及其 Pod)将在完成后大约 60 秒被清理。但是,现在我们的集群上运行了 ~5000 个作业,完成后需要 30 分钟才能清理 Job 对象。 这是一个问题,因为尽管作业就在那里,不消耗资源,但我们确实使用< code>ResourceQuota(选择器计数/jobs.batch)来控制我们的工作负载,并且

  • 当用户滑动滑块时,我试图触发一个事件,当滑动停止时,该值会更改。根据jQuery文档,对于这种情况,事件是理想的选择。所以我正在尝试: 然而,我观察到,当我向右拖动滑块并再次将其拖回起点(页面加载时滑块的初始位置)时,警报仍会触发。这是jQuery错误吗?如果没有,我该如何解决这个问题?

  • 这就是我生成dutylist的方法。 这将更改对的第二个值 但是它会更改pos中的其他值,也就是说,如果我更改了StaffListUpdated[0].third[0]=pair,它也会更改StaffListUpdated[1].third[0]=pair。我试过很多种方法,但都无济于事。