feat:线下课:持久化和缓存、Checkpoint、打包程序提交到yarm
This commit is contained in:
@@ -0,0 +1,44 @@
|
|||||||
|
package org.example
|
||||||
|
|
||||||
|
/*
|
||||||
|
* /home/hadoop/app/spark-2.4.3/bin/spark-submit \
|
||||||
|
--class org.example.core.App2 \
|
||||||
|
--master yarn \
|
||||||
|
--deploy-mode client \
|
||||||
|
--executor-memory 512M \
|
||||||
|
--num-executors 1 \
|
||||||
|
--executor-cores 2 \
|
||||||
|
spark_project-1.0-SNAPSHOT.jar \
|
||||||
|
/word.txt \
|
||||||
|
/output/app2_result
|
||||||
|
* */
|
||||||
|
import org.apache.spark.{SparkConf, SparkContext}
|
||||||
|
|
||||||
|
object App2 {
|
||||||
|
def main(args: Array[String]): Unit = {
|
||||||
|
|
||||||
|
val conf = new SparkConf()
|
||||||
|
// 提交到集群的话,不需要设置 local
|
||||||
|
// .setMaster("local")
|
||||||
|
.setAppName("my spark app")
|
||||||
|
|
||||||
|
val sc = new SparkContext(conf)
|
||||||
|
|
||||||
|
// 先当成集合来看
|
||||||
|
val myTextFile = sc.textFile(args(0))
|
||||||
|
|
||||||
|
println("myTextFile.count() = " + myTextFile.count())
|
||||||
|
|
||||||
|
val result =
|
||||||
|
myTextFile
|
||||||
|
.flatMap(line => line.split(" "))
|
||||||
|
.map(word => (word, 1))
|
||||||
|
.reduceByKey((a, b) => a + b)
|
||||||
|
|
||||||
|
result.collect().foreach(println)
|
||||||
|
|
||||||
|
result.saveAsTextFile(args(1))
|
||||||
|
|
||||||
|
sc.stop()
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
package org.example.core
|
||||||
|
|
||||||
|
import org.apache.spark.storage.StorageLevel
|
||||||
|
import org.apache.spark.{SparkConf, SparkContext}
|
||||||
|
|
||||||
|
object CacheTest {
|
||||||
|
def main(args: Array[String]): Unit = {
|
||||||
|
|
||||||
|
val sparkConf = new SparkConf()
|
||||||
|
.setMaster("local[2]")
|
||||||
|
.setAppName("scala spark app")
|
||||||
|
val sc = new SparkContext(sparkConf)
|
||||||
|
|
||||||
|
|
||||||
|
val rdd = sc.parallelize(1 to 10000000, 4)
|
||||||
|
rdd.cache()
|
||||||
|
rdd.persist(StorageLevel.DISK_ONLY)
|
||||||
|
rdd.collect()
|
||||||
|
|
||||||
|
val start1 = System.currentTimeMillis()
|
||||||
|
val res1 = rdd.count()
|
||||||
|
val end1 = System.currentTimeMillis()
|
||||||
|
println(s"${end1 - start1}")
|
||||||
|
|
||||||
|
val start2 = System.currentTimeMillis()
|
||||||
|
val res2 = rdd.count()
|
||||||
|
val end2 = System.currentTimeMillis()
|
||||||
|
println(s"${end2 - start2}")
|
||||||
|
|
||||||
|
val start3 = System.currentTimeMillis()
|
||||||
|
val res3 = rdd.count()
|
||||||
|
val end3 = System.currentTimeMillis()
|
||||||
|
println(s"${end3 - start3}")
|
||||||
|
|
||||||
|
// Thread.sleep(1000000)
|
||||||
|
|
||||||
|
sc.stop()
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
package org.example.core
|
||||||
|
|
||||||
|
import org.apache.spark.{SparkConf, SparkContext}
|
||||||
|
|
||||||
|
object CheckpointDemo {
|
||||||
|
def main(args: Array[String]): Unit = {
|
||||||
|
|
||||||
|
val sparkConf = new SparkConf()
|
||||||
|
.setMaster("local")
|
||||||
|
.setAppName("my spark app")
|
||||||
|
|
||||||
|
val sc = new SparkContext(sparkConf)
|
||||||
|
|
||||||
|
sc.setCheckpointDir("src/main/resources/checkpoint")
|
||||||
|
|
||||||
|
// 先当成集合来看
|
||||||
|
val myTextFile = sc.textFile("src/main/resources/word.txt")
|
||||||
|
|
||||||
|
// 设置检查点
|
||||||
|
myTextFile.checkpoint()
|
||||||
|
|
||||||
|
println("myTextFile.count() = " + myTextFile.count())
|
||||||
|
|
||||||
|
println("myTextFile.isCheckpointed() = " + myTextFile.isCheckpointed)
|
||||||
|
|
||||||
|
println("myTextFile.getCheckpointFile() = " + myTextFile.getCheckpointFile)
|
||||||
|
|
||||||
|
sc.stop()
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
package org.example.core
|
||||||
|
|
||||||
|
import org.apache.spark.storage.StorageLevel
|
||||||
|
import org.apache.spark.{SparkConf, SparkContext}
|
||||||
|
|
||||||
|
object DemoCache {
|
||||||
|
def main(args: Array[String]): Unit = {
|
||||||
|
|
||||||
|
val sparkConf = new SparkConf()
|
||||||
|
.setMaster("local[2]")
|
||||||
|
.setAppName("scala spark app")
|
||||||
|
val sc = new SparkContext(sparkConf)
|
||||||
|
|
||||||
|
|
||||||
|
val rdd = sc.parallelize(1 to 10000000, 4)
|
||||||
|
.map {
|
||||||
|
x =>
|
||||||
|
var sum = 0
|
||||||
|
for (i <- 1 to 1000) {
|
||||||
|
sum += x
|
||||||
|
}
|
||||||
|
}
|
||||||
|
val start1 = System.currentTimeMillis()
|
||||||
|
val res = rdd.count()
|
||||||
|
val end1 = System.currentTimeMillis()
|
||||||
|
println(s"${end1 - start1}")
|
||||||
|
println("===========")
|
||||||
|
rdd.cache() // 缓存
|
||||||
|
rdd.persist(StorageLevel.MEMORY_ONLY) // 缓存
|
||||||
|
rdd.count()
|
||||||
|
|
||||||
|
val start2 = System.currentTimeMillis()
|
||||||
|
val res2 = rdd.count()
|
||||||
|
val end2 = System.currentTimeMillis()
|
||||||
|
println(s"${end2 - start2}")
|
||||||
|
|
||||||
|
// rdd.cache()
|
||||||
|
// println(rdd.sum())
|
||||||
|
// println(rdd.sum())
|
||||||
|
// println(rdd.sum())
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Thread.sleep(1000000)
|
||||||
|
|
||||||
|
|
||||||
|
sc.stop()
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
package org.example.core
|
||||||
|
|
||||||
|
import org.apache.spark.{SparkConf, SparkContext}
|
||||||
|
|
||||||
|
object DemoCacheNoCache {
|
||||||
|
def main(args: Array[String]): Unit = {
|
||||||
|
|
||||||
|
val sparkConf = new SparkConf()
|
||||||
|
.setMaster("local[2]")
|
||||||
|
.setAppName("scala spark app")
|
||||||
|
val sc = new SparkContext(sparkConf)
|
||||||
|
|
||||||
|
|
||||||
|
val rdd = sc.parallelize(1 to 10000000, 4).map {
|
||||||
|
x =>
|
||||||
|
var sum = 0
|
||||||
|
for (i <- 1 to 1000) {
|
||||||
|
sum += x
|
||||||
|
}
|
||||||
|
}
|
||||||
|
val start1 = System.currentTimeMillis()
|
||||||
|
val res = rdd.count()
|
||||||
|
val end1 = System.currentTimeMillis()
|
||||||
|
println(s"${end1 - start1}")
|
||||||
|
println("===========")
|
||||||
|
|
||||||
|
val start2 = System.currentTimeMillis()
|
||||||
|
val res2 = rdd.count()
|
||||||
|
val end2 = System.currentTimeMillis()
|
||||||
|
println(s"${end2 - start2}")
|
||||||
|
|
||||||
|
// rdd.cache()
|
||||||
|
// println(rdd.sum())
|
||||||
|
// println(rdd.sum())
|
||||||
|
// println(rdd.sum())
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Thread.sleep(1000000)
|
||||||
|
|
||||||
|
|
||||||
|
sc.stop()
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package org.example.core
|
||||||
|
|
||||||
|
import org.apache.spark.{SparkConf, SparkContext}
|
||||||
|
|
||||||
|
object ReadFromCheckpoint {
|
||||||
|
def main(args: Array[String]): Unit = {
|
||||||
|
|
||||||
|
val sparkConf = new SparkConf()
|
||||||
|
.setMaster("local")
|
||||||
|
.setAppName("my spark app")
|
||||||
|
|
||||||
|
val sc = new SparkContext(sparkConf)
|
||||||
|
|
||||||
|
sc.setCheckpointDir("src/main/resources/checkpoint")
|
||||||
|
|
||||||
|
val myTextFile = sc.textFile("src/main/resources/word.txt")
|
||||||
|
|
||||||
|
myTextFile.checkpoint()
|
||||||
|
|
||||||
|
println("myTextFile.count() = " + myTextFile.count())
|
||||||
|
|
||||||
|
println("myTextFile.isCheckpointed() = " + myTextFile.isCheckpointed)
|
||||||
|
|
||||||
|
println("myTextFile.getCheckpointFile() = " + myTextFile.getCheckpointFile)
|
||||||
|
|
||||||
|
sc.stop()
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user