当输入数据量巨大时,执行者如何处理数据?

时间:2018-01-28 18:55:33

标签: apache-spark

我们假设配置14个执行器,每个执行器有10 GB内存,输入数据大小为1000GB。

Q1 - 执行者如何处理庞大的数据,因为数据量更大,分区逻辑如何在这里工作?

Q2 - 缓存如何帮助实现更好的性能以及可以使用哪种缓存策略? (仅限Mem,Mem和磁盘等)

1 个答案:

答案 0 :(得分:1)

1)您的1000GB输入将被分成块/块/分区,每个块通常约为128MB。

2)缓存通常只应在数据计算量(或带宽)昂贵,集群有足够内存(包括开销)时才进行。您只是无法缓存整个1000GB输入,只有140GB的总内存,但您可以缓存其他数据集以进行连接或汇总1000GB输入。

有关#1的更多背景信息,请参阅这些Q& As:

How are stages split into tasks in Spark?

How to split the input file in Apache Spark

How does the Apache Spark scheduler split files into tasks?