火花创造了太多的分区

时间:2015-09-26 16:07:50

标签: cassandra apache-spark

我有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个不同的唯一分区。

为什么这么多分区以及如何决定要创建多少分区

1 个答案:

答案 0 :(得分:2)

Cassandra连接器不使用defaultParallelism。它检查C *(后2.1.5)中的系统表,以估计给定表中有多少MB数据。读取此数量并除以输入拆分大小以确定要进行的拆分数。

https://github.com/datastax/spark-cassandra-connector/blob/master/doc/FAQ.md#what-does-inputsplitsize_in_mb-use-to-determine-size

如果您使用C *< 2.1.5您需要通过ReadConf手动设置分区。