我正在尝试,在不影响Spark中Job的整体处理时间的情况下,可以缓存的最大原始数据是多少。
Spark群集-2台计算机,12核,96GB Ram。我创建了12个工作线程,每个工作线程都有1个Core和8GB Ram。
我已经缓存了约2.4GB的实木复合地板,这在RAM上造成了约5.4GB的内存占用。完成简单任务大约需要8秒钟(计数-> GroupBY->收集)。
我再次缓存了6个类似的文件,每个文件区约2.4GB,创建的总内存约为30GB。再次对已加载的5.4GB缓存数据帧执行相同的任务(计数-> GroupBY->收集),耗时约12秒。
数据是每个文件中约300列的(date,timestamp,string,double)字段的混合。
已尝试-
案例1-执行者总数-4,每个执行者核心-3个核心,每个执行者内存24GB
第2种情况-执行器总数-6个,每个执行器核心数-2个核心,每个执行器内存16GB
第3种情况-执行器总数-12个,每个执行器核心数-1个核心,每个执行器内存8GB
案例3 给我最好的结果。
这是正确的火花行为吗?
Spark v2.0.2