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

在侧面做稳定分裂

祝俊雄
2023-03-14

由于sstables是不可变的,因此必须离线执行sstable拆分,即关闭节点。在保持节点在线的同时,在短时间重新启动节点期间,用一组分割的sstable文件交换极端sstable,以最大限度地减少节点停机时间?

或者,淘汰一个节点,将数据分散到集群的其余部分,然后作为一个新的空节点重新加入,这样会更好吗

例如,有一些大的表不会很快进入压缩视图。我想在另一个盒子上的另一个目录/FS/中进行这样的离线拆分,只是在运行节点的范围之外,同时仍然有来自原始表路径的节点服务冗余。似乎只有sstablesplit想要找到配置,或者它可能被欺骗,以其他方式从运行节点执行剥离?

尝试对一个表文件的副本进行拆分,但是:

on-a-离线框$ sstablesplit --debug -s 一些值-IN-MB mykeyspc-mycf-*-Data.db 16:58:13.197 [主] 错误 o.a.c.config.Database描述符 - 致命的配置错误 or.apache.cassandra.exceptions.ConfigurationException: 期望变量中的 URI: [cassandra.config]请为文件添加 file:/// 作为本地文件的前缀,为远程文件添加 file:/// 前缀。中止。如果从外部工具执行此操作,则需要设置配置。at org.apache.cassandra.config.YamlConfigurationLoader.getStorageConfigURL(YamlConfigurationLoader.java:73) ~[apache-cassandra-2.1.15.jar:2.1.15] at org.apache.cassandra.config.YamlConfigurationLoader.loadConfig(YamlConfigurationLoader.java:84) ~[apache-cassandra-2.15.jar:2.1.15] at org.apache.cassandra.config.database描述符.loadConfig(数据库描述符.java:161) ~[apache-cassandra-2.1.15.jar:2.1.15] 在 org.apache.cassandra.config.databaseScriptor(数据库描述符.java:161) ~[apache-cassandra-2.15.jar:2.1.15] 在 org.apache.cassandra.config.databaseDescriptor.loadconfig(数据库描述符.java:161) ~[apache-cassandra-2.15.jar:2.15] 在 org.apache.cassandra.config.database描述符.loadconfig(数据库描述符.java:161) ~[apache-cassandra-2.15.jar:2.15] 在 org.apache.cassandra.config.config.database描述符(数据库描述符.java:161) ~[apache-cassandra-2.15.jar:2.15].(数据库描述符.java:136) ~[apache-cassandra-2.1.15.jar:2.1.15] 在 org.apache.cassandra.tools.standaloneSplitter.main(独立拆分器.java:56) [apache-cassandra-2.1.15.jar:2.1.15] 期望变量中的 URI: [cassandra.config]请为文件添加 file:/// 作为本地文件的前缀,为远程文件添加 file:/// 前缀。中止。如果从外部工具执行此操作,则需要设置配置。致命的配置错误;无法启动。请参阅堆栈跟踪的日志。

共有1个答案

费学
2023-03-14

如果您可以承受节点的停机时间,那么就这样做(拆分表)。无论如何,如果您要在另一台机器/另一个目录上执行此拆分,则需要在重新加载sstables后在节点上运行修复(由于重建表的“脱机”时间)。

您也可以尝试从您的节点中删除此表数据文件并运行修复,这可能是节点的最短停机时间:

停止节点-

编辑:从Cassandra 3.4开始,您可以对特定表/文件运行压缩命令。在任何早期版本中,您都可以使用forceUserDefinedCompaction jmx调用。您可以使用其中的一个,或者自己进行jmx调用:

http://wiki.cyclopsgroup.org/jmxterm/manual.html

https://github.com/hancockks/cassandra-compact-cf

https://gist.github.com/jeromatron/e238e5795b3e79866b83

jmxterm的示例代码:

sudo java -jar jmxterm-1.0-alpha-4-uber.jar -l localhost:7199

bean org.apache.cassandra.db:type=CompactionManager
run forceUserDefinedCompaction YourKeySpaceName_YourFileName.db

此外,如果“大表”问题一直发生,请考虑移动到LCS。

 类似资料:
  • 我正在构建一个ASP.NET web应用程序,使用ajax请求一些内容,它在FireFox、Chrome中工作得很好,但在IE中不稳定:当使用登录时,他/她可以查看所有者文件,如果不登录页面返回字符串“No Permission”。 我登录了网站,我在IE中刷新页面,有时它显示文件,有时它显示“没有权限”(未登录)我再次刷新它显示文件。我的意思是,有些要求它工作正确,有些要求它工作错误!我已经看到

  • 有没有一种数值稳定的方法来计算下面的softmax函数?我得到的值在神经网络代码中变成了Nans。

  • 我的问题是:如何确定已拆分的旋转矩形几何体的和是拆分该几何体的任意的“左”和“右”边? 对于这个问题,"左"和"右"被定义为从节点到节点"行走"时,按顺序的拆分器的左边和右边。 我创建了此函数,用于将任意几何体(非集合)拆分为两个面——“左”和“右”: 上面的想法在此处链接的笔记本中进行了说明(与上面的链接相同): http://nbviewer.jupyter.org/urls/dl.dropb

  • 我正在尝试使用类来构建小行星类型的翻拍,我在这里有一个制作飞船的类: } 但是当它使用我的主类绘制时,精灵上的纹理是正常绘制的,但是当我按下w向前移动时,它会将我移动到右边。当我旋转它的时候,好像我的船的顶部在一边,这怎么可能呢? 编辑:似乎只是旋转图像90度顺时针固定它,但不幸的是,它默认为该角度。

  • 相信您已经掌握了很多种排序算法,比如冒泡排序、插入排序、希尔排序、选择排序等。这些排序算法中,有些是 "稳定" 的,有些是 "不稳定" 的。 给定的待排序序列中,经常会包含相同的元素,例如: 3 1 2 4 2 此序列中包含两个元素 2,为了区分它们,我们分别称它们为 "红 2" 和 "绿 2"。 评价一个排序算法是否稳定,是指该算法完成排序的同时,是否会改变序列中相同元素的相对位置。例如,上面序

  • 问题内容: 下面有没有一种数值稳定的方法来计算softmax函数?我得到的价值在神经网络代码中变成Nans。 问题答案: softmax exp( x )/ sum(exp( x ))实际上在数字上表现良好。它只有正数项,因此我们不必担心重要性下降,并且分母至少与分子一样大,因此可以保证结果介于0到1之间。 唯一可能发生的事故是指数溢出或溢出。 x 的单个元素的上溢或所有元素的下溢将使输出或多或少