我是Cassandra的初学者,我试图使用Apache Cassandra来存储我从一堆传感器接收到的大量数据。我需要使用自己的服务器来存储数据,而不是使用AWS或Azure等云选项。我找不到任何示例硬件设置,也找不到任何硬件建议及其价格。
我更像是一个软件工程师,我不太知道如何从头开始设置服务器。因为硬件可能会有点贵,我想确保我得到了我需要的确切的硬件。
我做了关于硬件的研究,其中大多数似乎建议每个节点以下规格:
- CPU(典型生产服务器为8核或更多核)
- 至少32GB ECC RAM
- 500GB~4TB SSD ->https://serverfault.com/questions/655730/cassandra-do-more-storage-size-needs-more-cpu-and-ram
建议是每个节点的所有硬件规格,而不是如何将这些节点设置在一起以形成集群。我能想到的集群硬件有两种选择:
- 1台服务器,高CPU,高内存,多个ssd ->
- 3台服务器,每个服务器的CPU和RAM都较低——>每台服务器运行1个节点
#1和#2的性能权衡是什么,哪个更推荐?我应该为每个选项获得什么类型的服务器/计算机?还有其他安排吗?
所以这可能属于dba.stackexchange.com,但我可以回答这个。
这取决于您的事务吞吐量是什么样的。我见过有人在Raspberry Pis上构建Cassandra集群,但我不建议在prod上这样做。
我可以说,你肯定希望每个节点都有自己的机器实例。如果有的话,这只是在硬件发生故障时维持正常运行时间所必需的。在每台机器上使用多个节点的另一个缺点是它们将竞争磁盘I/O。在高写吞吐量的情况下,磁盘IOPS成为瓶颈,如果所有3个节点都试图使用相同的物理磁盘,这将真正造成伤害。
如果您在8个CPU内核和32GB RAM (w/ssd)上构建3个节点,那应该很好。根据您的网络和数据模型,我希望您可以支持大约5k到10k ops/秒。同样,这取决于硬件规格以外的其他因素,因此可能会有所不同。