Spark大数据分析 课件 第1章 大数据与Spark简介_第1页
Spark大数据分析 课件 第1章 大数据与Spark简介_第2页
Spark大数据分析 课件 第1章 大数据与Spark简介_第3页
Spark大数据分析 课件 第1章 大数据与Spark简介_第4页
Spark大数据分析 课件 第1章 大数据与Spark简介_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

大数据简介与相关技术目录/Contents01大数据简介02大数据相关技术大数据简介01大数据简介大数据(bigdata),或称巨量资料,指的是所涉及的资料量规模巨大到无法透过目前主流软件工具,在合理时间内达到获取、管理、处理、并整理成为帮助企业经营决策更积极目的的资讯。在维克托·迈尔-舍恩伯格及肯尼斯·库克耶编写的《大数据时代》中大数据指不用随机分析法(抽样调查)这样捷径,而采用所有数据进行分析处理。大数据的5V特点(IBM提出):Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性)。大数据简介Volume(大量):数据量大,截至目前,人类生产的所有印刷材料的数据量是200PB,而历史上全人类总共说过的话的数据量大约是5EB。Variety(多样):种类和来源多样化。这种类型的多样性也让数据被分为结构化数据和非结构化数据。Value(低价值密度):价值密度的高低与数据总量的大小成反比。Velocity(高速):数据增长速度快,处理速度也快,时效性要求高。这是大数据区分于传统数据挖掘的最显著特征。Veracity:信数据的准确性和可信赖度,即数据的质量。大数据相关技术02大数据相关技术大数据技术的体系庞大且复杂,基础的技术包含数据的采集、数据预处理、分布式存储、NoSQL数据库、数据仓库、机器学习、并行计算、可视化等各种技术范畴和不同的技术层面。首先科学的给出一个通用化的大数据处理技术框架,主要分为下面几个方面:数据采集与预处理、数据存储、数据清洗、数据查询分析和数据可视化。大数据相关技术数据采集与预处理对于各种来源的数据包括移动互联网数据、社交网络的数据等,这些结构化和非结构化的海量数据是零散的,也就是所谓的数据孤岛,此时的这些数据并没有什么意义,数据采集就是将这些数据写入数据仓库中,把零散的数据整合在一起,对这些数据综合起来进行分析。数据采集包括文件日志的采集、数据库日志的采集、关系型数据库的接入和应用程序的接入等。在数据量比较小的时候,可以写个定时的脚本将日志写入存储系统,但随着数据量的增长,这些方法无法提供数据安全保障,并且运维困难,需要更强壮的解决方案。大数据相关技术数据存储Hadoop作为一个开源的框架,专为离线和大规模数据分析而设计,HDFS作为其核心的存储引擎,已被广泛用于数据存储。数据清洗MapReduce作为Hadoop的查询引擎,用于大规模数据集的并行计算,”Map(映射)”和”Reduce(归约)”,是它的主要思想。它极大的方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统中。大数据相关技术数据查询分析Hive的核心工作就是把SQL语句翻译成MR程序,可以将结构化的数据映射为一张数据库表,并提供HQL(HiveSQL)查询功能。Impala是对Hive的一个补充,可以实现高效的SQL查询。使用Impala来实现SQLonHadoop,用来进行大数据实时查询分析。Spark拥有HadoopMapReduce所具有的特点,它将Job中间输出结果保存在内存中,从而不需要读取HDFS。Nutch是一个开源Java实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具,包括全文搜索和Web爬虫。Solr用Java编写、运行在Servlet容器(如ApacheTomcat或Jetty)的一个独立的企业级搜索应用的全文搜索服务器。Elasticsearch是一个开源的全文搜索引擎,基于Lucene的搜索服务器,可以快速的储存、搜索和分析海量的数据。大数据相关技术数据可视化对接一些BI平台,将分析得到的数据进行可视化,用于指导决策服务。主流的BI平台比如,国外的敏捷BITableau、Qlikview、PowrerBI等,国内的SmallBI和新兴的有数BI等。控制权限的ranger是一个Hadoop集群权限框架,提供操作、监控、管理复杂的数据权限,它提供一个集中的管理机制,管理基于yarn的Hadoop生态圈的所有数据权限。可以对Hadoop生态的组件如Hive,Hbase进行细粒度的数据访问控制。通过操作Ranger控制台,管理员可以轻松的通过配置策略来控制用户访问HDFS文件夹、HDFS文件、数据库、表、字段权限。这些策略可以为不同的用户和组来设置,同时权限可与hadoop无缝对接。感谢大家的聆听Spark简介目录/Contents01Spark特性02Spark的历史与发展01Spark组件Spark特性01Spark特性运行速度快面向磁盘的MapReduce受限于磁盘读/写性能和网络I/O性能的约束,在处理迭代计算、实时计算、交互式数据查询等方面并不高效,但是这些却在图计算、数据挖掘和机器学习等相关应用领域中非常常见。针对这一不足,将数据存储在内存中并基于内存进行计算是一个有效的解决途径。易用性Spark不仅计算性能突出,在易用性方面也是其他同类产品难以比拟的。一方面,Spark提供了支持多种语言的API,如Scala、Java、Python、R等,使得用户开发Spark程序十分方便。另一方面,Spark是基于Scala语言开发的,由于Scala是一种面向对象的、函数式的静态编程语言,其强大的类型推断、模式匹配、隐式转换等一系列功能结合丰富的描述能力使得Spark应用程序代码非常简洁。Spark的易用性还体现在其针对数据处理提供了丰富的操作。Spark特性通用性相对于第一代的大数据生态系统Hadoop中的MapReduce,Spark无论是在性能还是在方案的统一性方面,都有着极大的优势。Spark框架包含了多个紧密集成的组件,如图1-5所示。位于底层的是SparkCore,其实现了Spark的作业调度、内存管理、容错、与存储系统交互等基本功能,并针对弹性分布式数据集提供了丰富的操作。在SparkCore的基础上,Spark提供了一系列面向不同应用需求的组件,主要有SparkSQL、SparkStreaming、MLlib、GraphX。支持多种资源管理器Spark不仅计算性能突出,在易用性方面也是其他同类产品难以比拟的。一方面,Spark提供了支持多种语言的API,如Scala、Java、Python、R等,使得用户开发Spark程序十分方便。另一方面,Spark是基于Scala语言开发的,由于Scala是一种面向对象的、函数式的静态编程语言,其强大的类型推断、模式匹配、隐式转换等一系列功能结合丰富的描述能力使得Spark应用程序代码非常简洁。Spark的易用性还体现在其针对数据处理提供了丰富的操作。Spark的历史与发展02Spark的历史与发展Spark发展历程:Spark在2009年由MateiZaharia在加州大学柏克莱分校AMPLab开创2010年通过BSD许可协议开源发布。2013年6月,该项目被捐赠给Apache软件基金会并切换许可协议至Apache2.0。2014年2月,Spark成为Apache的顶级项目。2014年11月,Databricks团队使用Spark刷新数据排序世界记录。2014年5月底Spark1.0.0发布。2014年9月Spark1.1.0发布2014年12月Spark1.2.0发布...2016年1月4号Spark1.6.0发布...2016年6月26号Spark2.0发布...时至今日的2.2.0版本Spark组件03Spark组件相对于第一代的大数据生态系统Hadoop中的MapReduce,Spark无论是在性能还是在方案的统一性方面,都有着极大的优势。Spark框架包含了多个紧密集成的组件,如图1-6所示。位于底层的是SparkCore,其实现了Spark的作业调度、内存管理、容错、与存储系统交互等基本功能,并针对弹性分布式数据集提供了丰富的操作。在SparkCore的基础上,Spark提供了一系列面向不同应用需求的组件,主要有SparkSQL、SparkStreaming、MLlib、GraphX。Spark软件栈Spark组件SparkSQLSparkSQL是Spark用来操作结构化数据的组件。通过SparkSQL,用户可以使用SQL或者ApacheHive版本的SQL方言(HQL)来查询数据。SparkSQL支持多种数据源类型,例如Hive表、Parquet以及JSON等。SparkSQL不仅为Spark提供了一个SQL接口,还支持开发者将SQL语句融入到Spark应用程序开发过程中,无论是使用Python、Java还是Scala,用户可以在单个的应用中同时进行SQL查询和复杂的数据分析。由于能够与Spark所提供的丰富的计算环境紧密结合,SparkSQL得以从其他开源数据仓库工具中脱颖而出。SparkSQL在Sparkl.0中被首次引入。在SparkSQL之前,美国加州大学伯克利分校曾经尝试修改ApacheHive以使其运行在Spark上,进而提出了组件Shark。然而随着SparkSQL的提出与发展,其与Spark引擎和API结合得更加紧密,使得Shark已经被SparkSQL所取代。Spark组件SparkStreaming众多应用领域对实时数据的流式计算有着强烈的需求,例如网络环境中的网页服务器日志或是由用户提交的状态更新组成的消息队列等,这些都是实时数据流。SparkStreaming是Spark平台上针对实时数据进行流式计算的组件,提供了丰富的处理数据流的API。由于这些API与SparkCore中的基本操作相对应,因此开发者在熟知Spark核心概念与编程方法之后,编写SparkStreaming应用程序会更加得心应手。从底层设计来看,SparkStreaming支持与SparkCore同级别的容错性、吞吐量以及可伸缩性。Spark组件MLlibMLlib是Spark提供的一个机器学习算法库,其中包含了多种经典、常见的机器学习算法,主要有分类、回归、聚类、协同过滤等。MLlib不仅提供了模型评估、数据导入等额外的功能,还提供了一些更底层的机器学习原语,包括一个通用的梯度下降优化基础算法。所有这些方法都被设计为可以在集群上轻松伸缩的架构。Spark组件GraphXGraphX是Spark面向图计算提供的框架与算法库。GraphX中提出了弹性分布式属性图的概念,并在此基础上实现了图视图与表视图的有机结合与统一;同时针对图数据处理提供了丰富的操作,例如取子图操作subgraph、顶点属性操作mapVertices、边属性操作mapEdges等。GraphX还实现了与Pregel的结合,可以直接使用一些常用图算法,如PageRank、三角形计数等。感谢大家的聆听其他数据处理框架目录/Contents01Hadoop02Storm03Flink04BeamHadoop01HadoopHadoop是一个由Apache基金会所开发的分布式系统基础架构,是一个存储系统+计算框架的软件框架。主要解决海量数据存储与计算的问题,是大数据技术中的基石。Hadoop以一种可靠、高效、可伸缩的方式进行数据处理,用户可以在不了解分布式底层细节的情况下,开发分布式程序,用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。Hadoop的核心是HDFS和MapReduce、YARN。HadoopDHDFS是一个高度容错性的系统,能检测和应对硬件故障,适合部署在廉价的机器上HDFS采用master/slave架构。一个HDFS集群是由一个Namenode和一定数目的Datanodes组成。EMapReduce是一个基于java的并行分布式计算框架,使用它来编写的数据处理应用可以运行在大型的商用硬件集群上来处理大型数据集中的可并行化问题,数据处理可以发生在存储在文件系统(非结构化)或数据库(结构化)中的数据上。FApacheHadoopYARN是开源Hadoop分布式处理框架中的资源管理和作业调度技术。作为ApacheHadoop的核心组件之一,YARN负责将系统资源分配给在Hadoop集群中运行的各种应用程序,并调度要在不同集群节点上执行的任务。(1)HDFS(2)

MapReduce(3)

YARNStorm02Storm简单的编程模型:类似于MapReduce降低了并行批处理复杂性,Storm降低了实时处理的复杂性,只需实现几个接口即可(Spout实现ISpout接口,Bolt实现IBolt接口)。支持多种语言:你可以在Storm之上使用各种编程语言。默认支持Clojure、Java、Ruby和Python。要增加对其他语言的支持,只需实现一个简单的Storm通信协议即可。容错性:nimbus、supervisor都是无状态的,可以用kill-9来杀死Nimbus和Supervisor进程,然后再重启它们,任务照常进行;当worker失败后,supervisor会尝试在本机重启它。分布式:计算是在多个线程、进程和服务器之间并行进行的。持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失。可靠的消息处理:Storm保证每个消息至少能得到一次完整处理。任务失败时,它会负责从消息源重试消息(ack机制)。快速、实时:Storm保证每个消息能能得到快速的处理。StormStorm的核心组件Nimbus:即Storm的Master,负责资源分配和任务调度。一个Storm集群只有一个Nimbus。Supervisor:即Storm的Slave,负责接收Nimbus分配的任务,管理所有Worker,一个Supervisor节点中包含多个Worker进程。Worker:工作进程,每个工作进程中都有多个Task。Task:任务,在Storm集群中每个Spout和Bolt都由若干个任务(tasks)来执行。每个任务都与一个执行线程相对应。Topology:计算拓扑,Storm的拓扑是对实时计算应用逻辑的封装,它的作用与MapReduce的任务(Job)很相似,区别在于MapReduce的一个Job在得到结果之后总会结束,而拓扑会一直在集群中运行,直到你手动去终止它。Stream:数据流(Streams)是Storm中最核心的抽象概念。一个数据流指的是在分布式环境中并行创建、处理的一组元组(tuple)的无界序列。StormStorm的核心组件Spout:数据源(Spout)是拓扑中数据流的来源。一般Spout会从一个外部的数据源读取元组然后将他们发送到拓扑中。Bolt:拓扑中所有的数据处理均是由Bolt完成的。通过数据过滤(filtering)、函数处理(functions)、聚合(aggregations)、联结(joins)、数据库交互等功能,Bolt几乎能够完成任何一种数据处理需求。Streamgrouping:为拓扑中的每个Bolt的确定输入数据流是定义一个拓扑的重要环节。数据流分组定义了在Bolt的不同任务(tasks)中划分数据流的方式。在Storm中有八种内置的数据流分组方式。Reliability:可靠性。Storm可以通过拓扑来确保每个发送的元组都能得到正确处理。通过跟踪由Spout发出的每个元组构成的元组树可以确定元组是否已经完成处理。Flink03Flink1.处理无界和有界数据任何类型的数据都是作为事件流产生的。信用卡交易,传感器测量,机器日志或网站或移动应用程序上的用户交互,所有这些数据都作为流生成。2.随处部署应用程序ApacheFlink是一个分布式系统,需要计算资源才能执行应用程序。Flink与所有常见的集群资源管理器(如HadoopYARN,ApacheMesos和Kubernetes)集成,但也可以设置为作为独立群集运行。3.运行任意规模应用Flink旨在任意规模上运行有状态

温馨提示

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

评论

0/150

提交评论