Spark的数据存储(十九)
Spark本身是基于内存计算的架构,数据的存储也主要分为内存和磁盘两个路径。Spark本身则根据存储位置、是否可序列化和副本数目这几个要素将数据存储分为多种存储级别。此外还可选择使用Tachyon来管理内存数据。
为了适应迭代计算,Spark将经常被重要的数据缓存到内存中以提升数据读取速度,当内存容量有限时,则将数据存入磁盘中或根据最近最少使用页面置换算法将内存中使用频率较低的文件空间收回,从而让新的数据进来。
Tachyon的出现主要是为了解决3个问题而设计。一是多应用数据共享问题,二是JVM缓存数据丢失问题,三是GC开销问题。Tachyon将过去的Spark中的计算和内存管理两个部分分离,专门使用Tachyon在JVM堆外管理Spark计算所需要的数据,极大地减轻了Spark管理上的负担和JVM内存负担。这种设计思路能很好地解决以上3个问题并提升了程序运行的稳定性和速度。
作者:大数据和人工智能躺过的坑
出处:http://www.cnblogs.com/zlslch/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
如果您认为这篇文章还不错或者有所收获,您可以通过右边的“打赏”功能 打赏我一杯咖啡【物质支持】,也可以点击右下角的【好文要顶】按钮【精神支持】,因为这两种支持都是我继续写作,分享的最大动力!