開發者學堂課程【大資料實時計算架構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();