[Spark的新手]
我们有一个Spark Streaming应用程序,可以从Kinesis读取并写入Redshift。
配置:
接收人数= 5
批处理间隔= 10分钟
spark.streaming.receiver.maxRate = 2000(每秒记录)
根据此配置,可以使用以下公式计算单批读取的最大记录:
Max records per batch = batch_interval * 60 (convert mins to seconds) * 5 (number of receivers) * 2000 (max records per second per receiver)
10 * 60 * 5 * 2000 = 6,000,000
但是实际记录数大于最大记录数。
第一批-6,005,886条记录
第二批-6,001,623条记录
第三批-6,010,148条记录
请注意,接收器甚至没有以最大速率读取,每个接收器读取的记录接近每秒1900。
为什么会这样?