《Spark2学习总结_2016年11月》由会员分享,可在线阅读,更多相关《Spark2学习总结_2016年11月(104页珍藏版)》请在金锄头文库上搜索。
1、2016年11月,Spark 2 学习总结,目 录,I,大数据基本概念,II,Spark基本知识,Spark数据分析案例,IV,III,Spark进阶知识,大数据基本概念,大数据的5V特点(IBM提出): Volume(大量) Velocity(高速) Variety(多样) Value(价值) Veracity(真实性),大数据不解释因果关系,只关心相关性,大数据基本概念,Google三篇论文,奠定了大数据算法的基础 2003年,发布Google File System论文 这是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用,运行于廉价的普通硬件上,提供容错功能。
2、从根本上说:文件被分割成很多块,使用冗余的方式储存于商用机器集群上。 2004年,发布 MapReduce论文 论文描述了大数据的分布式计算方式,主要思想是将任务分解后在多台处理能力较弱的计算节点中同时处理,然后将结果合并从而完成大数据处理。 2006年,发布 Bigtable论文, 启发了无数的NoSQL数据库,如:Cassandra、HBase、MongoDB等等。,大数据基本概念,互联网大数据的典型代表包括: 用户行为数据:精准广告投放、内容推荐、行为习惯和喜好分析、产品优化等 用户消费数据:精准营销、信用记录分析、活动促销、理财等 用户地理位置数据:O2O推广,商家推荐,交友推荐等 互
3、联网金融数据:P2P,小额贷款,支付,信用,供应链金融等 用户社交等UGC数据:趋势分析、流行元素分析、受欢迎程度分析、舆论监控分析、社会问题分析等,大数据基本概念-Hadoop生态系统,Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力进行高速运算和存储。 Hadoop的核心的设计是:HDFS和MapReduce。HDFS为海量的数据提供了存储,MapReduce为海量的数据提供了计算。,大数据基本概念-Hadoop-HDFS,HDFS(Hadoop分布式文件系统) 源自于Google的GFS论文,HD
4、FS是GFS克隆版。 HDFS是Hadoop体系中数据存储管理的基础。它是一个高度容错的系统,能检测和应对硬件故障,用于在低成本的通用硬件上运行。 HDFS简化了文件的一致性模型,通过流式数据访问,提供高吞吐量应用程序数据访问功能,适合带有大型数据集的应用程序。 它提供了一次写入多次读取的机制,数据以块的形式,同时分布在集群的不同物理机器上。,大数据基本概念-Hadoop-MapReduce,MapReduce(分布式计算框架) 源自于google的MapReduce论文,Hadoop MapReduce是google MapReduce 克隆版。 MapReduce是一种分布式计算模型,用以
5、进行大数据量的计算。它屏蔽了分布式计算框架细节,将计算抽象成map和reduce两部分,其中Map对数据集上的独立元素进行指定的操作,生成键值对形式的中间结果。Reduce则对中间结果中相同“键”的所有“值”进行规约,以得到最终结果。 MapReduce非常适合在大量计算机组成的分布式并行环境里进行数据处理。,大数据基本概念-Hadoop-HBASE,HBASE(分布式列存数据库) 源自Google的Bigtable论文,HBase是Google Bigtable克隆版 HBase是一个建立在HDFS之上,面向列的,针对结构化数据的可伸缩、高可靠、高性能、分布式的动态模式数据库。 HBase采
6、用了BigTable的数据模型:增强的稀疏排序映射表(Key/Value),其中,键由行关键字、列关键字和时间戳构成。 HBase提供了对大规模数据的随机、实时读写访问。HBase中保存的数据可以使用MapReduce来处理,它将数据存储和并行计算完美地结合在一起。,大数据基本概念-Hadoop-Zookeeper & HIVE,Zookeeper(分布式协作服务) 解决分布式环境下的数据管理问题:统一命名,状态同步,集群管理,配置同步等。 Hadoop的许多组件依赖于Zookeeper,它运行在计算机集群上面,用于管理Hadoop操作。 HIVE(数据仓库) Hive定义了一种类似SQL的查
7、询语言(HQL),将SQL转化为MapReduce任务在Hadoop上执行。通常用于离线分析。 HQL用于运行存储在Hadoop上的查询语句,Hive让不熟悉MapReduce的开发人员也能编写数据查询语句,然后这些语句被翻译为Hadoop上面的MapReduce任务。,大数据基本概念-Hadoop-Yarn,Yarn(分布式资源管理器) Yarn是MapReduce v2版本,是在第一代MapReduce基础上演变而来的。重构的根本思想是将JobTracker两个主要的功能分离成单独的组件,这两个功能是资源管理和任务调度 / 监控。 Yarn 是一种分层的集群框架,。分层结构的本质是 Res
8、ourceManager,这个实体控制整个集群并管理应用程序向基础计算资源的分配。ResourceManager 将各个资源部分(计算、内存、带宽等)精心安排给基础 NodeManager(Yarn 的每节点代理)。,大数据基本概念-Hadoop-Mesos,Mesos(分布式资源管理器) Mesos是诞生于UC Berkeley的一个研究项目,现已成为Apache项目,当前有一些公司使用Mesos管理集群资源,比如Twitter。 与Yarn类似,Mesos是一个资源统一管理和调度的平台,同样支持比如MR、streaming等多种运算框架。,大数据基本概念-Hadoop适用的场景,Hadoo
9、p主要应用于数据量大的离线场景。特征为: 数据量大。一般真正线上用Hadoop的,集群规模都在上百台到几千台的机器。 离线。MapReduce框架下,很难处理实时计算,作业都以日志分析这样的线下作业为主。 数据块大。由于HDFS设计的特点,Hadoop适合处理文件块大的文件。 如:百度每天都会有用户对侧边栏广告进行点击。这些点击都会被记入日志。然后在离线场景下,将大量的日志使用Hadoop进行处理,分析用户习惯等信息。,大数据基本概念-后Hadoop时代,大数据应用未来的价值在于预测,而预测的核心是分析。 未来的几年,将进入“后Hadoop时代”: 内存计算时代的来临 随着高级分析和实时应用的
10、增长,对处理能力提出了更高的要求,数据处理重点从IO重新回到CPU。以内存计算为核心的Spark将代替以IO吞吐为核心的MapReduce成为分布式大数据处理的缺省通用引擎。 统一数据访问管理 现在的数据访问由于数据存储的格式不同、位置不同,用户需要使用不同的接口、模型甚至语言。未来的趋势是将底层部署运维细节和上层业务开发进行隔离。 简化实时应用 现在用户不仅关心如何实时的收集数据,而且关心同时尽快的实现数据可见和分析结果上线,希望能够有一种解决快速数据的方案,使用HDFS和HBase的混合体,在快速更新数据的同时进行快速分析。,目 录,I,大数据基本概念,II,Spark基本知识,Spark
11、数据分析案例,IV,III,Spark进阶知识,Spark是什么?,Lightning-fast cluster computing,Apache Spark is a fast and general engine for large-scale data processing. Spark是一个快速和通用的大数据处理引擎。,闪电快速集群计算,Spark是什么?,Spark最初是由加州大学伯克利分校的AMPLab于2009年提交的一个项目,现在是Apache软件基金会旗下最活跃的开源项目之一 Spark是一个分布式的大数据处理框架,基于RDD(弹性分布式数据集),立足内存计算的一栈式计算平台
12、 2016年11月14日发布Spark 2.0.2版本,Spark四大优势,优势一:快速处理(Speed) Spark内存运行速度是Hadoop MapReduce 100倍,硬盘运行速度为10倍。,使用逻辑回归算法处理同样数据,Hadoop用时110秒,Spark用时0.9秒,Spark四大优势,优势二:易于使用(Ease of Use) Spark代码量小;支持Scala、Java、Python,R语言的API。,Spark 代码示例,计算一个文件中有多少个单词: val file = sc.textFile(“hdfs:/”) val counts = file.flatMap(line
13、 = line.split(“ “).map(word =(word,1).reduceByKey(_ + _) counts.saveAsTextFile(“hdfs:/”),Spark四大优势,优势三:通用性强(Generality) Spark提供了一个强大的技术堆栈,是一个可以进行即时查询、流处理、机器学习、图处理等多种大数据处理的计算平台。,Spark四大优势,优势四:可以与Hadoop数据集成(Runs Everywhere),Spark可以独立运行,也可以运行在Mesos、Yarn等集群资源管理系统上;还可以运行在Hadoop 数据源上,如Hive、HBase、HDFS等。,Sp
14、ark生态系统BDAS-旧版,BDAS(the Berkeley Data Analytics Stack),全称伯克利数据分析栈,是AMP实验室打造的一个开源的大数据处理一体化的技术生态系统, 其核心框架是Spark,Spark生态系统BDAS-新版,BDAS(the Berkeley Data Analytics Stack),全称伯克利数据分析栈,是AMP实验室打造的一个开源的大数据处理一体化的技术生态系统, 其核心框架是Spark,Spark组件-Spark Core,Spark的核心组件 分布式大数据处理框架 比MapReduce计算速度快 核心技术为RDD,Spark Core,B
15、DAS 伯克利数据分析栈,Spark,Spark Core,RDD 弹性分布式数据集,核心框架,核心组件,核心技术,Spark组件-Spark SQL,集成性好:在Spark程序中无缝混合SQL查询 统一的数据访问:以同样的方式连接到任何数据源 兼容Hive:已有Hive查询语句不用修改 支持标准连接:JDBC、ODBC,Spark SQL,Spark SQL is Apache Sparks module for working with structured data. Spark SQL在Spark内核基础上提供了对结构化数据的处理,Spark组件-Spark Streaming,Spa
16、rk Streaming,Spark Streaming makes it easy to build scalable fault-tolerant streaming applications. Spark Streaming是一个对实时数据流进行高通量、容错处理的流式处理系统。,易于使用:可通过高层操作构建应用,支持Java, Scala 和 Python 容错:可以不用额外代码就恢复丢失的工作和操作 集成:基于Spark运行,可以组合流的批处理和交互式查询,Spark组件-GraphX,灵活:与图形和集合无缝工作 速度快:性能堪比最快的专业图形处理系统 算法:从一个不断增长的图形算法库选取,GraphX,GraphX is Apache Sparks API for graphs and graph-parallel computation. GraphX是一个基于Spark的分布式图计算子框架,提供了图计算中用于图和图并行计算的接口。,Spark组件-MLlib,MLlib,MLlib is Apache Sparks scalab