大数据技术基础教程 课件 第8、9章 流计算Spark Streaming、数据可视化_第1页
大数据技术基础教程 课件 第8、9章 流计算Spark Streaming、数据可视化_第2页
大数据技术基础教程 课件 第8、9章 流计算Spark Streaming、数据可视化_第3页
大数据技术基础教程 课件 第8、9章 流计算Spark Streaming、数据可视化_第4页
大数据技术基础教程 课件 第8、9章 流计算Spark Streaming、数据可视化_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第八章流计算SparkStreaming《大数据技术基础教程》学习目标/Target了解流计算概述了解流计算的概念了解Spark概述理解Spark运行时架构——SparkStandalone架构学习目标/Target理解SparkStreaming流计算掌握编写SparkStreaming程序的基本步骤掌握创建StreamingContext对象掌握SparkStreaming数据源及程序开发章节概述/

SummarySpark作为下一代大数据处理引擎,现已成为当今大数据领域非常活跃、高效的大数据计算平台,很多互联网公司都使用Spark来实现公司的核心业务。Spark提供了Java、Scala、Python和R的高级API,支持一组丰富的高级工具,包括使用SQL进行结构化数据处理的SparkSQL,用于机器学习的MLlib,用于图处理的GraphX,以及用于实时流处理的SparkStreaming。目录/Contents010203流计算概述流计算的概念Spark概述04SparkStandalone架构目录/Contents050607SparkStreaming流计算编写SparkStreaming程序的基本步骤创建StreamingContext对象08SparkStreaming数据源09SparkStreaming程序示例流计算概述11.1流计算概述流计算是一种典型的大数据计算模式,可以对源源不断到达的流数据进行实时处理分析。流数据具有如下特征:数据快速持续到达,潜在大小也许是无穷无尽的数据来源众多,格式复杂数据量大,但是不十分关注存储,一旦经过处理,要么被丢弃,要么被归档存储注重数据的整体价值,不过分关注个别数据数据顺序颠倒,或者不完整,系统无法控制将要处理的新到达的数据元素的顺序。

对静态数据和流数据的处理,对应着两种截然不同的计算模式:批量计算和实时计算。1.1流计算概述流计算是针对流数据的实时计算,其主要应用于产生大量流数据、同时对实时性要求高的领域。流计算的概念22.1流计算的概念Spark概述33.1Spark概述ApacheSpark是一个快速通用的集群计算系统,是一种与Hadoop相似的开源集群计算环境,但是Spark在一些工作负载方面表现得更加优越。Spark运行时架构——SparkStandalone架构44.1Spark运行时架构——SparkStandalone架构SparkStandalone模式为经典的Master/Slave(主/从)架构,资源调度是Spark自己实现的。在Standalone模式中,根据应用程序提交的方式不同,Driver(主控进程)在集群中的位置也有所不同。应用程序的提交方式主要有两种:client和cluster,默认是client。4.1MapReduce程序编写步骤(1)client提交方式4.1MapReduce程序编写步骤(2)cluster提交方式SparkStreaming流计算55.1SparkStreaming流计算SparkStreaming是SparkCoreAPI(SparkRDD)的扩展,支持对实时数据流进行可伸缩、高吞吐量及容错处理。数据可以从Kafka、Flume、Kinesis或TCPSocket等多种来源获取,并且可以使用复杂的算法处理数据,这些算法由map()、reduce()、join()和window()等高级函数表示。5.1SparkStreaming流计算SparkStreaming接收实时输入的数据流,并将数据流以时间片(秒级)为单位拆分成批次,然后将每个批次交给Spark引擎(SparkCore)进行处理,最终生成以批次组成的结果数据流。5.1SparkStreaming流计算在内部,对输入数据流拆分成的每个批次实际上是一个RDD(ResilientDistributedDatasets,弹性分布式数据集),一个DStream由多个RDD组成,相当于一个RDD序列。编写SparkStreaming程序的基本步骤66.1编写SparkStreaming程序的基本步骤1)通过创建输入DStream(InputDstream)来定义输入源。流计算处理的数据对象是来自输入源的数据,这些输入源会源源不断产生数据,并发送给SparkStreaming,由Receiver组件接收到以后,交给用户自定义的SparkStreaming程序进行处理;2)通过对DStream应用转换操作和输出操作来定义流计算。流计算过程通常是由用户自定义实现的,需要调用各种DStream操作实现用户处理逻辑;3)调用StreamingContext对象的start()方法来开始接收数据和处理流程;4)通过调用StreamingContext对象的awaitTermination()方法来等待流计算进程结束,或者可以通过调用StreamingContext对象的stop()方法来手动结束流计算进程。创建StreamingContext对象77.1创建StreamingContext对象在RDD编程中需要生成一个SparkContext对象,如果要运行一个SparkStreaming程序,就需要首先生成一个StreamingContext对象,它是SparkStreaming程序的主入口。SparkStreaming数据源88.1基本数据源(1)文件流对于从任何与HDFSAPI(HDFS、S3、NFS等)兼容的文件系统上的文件中读取数据,可以通过以下方式创建DStream:streamingContext.fileStream[KeyClass,ValueClass,InputFormatClass](dataDirectory)SparkStreaming将监视目录dataDirectory并处理在该目录中的所有文件。对于简单的文本文件,可以使用以下方式创建DStream:streamingContext.textFileStream(dataDirectory)8.1基本数据源(2)Socket流通过监听Socket端口接收数据,例如以下代码,从本地的9999端口接收数据:8.1基本数据源(2)Socket流通过监听Socket端口接收数据,例如以下代码,从本地的9999端口接收数据:8.1基本数据源(3)RDD队列流使用streamingContext.queueStream(queueOfRDDs)可以基于RDD队列创建DStream。推入队列的每个RDD将被视为DStream中的一批数据,并像流一样进行处理。8.1基本数据源(3)RDD队列流8.1基本数据源(3)RDD队列流8.2高级数据源SparkStreaming可以从Kafka、Flume、Kinesis等数据源读取数据,使用时需要引入第三方依赖库,此类数据源称为高级数据源。SparkStreaming程序示例99.1SparkStreaming程序示例假设需要监听TCPSocket端口的数据,实时计算接收到的文本数据中的单词数,具体的实现步骤如下:(1)导入相应类9.1SparkStreaming程序示例(2)创建StreamingContext9.1SparkStreaming程序示例(3)创建DStream使用StreamingContext可以创建一个输入DStream,它表示来自TCP源的流数据。例如,从主机名为localhost、端口为9999的TCP源获取数据,代码如下:JavaReceiverInputDStream<String>

lines

=

jssc.socketTextStream("localhost",9999);9.1SparkStreaming程序示例(4)操作DStreamDStream创建成功后,可以对DStream应用算子操作,生成新的DStream,类似对RDD的操作。例如,按空格字符将每一行文本分割为单词,代码如下:JavaDStream<String>words=lines.flatMap(x->Arrays.asList(x.split("")).iterator());9.1SparkStreaming程序示例(5)启动SparkStreaming在DStream的创建与转换代码编写完毕后,需要启动SparkStreaming才能真正地开始计算,因此需要在最后添加以下代码://开始计算ssc.start()//等待计算结束ssc.awaitTermination()至此,一个简单的单词计数例子就完成了。9.1SparkStreaming程序示例(6)使用nc模拟端口netcat(或简称nc)是一个功能强大且易于使用的程序,可用于Linux中与TCP、UDP或UNIX域套接字相关的任何事情。本例测试方式为:nc-l9999一行行输入句子,观察应用程序的运行结果。本章小结本章主要介绍了流计算SparkStreaming,Spark作为下一代大数据处理引擎,现已成为当今大数据领域非常活跃、高效的大数据计算平台。包括流计算概述、流计算的概念、Spark概述、Spark运行时架构——SparkStandalone架构、SparkStreaming流计算、编写SparkStreaming程序的基本步骤、创建StreamingContext对象、SparkStreaming数据源、SparkStreaming程序示例。通过本章的学习,希望大家能够熟悉SparkStreaming的相关内容,后续我们将基于本章介绍的内容进行大数据技术的进一步学习。第九章数据可视化《大数据技术基础教程》学习目标/Target了解可视化概述了解可视化的重要作用掌握可视化工具掌握可视化典型案例章节概述/

Summary可视化技术为大数据分析提供了一种更加直观的挖掘、分析与展示手段,有助于发现大数据中蕴含的规律,在各行各业均得到了广泛的应用。目录/Contents010203可视化概述可视化的重要作用可视化工具04可视化典型案例可视化概述11.1可视化概述

数据可视化与信息图形、信息可视化、科学可视化及统计图形密切相关。数据可视化与计算机图形学、计算机视觉等学科相比,既有相同之处,也有显著区别。数据可视化主要是通过计算机图形图像等技术手段展现数据的基本特征和隐含规律,辅助人们更好地认识和理解数据,进而支持从庞杂混乱的数据中获得需要的领域信息和知识。可视化的重要作用22.1可视化的重要作用在大数据时代,可视化技术可以支持实现多种不同的目标。(1)观测、跟踪数据(2)分析数据(3)辅助理解数据(4)增强数据吸引力可视化工具33.1入门级工具Excel是微软公司的办公软件Office家族的系列软件之一,可以进行各种数据的处理、统计分析和辅助决策操作,已经广泛地应用于管理、统计、金融等领域。Excel是日常数据分析工作中最常用的工具,简单易用,用户不需要复杂的学习就可以轻松使用Excel提供的各种图表功能,尤其是制作折线图、饼状图、柱状图、散点图等各种统计图表时,Excel是普通用户的首选工具。3.2信息图表工具(1)TableauTableau是桌面系统中最简单的商业智能工具软件,更适合企业和部门进行日常数据报表和数据可视化分析工作。Tableau实现了数据运算与美观的图表的完美结合,用户只要将大量数据拖放到数字“画布”上,转眼间就能创建好各种图表。3.2信息图表工具(1)Tableau1).条形图3.2信息图表工具(1)Tableau2).饼图3.2信息图表工具(2)EChartsECharts,一个使用JavaScript实现的开源可视化库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器(IE9/10/11,Chrome,Firefox,Safari等),底层依赖矢量图形库

ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表。3.2信息图表工具(2)ECharts3.2信息图表工具(2)ECharts3.3地图工具(1)ModestMapsModestMaps是一个小型、可扩展、交互式的免费库,提供了一套查看卫星地图的API,只有10KB大小,是目前最小的可用地图库。它也是一个开源项目,有强大的社区支持,是在网站中整合地图应用的理想选择。(2)LeafletLeaflet是一个小型化的地图框架,通过小型化和轻量化来满足移动网页的需要。3.4时间线工具(1)TimetoastTimetoast是在线创作基于时间轴事件记载服务的网站,提供个性化的时间线服务,可以用不同的时间线来记录你某个方面的发展历程、心理路程、进度过程等。(2)XtimelineXtimeline是一个免费的绘制时间线的在线工具网站,操作简便,用户通过添加事件日志的形式构建时间表,同时也可给日志配上相应的图表。3.5高级分析工具(1)RR是属于GNU系统的一个自由、免费、源代码开放的软件,是一个用于统计计算和统计制图的优秀工具,使用难度较高。R语言的主要功能包括数据存储和处理系统、驻足运算工具(其向量、矩阵运算方面功能尤其强大)、完整连贯的统计分析工具、优秀的统计制图功能、简便而强大的编程语言以及可操纵数据的输入和输出等功能。3.5高级分析工具(1)R3.5高级分析工具(2)WekaWeka是一款免费的、基于Java环境的、开源的机器学习以及数据挖掘软件,不但可以进行数据分析,还可以生成一些简单图表。(3)pythonPyhton是一款简单易学的编程类工具,同时,其编写的代码具有简洁性、易读性和易维护性等优点。Matplotlib是Python的绘图库,是用于生成出版质量级别图形的桌面绘图包,让用户很轻松地将数据图形化,同时还提供多样化的输出格式。3.5高级分析工具(3)python可视化典型案例44.1编程语言之间的影响力关系图通过TIOBE的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论