Apache火花在内存缓存中

Ato*_*tom 8 java caching apache-spark

Spark将工作数据集缓存到内存中,然后以内存速度执行计算.有没有办法控制工作集驻留在RAM中的时间?

我有大量的数据可以通过作业访问.最初将作业加载到RAM需要花费时间,当下一个作业到达时,它必须再次将所有数据加载到RAM,这非常耗时.有没有办法使用Spark将数据永久地(或指定的时间)缓存到RAM中?

Suj*_*yam 9

要显式地解冻,您可以使用 RDD.unpersist()

如果要跨多个作业共享缓存的RDD,可以尝试以下操作:

  1. 使用相同的上下文缓存RDD,并将上下文重用于其他作业.这样您只需缓存一次并多次使用它
  2. 存在用于执行上述功能的"火花作业服务器".由Ooyala开源的Checkout Spark Job Server.
  3. 使用像Tachyon这样的外部缓存解决方案

我一直在Spark中尝试缓存选项.你可以在这里阅读更多:http://sujee.net/understanding-spark-caching/