1、简析spark -高效的分布式计算架构Life is short,you need spark!uSpark简介与体系架构uSpark的安装与配置uSpark的开发与应用Life is short,you need spark!uSpark简介与体系架构uSpark的安装与配置uSpark的开发与应用Life is short,you need spark!Spark是一个高速,通用大数据计算处理引擎。的官方定义官方网址http:/spark.apache.org/Spark的发展历史2009诞生于伯克利大学2010正式开源2013成为Apache基金项目2016发布2.0版本Spark发展中
2、的学术贡献“Discretized Streams:Fault-Tolerant Streaming Computation at Scale”.Matei Zaharia,Tathagata Das,Haoyuan Li,Timothy Hunter,Scott Shenker,Ion Stoica.SOSP 2013.November 2013.“Shark:SQL and Rich Analytics at Scale”.Reynold Xin,Joshua Rosen,Matei Zaharia,Michael J.Franklin,Scott Shenker,Ion Stoica.S
3、IGMOD 2013.June 2013.“Discretized Streams:An Efficient and Fault-Tolerant Model for Stream Processing on Large Clusters”.Matei Zaharia,Tathagata Das,Haoyuan Li,Scott Shenker,Ion Stoica.HotCloud 2012.June 2012.“Shark:Fast Data Analysis Using Coarse-grained Distributed Memory(demo)”.Cliff Engle,Antoni
4、o Lupher,Reynold Xin,Matei Zaharia,Haoyuan Li,Scott Shenker,Ion Stoica.SIGMOD 2012.May 2012.Best Demo Award.“Resilient Distributed Datasets:A Fault-Tolerant Abstraction for In-Memory Cluster Computing”.Matei Zaharia,Mosharaf Chowdhury,Tathagata Das,Ankur Dave,Justin Ma,Murphy McCauley,Michael J.Fran
5、klin,Scott Shenker,Ion Stoica.NSDI 2012.April 2012.Best Paper Award and Honorable Mention for Community Award.“Spark:Cluster Computing with Working Sets”.Matei Zaharia,Mosharaf Chowdhury,Michael J.Franklin,Scott Shenker,Ion Stoica.HotCloud 2010.June 2010.Spark发展中的学术贡献 Spark主要奠基者现在Spark是在其博士论文的基础上发展而
6、来的“An Architecture for Fast and General Data Processing on Large Clusters”大型集群上的快速和通用数据处理架构Spark的版本发展在开源社区的贡献下Spark版本更新速度很快,平均1-2个月就推出一个新版本Spark的体系架构被称为Spark core,是其最核心的部分,包含了Spark最基本、最核心的功能和基本分布式算子。Spark core 的基本功能有任务调度、内存管理、故障恢复以及和存储系统的交互。Spark的体系架构数据全集被分割为多个数据子集Sparkcore RDD(resilient distributed
7、 dataset)是Spark的核心概念,指的是一个只读的,可分区的分布式数据集(分布式弹性数据集),这个数据集的全部或部分可以缓存在内存中,在多次计算间重用。Spark的核心思路就是将数据集缓存在内存中加快读取速度,同时用RDD以较小的性能代价保证数据的鲁棒性RDDRDD都是可序列化的,在内存不足时可自动降级为磁盘存储计算的中间结果会被保存,出错后可以方便地重新调度Spark的体系架构Spark SQL用于分布式结构化数据的SQL查询与分析,在编写程序中,可以直接使用SQL语句Spark的体系架构Spark Streaming是用于处理流数据的分布式流处理框架,它将数据流以时间片为单位进行分
8、割形成RDD,能够以较小的时间间隔对流数据进行处理,从严格意义上说是一个准实时处理系统。Spark的体系架构Mllib是一个分布式机器学习库,在Spark平台上对一些常用的机器学习算法进行了分布式实现,现在都包括:分类、回归、聚类、决策树等等。Spark的体系架构GraphX是一个分布式图处理框架,在Spark上实现了大规模图计算的功能,提供了对图计算和图挖掘的各种接口。使用场景使用场景时间跨度时间跨度同类框架同类框架使用使用Spark复杂的批量数据处理小时级MapReduce(Hive)Spark基于历史数据的交互式查询分钟级,秒级ImpalaSpark SQL基于实时数据流的数据处理秒级S
9、tormSpark Streaming基于历史数据的数据挖掘-MahoutSpark MLlib基于增量数据的机器学习-Spark Streaming+MLlibSpark的体系架构在特定的使用场景下,Spark提供的解决方案不一定是最优,比如在实时数据流处理中,相比于Spark Streaming,Storm的实时性更强、时间切片更小,但Spark模块间的数据可以无缝结合,因此Spark生态体系可以为大数据的处理、分析提供一站式解决方案。uSpark简介与体系架构uSpark的安装与配置uSpark的开发与应用Life is short,you need spark!Spark的安装与配置S
10、park支持在多种操作系统上安装和使用,包括Windows、Linux、Ubuntu以及苹果的Mac OS 等等。目前使用最广泛的是Linux和Ubuntu。原因是其安装配置方便。Spark的安装与配置将Spark部署一台单机系统中,需要安装的软件为 -Ubuntu -jdk -Hadoop-2.4.0 此为稳定版本 -Scala 编译spark的语言环境 -spark-bin-hadoop2.4 Spark的开源代码 -Spark开发环境以及IDESpark的安装与配置1、安装JDK,配置Java运行环境 测试jdk是否安装成功:Spark的安装与配置2、安装Hadoop,配置环境变量 测试
11、hdfs是否配置成功:Spark的安装与配置2、安装Hadoop,配置环境变量 测试hdfs是否配置成功:Spark的安装与配置3、安装Scala,配置相应环境变量 测试Scala安装是否成功:Spark的安装与配置4、安装Spark,配置环境变量 测试Spark是否安装成功:Spark的安装与配置4、安装Spark,配置环境变量 测试Spark是否安装成功:uSpark简介与体系架构uSpark的安装与配置uSpark的开发与应用Life is short,you need spark!Spark的开发与应用可以使用多种编程语言编写Spark应用,包括Java、Scala、Python和R。其中Scala是Spark框架的开发语言,所以使用Scala语言可以和Spark的源代码进行更好的无缝结合,更方便调用其相关功能。Spark的开发与应用使用Spark编写机器学习算法的实例线性回归预测问题使用Python语言的代码如下:Spark的开发与应用使用Spark编写机器学习算法的实例线性回归预测问题使用Scala语言的代码如下:Spark的开发与应用使用Spark编写机器学习算法的实例线性回归预测问题使用Java语言的代码如下:感谢聆听鉴于本人能力有限,如有不足之处,请见谅