1、Spark生态系统概述 主要内容 Spark产生背景 1 Spark介绍 2 Spark生态系统 3 主要内容 Spark产生背景 1 Spark介绍 2 Spark生态系统 3 Spark产生背景:MR局限性 ! MapReduce框架局限性 “ 仅支持Map和Reduce两种操作 “ 迭代计算效率低(如机器学习、图计算等) “ 不适合交互式处理(数据挖掘) “ 不适合流式处理(点击日志分析) ! MapReduce编程不够灵活 “ 尝试scala函数式编程语言 Spark产生背景:计算框架多样性 ! 现有的各种计算框架各自为战 “ 批处理:MapReduce、Hive、Pig “ 流式计算
2、:Storm “ 交互式计算:Impala ! 能否有一种灵活的框架可同时进行批处理、流 式计算、交互式计算等? 主要内容 Spark生态系统特点 1 Spark介绍 2 Spark生态系统 3 Spark设计目标 ! 在一个统一的框架下,进行批处理、流式计算 、交互式计算 Spark特点 ! 高效 “ 通用的计算引擎 “ 内存存储数据 “ 比MapReduce块10100倍 ! 易用 “ 提供了丰富的API “ 支持Java,Scala,Python三种语言 “ 代码量比MapReduce少25倍 Spark核心思想 iter. 1 iter. 2 !“!“!“ !“#$%& ()*& +,
3、-.& ()*& /+0%,& ()*& +,-.& ()*& /+0%,& (01%+02$%,.& 3,34+5& !“#$%& query 1 query 2 query 3 !“!“!“ 4“,6%03,& #+47,110“8& 10-100 faster than network and disk Spark核心思想 iter. 1 iter. 2 !“!“!“ !“#$%& +,1$9%& !“!“!“ ()*& +,-.& Slow due to replication, serialization, and disk IO 一个完整的实例程序 import org.apach
4、e.spark._ import SparkContext._ object WordCount def main(args: ArrayString) if (args.length != 3 ) println(“usage is org.test.WordCount “) return val sc = new SparkContext(args(0), “WordCount“, System.getenv(“SPARK_HOME“), Seq(System.getenv(“SPARK_TEST_JAR“) val textFile = sc.textFile(args(1) val r
5、esult = textFile.flatMap(line = line.split(“s+“) .map(word = (word, 1).reduceByKey(_ + _) result.saveAsTextFile(args(2) Master地址 依赖的jar包 Spark安装 目录 作业名称 输入数据所在目录,比如: hdfs:/host:port/input/data 数据输出目录,比如: hdfs:/host:port/output/data 主要内容 Spark产生背景 1 Spark介绍 2 Spark生态系统 3 Spark生态系统 Spark Streaming Sha
6、rk SQL Graphx Graph- parallel MLBase Machine learning Spark MPI MapReduce Mesos YARN HDFS Tachyon Spark SQL ! Hive On Spark ! 基于Spark的分布式SQL查询引擎 ! 充分利用spark优势,性能(与Hive比)可提高 10x100x ! 与Hive兼容 “ 兼容HQL语法 “ 兼容Hive中的数据 “ Hive的metastore信息 基于Spark的图计算库和数据挖掘库 ! Graphx:基于Spark的图计算框架 “ 提供了图存储结构以及常见的图算法,比如 pag
7、erank、图合并、图分解等 ! MLBase:基于Spark的机器学习库 “ 与Mahout类似,但是基于Spark实现的,而不是MR “ 实现了一些聚类、分类、推荐算法等,但尚不完善 Spark Streaming:流式计算框架 ! 基于Spark的流式计算框架 ! 充分利用Spark计算速度快的优点 “ 数据流被若干连续的Spark短作业处理 ! 吞吐率和效率上,优于Storm Spark:全能处理系统 !“#$%& ()*+,*- ./0&$ 1+%&*-,23 40+*/5 1+%&*-,23 46/+7 8 4$/+7 8 46/+7 40+*/5,23总结 ! Spark产生背景 ! Spark介绍 ! Spark生态系统