磁盘上的Spark Streaming shuffle数据大小不断增加

时间:2015-08-31 14:53:35

标签: apache-spark spark-streaming

我有一个基本的火花流媒体应用程序,它从kafka中读取日志并与批量RDD进行连接并将结果保存到cassandra

val users = sparkStmContext.cassandraTable[User](usersKeyspace, usersTable)

KafkaUtils.createStream[String, String, StringDecoder, StringDecoder](
    sparkStmContext, Map(("zookeeper.connect", zkConnectionString), ("group.id", groupId)), Map(TOPIC -> 1), StorageLevel.MEMORY_ONLY_SER)
    .transform(rdd => StreamTransformations.joinLogsWithUsers(rdd, users)) // simple join with users batch RDD and stream RDD
    .saveToCassandra("users", "user_logs")

运行时虽然我注意到“spark.local.dir”中的一些shuffle数据没有被删除,并且目录大小一直在增长,直到我的磁盘空间不足为止。 Spark应该负责删除这些数据(see last comment from TD)。

我设置了“spark.cleaner.ttl”,但这没有效果。

这是否发生是因为我在流之外创建用户RDD并使用延迟加载在每个流窗口重新加载它(因为用户表可以由另一个进程更新),因此它永远不会超出范围?

是否有更好的模式可用于此用例,因为我看到的任何docs采取了与我相同的方法?

0 个答案:

没有答案