我有3个Cassandra节点集群,其中包含1个种子节点和1个spark主节点以及3个从节点,8 GB ram和2个内核。这是我的火花工作的输入
spark.cassandra.input.split.size_in_mb 67108864
当我使用此配置集运行时,我看到大约有768个分区创建了大约89.1 MB的数据,大约1706765条记录。我无法理解为什么创建这么多分区。我正在使用Cassandra spark连接器版本1.4,因此关于输入分割大小也会修复错误。
只有11个唯一的分区键。我的分区键有appname,它总是测试和随机数,总是从0到10,所以只有11个不同的唯一分区。
为什么这么多分区以及如何决定要创建多少分区
答案 0 :(得分:2)
Cassandra连接器不使用defaultParallelism。它检查C *(后2.1.5)中的系统表,以估计给定表中有多少MB数据。读取此数量并除以输入拆分大小以确定要进行的拆分数。
如果您使用C *< 2.1.5您需要通过ReadConf手动设置分区。