天天看點

持久化政策_緩存優化_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();

繼續閱讀