• 1. 讲师:孙帅(suns)
  • 2. 课程大纲 Spark基础 RDD Spark on Yarn Spark Streaming Spark SQL
  • 3. Spark基础one stack to rule them all
  • 4. Spark基础BDAS(the Berkeley Data Analytics Stack)
  • 5. Spark基础Spark Ecosystem
  • 6. Spark基础MapReduce Map Map(k1,v1)->List(k2,v2)
  • 7. Spark基础MapReduce Reduce Reduce(k2,List(v2))->List(k3,v3)
  • 8. Spark基础Shuffle
  • 9. Spark基础Spark为什么比Hadoop快 大致的业务需求: 1.gn口数据,根据 手机号码、msisdn、lac、ci计算总流量 2.根据lac、ci关联小区表,得出结果为 手机号码、lac、ci、省、市、小区、总流量   hive执行 总时间 = 42.618 seconds  + 743.56 seconds  = 786.178 seconds  spark执行时间: 总时间 = 16.208245328 s  两者对比  786.178  :  16.208245328  ≈ 48.5 :  1 hadoop集群环境:12台虚拟机from3台实体机 spark集群环境:8台虚拟机from2台实体机
  • 10. Spark基础Basic Concepts 名称解释RDDResillient distributed dataset 弹性分布数据集ApplicationSpark的用户程序Driver Program运行main函数并且新建SparkContext的程序Cluster ManagerSpark集群资源调度服务(standalone,mesos,yarn)Worker NodeSpark集群中的运行应用代码的节点Executorworker node的一个进程,负责运行任务,并且负责将数据存在内存或磁盘上。每个应用都用独立的executorTask被送到某个executor上的工作单元job包含多个RDD及作用于RDD上的各种operationStage一个job分为多个阶段Narrow Dependency窄依赖,子RDD依赖父RDD中固定的data partitionWide Dependency宽依赖,子RDD对父RDD的所有data partition都有依赖Caching Management缓存管理,对RDD的中间计算结果进行缓存管理以加快整体的处理速度
  • 11. Spark基础spark cluster overview
  • 12. Spark基础spark cluster overview
  • 13. Spark基础Spark Runtime
  • 14. Spark基础Spark Runtime
  • 15. Spark基础调度(scheduler)
  • 16. Spark基础Spark的骨架—Akka Actor模型
  • 17. Spark基础Spark的骨架—Akka Actor模型 1.有着非常好的容错性; 2.对内存对象实现事务; 3.能非常方便实现远程调用以及线程间通讯; 4.能定制路由策略; 5.良好的第三方框架的集成
  • 18. RDDResilient Distributed Dataset(RDD)弹性分布数据集 什么是RDD: 1.RDD是在集群节点上的不可变的、已分区的集合对象 2.通过并行转换的方式来创建如(map,filter,join 等等) 3.失败自动重建 4.可以控制存储级别(内存、磁盘等)来进行重用 5.必须是可序列化的 RDD特点(内部): 1.分区列表(数据块列表) 2.计算每个分片的函数(根据父RDD计算出此RDD) 3.对父RDD的依赖列表 4.RDD默认是存储于内存,但当内存不足时,会spill到disk(设置StorageLevel来控制) 5.每个数据分区的地址(如HDFS),key-value数据类型分区器,分区策略和分区数
  • 19. RDD
  • 20. RDDRDD Transformations & Actions
  • 21. RDDLineage(血统) RDD数据集通过所谓的血统关系(Lineage)记住了它是如何从其他RDD中演变过来的。Narrow Dependencies是指父RDD的每个分区最多被一个子RDD的一个分区所用;Wide Dependencies是指父RDD的每个分区对应一个子RDD的多个分区
  • 22. RDDWord Count Stage and RDD val wc =textFile(..).flatMap(line=>line.split(“,”)).map(word=>(word,1)) .reduceByKey(_+_)
  • 23. RDDWord Count Stage and RDD
  • 24. RDDWord Count Stage and RDD
  • 25. Spark on YarnSpark支持哪些模式 Local模式(学习、测试之用) Standalone模式 Mesos Yarn
  • 26. Spark on Yarn
  • 27. Spark on YarnYarn: ResourceManager, NodeManager, ApplicationMaster, Container
  • 28. Spark on YarnYarn + Spark
  • 29. Spark on YarnSpark on Yarn client mode
  • 30. Spark on YarnSpark on Yarn cluster mode
  • 31. Spark on Yarn任务提交 export HADOOP_HOME=/opt/cloudera/parcels/CDH/lib/hadoop export HADOOP_CONF_DIR=/etc/hadoop/conf/ ./bin/spark-submit --class path.to.your.Class --master yarn-cluster [options] [app options] $ ./bin/spark-submit --class org.apache.spark.examples.SparkPi \ --master yarn-cluster \ --num-executors 3 \ --driver-memory 4g \ --executor-memory 2g \ --executor-cores 1 \ lib/spark-examples*.jar \ 10
  • 32. Spark Streaming流式计算
  • 33. Spark Streaming流式系统的特点: 1.低延迟。都说了是实时计算系统了,延迟是一定要低的。 2.高性能 3.分布式 4.可扩展。伴随着业务的发展,我们的数据量、计算量可能会越来越大,所以系统是可扩展的。 5.容错。这是分布式系统中通用问题。一个节点挂了不能影响应用。
  • 34. Spark Streaming
  • 35. Spark StreamingDStream
  • 36. Spark StreamingWindow操作(时间窗口)
  • 37. Hive的系统架构•用户接口,包括 CLI,JDBC/ODBC,WebUI •元数据存储,通常是存储在关系数据库如 mysql, derby 中 •解释器、编译器、优化器、执行器 •Hadoop:用 HDFS 进行存储,利用 MapReduce 进行计算Spark SQL
  • 38. Spark SQL的系统架构Spark SQL