0
点赞
收藏
分享

微信扫一扫

Spark第一天和第二天总结

zmhc 2022-01-14 阅读 103

一:分布式基础架构

 

 

 

二:Spark大数据分析计算引擎

三:Hadoop与Spark

 3.1补充

3.2:补充

3.3:补充

四:Spark的运行环境

集群模式对比

逻辑功能提交

bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode client \
./examples/jars/spark-examples_2.12-3.0.0.jar \
10

 4.1:补充

 4.2:reduce() VS fold()

 

 

val list: List[Int] = List(1, 2, 3, 4)
    val str: String = list.foldLeft("")(_ + _)
    println(str)

 案例:将两个map合并

def main(args: Array[String]): Unit = {
    val map1: mutable.Map[String, Int] = mutable.Map(("a", 1), ("b", 2), ("c", 3))
    val map2: mutable.Map[String, Int] = mutable.Map(("a", 4), ("d", 5), ("c", 6))

    /*map2.foreach{
      case (k,v) => {
        val oldVal: Int = map1.getOrElse(k, 0)
        map1.update(k,v+oldVal)
      }
    }*/
    /*map2.foldLeft(map1)(
      //map1
      //map表示map1   kv表示map2中的一个元素
      (map , kv) => {
        val oldVal: Int = map.getOrElse(kv._1, 0)
        map.update(kv._1,kv._2+oldVal)
        map
      }
    )*/
    println(
    map2.foldLeft(map1)((map , kv )=>{
      val oldVal: Int = map.getOrElse(kv._1, 0)
      map.updated(kv._1,kv._2 + oldVal)
    })
    )

  }

 类比  yarn VS  spark

 补充 :什么时候用伴生类和伴生对象

补充:Thread.sleep 和 wait()的区别

public static void main(String[] args) throws Exception {

        Thread t1 = new Thread();
        Thread t2 = new Thread();

        t1.start();
        t2.start();

        // sleep方法和wait方法的本质区别:字体不一样
        t1.sleep(1000); // sleep方法是静态的,t1线程不会休眠, main线程休眠
        t2.wait();        // wait方法是成员的,t2线程在等待

    }

五:Spark的核心组件

 5.1:Driver(驱动作业开始执行)

5.2:Executor(真正的进行计算)

5.3:Master & Worker(将多个机器的资源融合在一起)

5.4:ApplicationMaster

5.5:核心概念

Executor与Core(核)类比

5.6:并行度(多线程的场景下)

5.7:有向无环图

 5.8:数据结构

六:RDD(spark核心的数据模型)

 6.1:RDD的功能是如何组合的?

6.2:RDD核心配置属性

 

 

举报

相关推荐

0 条评论