我最近在进行火花工作,遇到了一些我仍然无法解决的查询。
假设我有一个100GB的数据集,而我的群集内存大小为16 GB。
现在,我知道在简单读取文件并将其保存在HDFS中的情况下,Spark会对每个分区执行此操作。对100GB数据执行排序或聚合转换时会发生什么?由于排序时需要全部数据,它将如何处理100GB的内存?
我已经浏览了下面的链接,但这仅告诉我们在持久存在的情况下spark会执行什么操作,我正在寻找的是Spark聚合或对大于ram大小的数据集进行排序。
任何帮助表示赞赏。
我一直在阅读有关 DataFlow 在读取流数据时如何确认消息的内容。基于这里和这里的答案的答案,似乎 DataFlow 按捆绑“确认”消息,只要完成捆绑,就会“确认”其中的消息。
混乱n是当GroupByKey
管道中涉及到a时会发生什么。捆绑包中的数据将持久保存到多区域存储桶中,并且消息将得到确认。然后想象整个地区都崩溃了。中间数据仍然会在桶中(因为我们是多区域的)。
话虽如此,
请指教,
google-cloud-platform google-cloud-pubsub google-cloud-dataflow