【发布时间】:2016-02-23 19:23:05
【问题描述】:
将 RDD 内容批处理为大约 100MB 的文本文件然后上传到 S3 的最佳方法是什么? dstream.foreachRDD 似乎只允许处理每个 RDD,并且不允许我累积 RDD 直到一定大小。
也许我错过了什么。 Apache spark-streaming 概念对我来说仍然很新和不熟悉。我想制作一个流式应用程序,从 kafka 获取数据,将消息批处理成大文件,然后在线上传。
相关问题:根据文档,dstream.foreachRDD 在驱动程序应用程序上运行 func。这是否意味着我只能让 Spark 集群中的一个节点执行所有上传?这是否意味着我将受到网络 i/o 的严重限制?
foreachRDD(func)
最通用的输出运算符,它将函数 func 应用于从流生成的每个 RDD。该函数应该将每个 RDD 中的数据推送到外部系统,例如将 RDD 保存到文件中,或者通过网络将其写入数据库。请注意,函数 func 在运行流式应用程序的驱动程序进程中执行,并且通常会在其中包含强制计算流式 RDD 的 RDD 操作。
来源:http://spark.apache.org/docs/latest/streaming-programming-guide.html
【问题讨论】:
标签: apache-spark spark-streaming