- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在考虑 Cassandra 集群的设计。
用例将存储大行微小样本的时间序列数据(使用 KairosDB),数据几乎是不可变的(非常罕见的删除,无更新)。这部分工作得很好。
但是,几年后,数据将相当大(最大大小将达到数百 TB - 考虑到复制因子,超过 1 PB)。
我知道建议每个 Cassandra 节点不要使用超过 5TB 的数据,因为压缩和修复期间 I/O 负载很高(这对于旋转磁盘来说显然已经相当高了)。由于我们不想为此用例构建具有数百个节点的整个数据中心,因此我正在研究在旋转磁盘上使用高密度服务器是否可行(例如,在 RAID10 中使用旋转磁盘每个节点至少 10TB 或 20TB或 JBOD,服务器将具有良好的 CPU 和 RAM,因此系统将受到 I/O 限制)。
Cassandra 每秒的读/写量可由小型集群管理,没有任何压力。我还可以提到,这不是一个高性能事务系统,而是一个用于存储、检索和一些分析的数据存储,并且数据几乎是不可变的 - 因此,即使压缩或修复/重建需要在多个服务器上花费几天的时间同时,这可能根本不会成为问题。
我想知道是否有人对使用旋转磁盘的高服务器密度有经验反馈以及您使用的配置(Cassandra 版本、每个节点的数据大小、每个节点的磁盘大小、磁盘配置:JBOD/RAID、硬件类型)。
预先感谢您的反馈。
致以诚挚的问候。
最佳答案
超密集节点的风险不一定是在修复和压缩期间最大化 IO - 它是无法可靠地解决整个节点故障。在您对 Jim Meyer 的回复中,您指出不鼓励使用 RAID5,因为重建期间发生故障的可能性太高 - 同样的潜在故障是反对超密集节点的主要论点。
在 vnode 出现之前,如果您有一个 20T 节点死亡,并且必须恢复它,则必须从相邻 (2-4) 个节点传输 20T 节点,这将最大化所有这些节点节点,增加了故障的可能性,并且需要(数小时/天)来恢复故障节点。那时,您的运行冗余会减少,如果您重视数据,这可能会带来风险。
vnode 受到许多人赞赏的原因之一是它可以将负载分配给更多邻居 - 现在,用于引导替换节点的流操作来自数十台计算机,从而分散了负载。但是,您仍然遇到根本问题:您必须在 Bootstrap 失败的情况下将 20T 数据传输到节点上。长期以来,流媒体比预期的更加脆弱,并且在云网络上流媒体 20T 且无故障的可能性并不理想(尽管它再次变得越来越好)。
可以运行20T节点吗?当然。但有什么意义呢?为什么不运行 5 个 4T 节点 - 您可以获得更多冗余,可以相应地缩小 CPU/内存,并且不必担心一次重新引导 20T。
我们的“密集”节点是采用 Cassandra 2.1.x 的 4T GP2 EBS 卷(x >= 7 以避免 2.1.5/6 中的 OOM)。我们使用单个卷,因为虽然您建议“cassandra 现在很好地支持 JBOD”,但我们的经验是,依赖 Cassandra 的平衡算法不太可能给您带来您所想象的效果 - IO 将在设备之间惊群(压倒性的,然后压倒下一个,依此类推),它们会不对称地填充。对我来说,这是反对大量小卷的一个很好的论据 - 我宁愿只看到单个卷上的一致使用。
关于Cassandra 集群 - 数据密度(每个节点的数据大小) - 寻求反馈和建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31563447/
我们有 2 个 cassandra 集群,第一个有旧数据,第二个有新数据。 现在我们想要将旧数据从第一个集群移动或复制到第二个集群。什么是最好的方法来做到这一点以及如何做到这一点? 我们正在使用 DS
我正在考虑安装 OpsCenter 来监控我们在 RackSpace VM 上运行的 24 节点 Cassandra 集群。过去我听说 OpsCenter 减慢了集群速度。我有点担心 OpsCente
假设我有一个复制因子(RF)= 2 的 2 节点集群。 我使用一致性 2 触发插入。当客户端等待响应时,Cassandra 开始写入这 2 个节点。中间一个节点失败,无法完成写入,而另一节点上的写入成
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足 Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以
我在 Cassandra 中有一个表,其中我用 1000 多个条目填充了一些行(每行有 10000 多列)。行中的条目更新非常频繁,基本上只是一个字段(它是一个整数)被更新为不同的值。列的所有其他值保
当Cassandra端有“掉落的突变”时,它是否向调用客户端返回相应的失败?或者即使在服务器端丢弃相应的突变并导致数据丢失,它总是成功响应调用事务的调用客户端? 在一个特定实例中,当我们的 TPS 约
我有一个 Multi-Tenancy 应用程序,其中 tenantId 将成为每个查询的一部分,因此我将其放入所有表的分区键中。 例子: CREATE TABLE users { tenantId t
根据 Datastax 文档,在 Cassandra 中先读后写是一种反模式。 每当我们在 CQLSH 中使用 UPDATE 或使用 Datastax 驱动程序来设置几列(带有 IF 和集合更新)时,
是否有命令或任何方式可以知道 Cassandra 的哪些节点上存储了哪些数据? 我对 Cassandra 很陌生,在谷歌上搜索这个问题并没有多少运气。 谢谢! 最佳答案 您可以使用 nodetool
我们有一个包含 1500 万条记录的表,而我们的表是一个 10 节点的 cassandra 集群。我们有一列有接近 20 个可重复值。是否建议在此列上建立二级索引? 最佳答案 假设在该列上完全均匀分布
Cassandra 发布了它的 technical limitations但没有提到允许的最大列数。是否有最大列数?我需要存储 400 多个字段。这在 Cassandra 中可能吗? 最佳答案 每行的
我想知道当表中有多个非 PK 列时会发生什么。我读过这个例子: http://johnsanda.blogspot.co.uk/2012/10/why-i-am-ready-to-move-to-cq
我有两个关于 Cassandra 查询结果的问题。 当我在 Cassandra 中对表进行“完全”选择(即 select * from table )时,是否保证结果将按分区标记的递增顺序返回? 例如
我无法为 Cassandra 设置 Hector。我已经浏览了 documentation和 Cassandra wiki .这些文档的问题在于,那里的很多信息都已经过时或过时(或者我缺乏知识)。无论
我正在使用 DataStax Enterprise 中 cassandra 中提供的压力测试。如果有人知道的话,我也想要一些关于它和 cassandra 的信息。 - 首先,压力测试使用哪些节点?我的
当我在 CQL 中创建表时,列的顺序是否必须精确 不是 在主键和 中不是 聚类列: CREATE TABLE user ( a ascii, b ascii, c ascii,
我有一张如下表: CREATE TABLE tab( categoryid text, id text, name text, author text, des
我正在尝试学习 Cassandra,但对术语感到困惑。 很多情况下它表示该行存储键/值对。 但是,当我定义一个表时,它更像是声明一个 SQL 表,即;您创建一个表并指定列名和数据类型。 谁能澄清一下?
如何对 cassandra 数据实现审计? 我正在寻找一个开源选项。 cassandra 是否有任何有助于审计的功能? 我可以使用触发器将记录记录到表中吗?我关注了 Triggers示例并且能够将记录
我遇到了一个问题“me.prettyprint.hector.api.exceptions.HUnavailableException:: 可能没有足够的副本来处理一致性级别。”当我有 RF=1 时,
我是一名优秀的程序员,十分优秀!