持久化策略_缓存优化_3 | 学习笔记

开发者学堂课程【大数据实时计算框架Spark快速入门:持久化策略_缓存优化_3】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/100/detail/1654


持久化策略_缓存优化_3


package com.bjsxt.spark;

import org.apache.spark. SparkConf;

import org.apache.spark.api.java. JavaRDD;

import org.apache.spark.api.java.JavaSparkContext;

public class TeststorageLevel {

public static void main(String[] args) {

SparkConf conf = new SparkConf().setMaster("local").setAppName("TestStorageLevel" );

JavaSparkContext sc = new JavaSparkContext(conf);

//当RDD会被复用的时候通常我们就要使用持久化策略

// 1,持久化策略黑太认的是MEMORY_ONLY

//2,如果内存有些吃紧,可以选择MEMORY_ONLY_SER

//3,当我们的数据想要做一定的容错可以选择使用_2

//4,如果我们的中间结果RDD计算代价比较大,那我们可以选择MEMORY_AND_DISK

//MEMORY_ONLY说白了就是存不下就不存了

//MEMORY_AND_DISK如果内存存不下会存在本地磁盘空间

JavaRDD text = sc.textFile("NASA_access_log_Aug95");

text = text.cache();

//没有做持久化的时候

// 1569898

// cost: 3236

/ / 1569898

/ /cost: 702

使用Memory_Only持久化策略

// 1569898

//cost: 3233

// 1569898  

// cost: 724

// 1569898

// cost: 49

long starttime = System.currentTimeMillis();

long count = text.count();

System.out.println(count) ;

long endtime = System.currentTimeMillis();

System.out.print1n( "cost: "+(endtime-starttime));

long starttime2 = System.currentTimeMillis();

long count2 = text.count();

System.out.println(count2);

long endtime2 = System.currentTimeMillis();

System.out.print1n("cost: "+(endtime2-starttime2)) ;

sc.close();

上一篇:MapReduce 编程规范| 学习笔记


下一篇:MapJoin 案例缓存文件处理| 学习笔记