Spark学习笔记(一)
提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 Python 机器学习入门之pandas的使用
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、什么是大数据?
- 1.定义
- 2.大数据 vs 传统数据
- 3.大数据价值实现的基本要素
- 4.大数据科学 VS 大数据框架
- 二、大数据处理
- 1.批量处理
- (1)批量数据特征
- (2)代表性处理系统
- 2.流式处理
- (1)流式数据特征
- 1) 实时性
- 2) 易失性
- 3) 突发性
- 4) 无序性
- 5) 无限性
- (2)代表性处理系统
- 3.交互式处理
- (1)交互式数据数据特征
- (2)代表性处理系统
- 4.图数据处理
- (1)图数据数据特征
- (2)代表性处理系统
- 总结
前言
Spark是一种基于内存的快速、通用、可扩展的大数据分析计算引擎。首先了解下什么是大数据,以及大数据处理框架的区别。
一、什么是大数据?
1.定义
- 维基百科:所涉及的资料量规模巨大到无法透过目前主流软件工具,在合理时间内达到撷取、管理、处理,并整理成为帮助企业经营决策更积极目的的资讯.
- IDC(国际数据公司):为更经济地从高频率的、大容量的、不同结构和类型的数据中获取价值而设计的新一代架构和技术.
- 信息专家涂子沛.《大数据》:“大数据”之“大”,并不仅仅指“容量大”,更大的意义在于通过对海量数据的交换、整合和分析,发现新的知识,创造新的价值,带来“大知识”、“大科技”、“大利润”和“大发展”.
- NIST(美国国家标准和技术研究院):大数据是指数据的容量、数据的获取速度或者数据的表示限制了使用传统关系方法对数据的分析处理能力, 需要使 用水平扩展的机制以提高处理效率.
虽然大数据的定义尚没有一个统一的定义,但不难看出,各种定义方式对大数据的描述都存在的共同点:在种类繁多、数量庞大的数据中,快速获取信息
2.大数据 vs 传统数据
具体来说,就是大数据比传统数据体量大,产生速率高,结构不够规范,整合难度高,数据源不同,存储方式不同,数据访问方式不同。
3.大数据价值实现的基本要素
(1) 大分析:通过创新性的数据分析方法实现对大量数据的快速、高效、及时的分析与计算,得出跨数据 间的、隐含于数据中的规律、关系和内在逻辑,帮助用户理清事件背后的原因、预测发展趋势、获取新价值;
(2) 大带宽:通过大带宽提供良好的基础设施,以便在更大范围内进行数据的收集,以更快的速度进行数据的传输,为大数据的分析、计算等环节提供时间和数据量方面的基本保障;
(3) 大内容:只有在数据内容足够丰富、数据量足够大的前提下,隐含于大数据中的规律、特征才能被识 别出来。
4.大数据科学 VS 大数据框架
- 大数据科学:涵盖大数据获取、调节和评估技术的研究;
- 大数据框架:在计算单元集群间解决大数据问题的分布式处理和分析的软件库及算法,一个或多个大数据框架的实例化即为大数据基础设施。
二、大数据处理
1.批量处理
大数据的批量处理系统适用于先存储后计算,实时性要求不高,同时数据的准确性。和全面性更为重要的场景
(1)批量数据特征
- 体量巨大.:很少进行更新,存储时间长,可以重复利用, 不容易对其进行移动和备份。
- 精确度高:批量数据往往是从应用中沉淀下来的数据,因此精度相对较高,是企业资产的一部分宝贵财富。
- 价值密度低:需要通过合理的算法才能从批量的数据中抽取有用的价值, 适合大型的相对比较成熟的作业。
(2)代表性处理系统
Hadoop是典型的大数据批量处理架构,由 HDFS 负责静态数据的存储,通过 MapReduce 将计算逻辑分配到各数据节点进行数据计算和价值发现,并且以 HDFS 和 MapReduce 为基础建立了很多项目,形成了 Hadoop 生态圈。
MapReduce 编程模型的特点:
- 无共享大规模集群系统.集群系统具有良好的性价比和可伸缩性;
- 模型简单、易于理解、易于使用;
- 虽然基本的 MapReduce模型只提供一个过程性的编程接口,但在海量数据环境、需要保证可伸缩性的前提下,通过使用合适的查询优化和索引技术,MapReduce仍能够提供很好的数据处理性能。
2.流式处理
流式计算系统适用于无需先存储,可以直接进行数据计算,实时性要求很严格,但数据的精确度要求稍微宽松的应用场景。
(1)流式数据特征
1) 实时性
流式大数据是实时产生、实时计算,结果反馈往往也需要保证及时性.流式大数据价值的有效时间较
短,大部分数据到来后直接在内存中进行计算并丢弃,只有少量数据才被长久保存到硬盘中。
需求:足够的低延迟计算能力,可以快速地进行数据计算,在数据价值有效的时间内,体现数据的有用性。对于时效性特别短、潜在价值又很大的数据可以优先计算.。
2) 易失性
数据的使用往往是一次性的、易失的,即使重放,得到的数据流和之前的数据流通常也是不同的。
需求:具有一定的容错能力,要充分地利用好仅有的一次数据计算机会,尽可能全面、准确、有效地从数据流中得出有价值的信息.。
3) 突发性
不同的数据源在不同时空范围内的状态不统一且发生动态变化,即前一时刻数据速率和后一时刻数据速率可能会有巨大的差异。
需求:具有很好的可伸缩性,能够动态适应不确定流入的数据流,具有很强的系统计算能力和大数据流量动态匹配的能力。一方面,在突发高数据流速的情况下,保证不丢弃数据,或者识别并选择性地丢弃部分不重要的数据;另一方面,在低数据速率的情况下,保证不会太久或过多地占用系统资源.。
4) 无序性
各数据流之间、同一数据流内部各数据元素之间是无序的。一方面,各数据源之间是相互独立的,所处的时空环境也不尽相同,因此无法保证数据流间的各个数据元素的相对顺序;另一方面,即使是同一个数据流,由于时间和环境的动态变化,也无法保证重放数据流和之前数据流中数据元素顺序的一致性。
需求:在数据计算过程中具有很好的数据分析和发现规律的能力,不能过多地依赖数据流间的内在逻辑或者数据流内部的内在逻辑。
5) 无限性
数据是实时产生、动态增加的,只要数据源处于活动状态,数据就会一直产生和持续增加下去,即潜在的数据量是无限的,无法用一个具体确定的数据实现对其进行量化。
需求:具有很好的稳定性,保证系统长期而稳定地运行。
(2)代表性处理系统
现有的大数据流式计算系统实例有 Twitter 的 Storm系统、Yahoo 的 S4(simple scalable streaming system)系统、Facebook 的 Data Freeway and Puma 系统、Linkedin 的 Kafka 系统、Microsoft 的 TimeStream 系统、Hadoop 之上的数据分析系统 HStreaming、IBM 的商业流式计算系统 StreamBase、Berkeley 的交互式实时计算系统 Spark、专门进行复杂事件处理(complex event processing,简称 CEP)的 Esper系统,由Apache 软件基金会开发的开源流处理框架Flink等。
3.交互式处理
(1)交互式数据数据特征
交互式数据处理灵活、直观、便于控制。系统与操作人员以人机对话的方式一问一答,采用这种方式,存储在系统中的数据文件能够被及时处理修改,同时处理结果可以立刻被使用。
需求:保证输入的信息得到及时处理,使交互方式继续进行下去。
(2)代表性处理系统
- Berkeley 的 Spark 系统 :Spark 是为集群计算中的特定类型的工作负载而设计,即在并行操作之间重用工作数据集(比如机器学习算法)的工作负载;
- Google 的 Dremel 系统:专注于只读嵌套数据的分析,可以组建成规模上千的服务器集群,处理 PB 级数据。
4.图数据处理
(1)图数据数据特征
图数据中主要包括图中的节点以及连接节点的边,通常具有 3 个特征.
- 节点之间的关联性。图中节点和关系信息同等重要;
- 图数据的种类繁多。在许多领域中, 使用图来表示该邻域的数据,如生物、化学、计算机视觉、模式识别、信息检索、社会网络、知识发现、动态 网络交通、语义网、情报分析等。每个领域对图数据的处理需求不同,没有一个通用的图数据处理系统满足所有领域的需求;
- 图数据计算的强耦合性。在图中,数据之间是相互关联的,对图数据的计算也是相互关联的。大图数据无法使用单台机器处理,又难以分割成若干完全独立的子图进行独立的并行处理,即使可以分割,也会面临并行机器的协同处理,以及将最后的处理结果进行合并等一系列问题。
(2)代表性处理系统
- Google 的 Pregel 系统:基于 BSP(Bulk synchronous parallel)模型的分布式图计算框架,主要用于图遍
历(BFS)、最短路径(SSSP)、PageRank 计算等; - Neo4j 系统:一个高性能的、完全兼容 ACID 特性的、鲁棒的图数据库,解决了拥有大量连接的查询问题,提供了非常快的图算法、推荐系统以及 OLAP 风格的分析,在处理复杂的网络数据时表现出很好的性能;
- 微软的 Trinity 系统:建立在分布式云存储上的计算平台,可以提供高度并行查询处理、事务记录、一致性控制等功能。
总结
在学习Spark之前看了一些论文,调研了关于大数据的一些理论知识,在这里将我整理的部分内容放上来作为笔记,下一章开始记录在Spark学习过程中的一些知识点。
参考文献:
[1]李学龙,龚海刚.大数据系统综述[J].中国科学:信息科学,2015,45(01):1-44.
[2]程学旗,靳小龙,王元卓,郭嘉丰,张铁赢,李国杰.大数据系统和分析技术综述[J].软件学报,2014,25(09):1889-1908.DOI:10.13328/j.cnki.jos.004674.
[3]孟小峰,慈祥.大数据管理:概念、技术与挑战[J].计算机研究与发展,2013,50(01):146-169.
[4]孙大为,张广艳,郑纬民.大数据流式计算:关键技术及系统实例[J].软件学报,2014,25(04):839-862.DOI:10.13328/j.cnki.jos.004558.
Spark学习笔记(一)相关推荐
- Spark学习笔记1——第一个Spark程序:单词数统计
Spark学习笔记1--第一个Spark程序:单词数统计 笔记摘抄自 [美] Holden Karau 等著的<Spark快速大数据分析> 添加依赖 通过 Maven 添加 Spark-c ...
- Spark学习笔记[1]-scala环境安装与基本语法
Spark学习笔记[1]-scala环境安装与基本语法 正所谓工欲善其事必先利其器,Spark的开发语言不是java而是scala,虽然都是运行于JVM,但是两门语言的基本特性还是有些不一样,这里 ...
- spark 学习笔记
spark 学习笔记 spark介绍 Spark是是一种快速通用的集群计算系统,它的主要特点是能够在内存中进行计算.它包含了 spark 核心组件 spark-core,用于 SQL 和结构化处理数据 ...
- Spark学习笔记(8)---Spark Streaming学习笔记
Spark Streaming学习笔记 同Spark SQL一样,Spark Streaming学习也是放在了github https://github.com/yangtong123/RoadOfS ...
- Spark学习笔记(7)---Spark SQL学习笔记
Spark SQL学习笔记 Spark SQL学习笔记设计到很多代码操作,所以就放在github, https://github.com/yangtong123/RoadOfStudySpark/bl ...
- 大数据高级开发工程师——Spark学习笔记(7)
文章目录 Spark内存计算框架 Spark SQL SparkSQL架构设计 1. SparkSQL的架构设计实现 2. Catalyst执行过程 SQL 解析阶段 Parser 绑定逻辑计划 An ...
- Spark学习笔记10-RDD(Resilient Distributed Datasets)
1.RDD概念 RDD(Resilient Distributed Datasets),弹性分布式数据集.是分布式内存的一个抽象概念,RDD提供了一种高度受限的共享内存模型,即RDD是只读的记录分区的 ...
- spark学习笔记!!!!
文章目录 1.spark概述 2.spark运行架构 2.1.核心组件 2.2.核心概念 2.3.Spark提交流程 3.spark核心编程 3.1.RDD 3.1.1.什么是RDD 3.1.2.RD ...
- 三万字,Spark学习笔记
Spark 基础 Spark特性 Spark使用简练优雅的Scala语言编写,基于Scala提供了交互式编程体验,同时提供多种方便易用的API.Spark遵循"一个软件栈满足不同应用场景&q ...
- Spark学习笔记:数据读取和保存
spark所支持的文件格式 1.文本文件 在 Spark 中读写文本文件很容易. 当我们将一个文本文件读取为 RDD 时,输入的每一行 都会成为 RDD 的 一个元素. 也可以将多个完整的文本文件一次 ...
最新文章
- CloudStack管理员文档 - 虚拟机
- 未能在给定的程序集中找到任何适合于指定的区域性(或非特定区域性)的资源解决办法...
- 局部变量和参数传递的问题
- Java 8 map(),flatMap()示例
- python集合的加减_python 中对list做减法操作
- React:react-router
- Unity3d iOS 内购详细流程总汇
- 第二代支付系统专题之报文篇(一)小额支付报文完整版(含二代新增功能业务说明)
- 飞鸽传书 linux,飞鸽传书Linux版
- OneNote无法粘贴图片
- 【蓝桥杯集训100题】scratch辨别质数合数 蓝桥杯scratch比赛专项预测编程题 集训模拟练习题第15题
- php总结与展望_2020 年的 PHP 回顾与展望
- 硬笔书法的产生与兴起
- 360 一个让人又爱又恨的公司
- Hive常用函数大全
- @DateTimeFormat@JsonFormat注解详解
- 刚子扯谈:一个调皮小子也能鼓捣教育?
- IIS6.0 IIS7.5应用程序池自动停止的解决方法
- 虫儿飞计算机音乐,虫儿飞 MIDI File Download :: MidiShow
- 计算机科学与技术到底是什么?