【发布时间】:2021-11-18 01:17:49
【问题描述】:
如您所知,在 Cassandra 中,当节点过载时,可能会严重影响您的生产,具体取决于所需的一致性,因为节点可能会变得无响应,整个守护程序也可能崩溃,提示可能会填满您的数据装载点,并且以此类推。
所以这里的关键字是back-pressure。
要对back-pressure和Spark on Cassandra做适当的处理,特别有以下属性:
--conf "spark.cassandra.output.throughputMBPerSec=2"
--total-executor-cores 24
(也有类似的back-pressure 选项与Datastax driver 或cqlsh。您基本上限制了每个内核的吞吐量,以应用一些back-pressure)
假设,我在我的 Cassandra 集群上找到了我的全局写入吞吐量,并且我为我的 application1 设置了适当的设置,它工作正常。
但是,挑战仍然在于 Cassandra 集群上有许多开发人员。所以在给定时间,我可能会同时运行 Spark application1、application2、application3,...。
问题:我有哪些选择可以确保在给定时间的写入吞吐量(无论有多少应用程序同时运行)在全球范围内不会给 Cassandra 带来太大压力,从而伤害我的生产工作量?
谢谢
【问题讨论】:
标签: cassandra datastax datastax-enterprise datastax-java-driver spark-cassandra-connector