apache-spark - Spark 流数据如何存储

标签 apache-spark storage distributed-computing spark-streaming

在 Spark Streaming 中,流数据将由运行在工作线程上的接收器接收。数据会定期推送到数据 block 中,接收方会将收到的BlockInfo发送给驱动程序。我想知道spark Streaming会将 block 分发到集群中吗?(也就是说,它会使用分布式存储策略)。如果不将数据分布在整个集群中,如何保证工作负载平衡?(想象一下,我们有一个由 10 个节点组成的集群,但只有几个接收器)

最佳答案

据我所知,数据是由运行接收器的工作节点接收的。它们不分布在其他节点上。

如果您需要在进一步处理之前对输入流进行重新分区(跨集群平衡),您可以使用

inputStream.repartition(<number of partitions>)

您可以在 Spark 文档中阅读有关并行级别的更多信息
https://spark.apache.org/docs/latest/streaming-programming-guide.html#performance-tuning

关于apache-spark - Spark 流数据如何存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30660955/

相关文章:

amazon-web-services - 将 PySpark 连接到 AWS Redshift 时出错

file - SD卡DRM的实际后果是什么?

没有线程的并发

web - 当使用最终一致的数据存储时,用户是否应该被定向到特定的数据节点?

hadoop - 如何使用 hive/spark-sql 生成大数据集?

apache-spark - 将 Dataproc 日志获取到 Stackdriver Logging

linux - ZIL 在单个 SSD 上工作的风险

.net - .net bool[] 每个项目使用一位还是一个字节?

python - 通过 Python 使用 Spark 准备我的大数据

scala - 通过Spark Dataframe中数组结构中的最后一项删除重复的数组结构