我们假设配置14个执行器,每个执行器有10 GB内存,输入数据大小为1000GB。
Q1 - 执行者如何处理庞大的数据,因为数据量更大,分区逻辑如何在这里工作?
Q2 - 缓存如何帮助实现更好的性能以及可以使用哪种缓存策略? (仅限Mem,Mem和磁盘等)
答案 0 :(得分:1)
1)您的1000GB输入将被分成块/块/分区,每个块通常约为128MB。
2)缓存通常只应在数据计算量(或带宽)昂贵,集群有足够内存(包括开销)时才进行。您只是无法缓存整个1000GB输入,只有140GB的总内存,但您可以缓存其他数据集以进行连接或汇总1000GB输入。
有关#1的更多背景信息,请参阅这些Q& As:
How are stages split into tasks in Spark?