Spark

目录

[10.1 Spark概述](#10.1 Spark概述)

[10.1.1 Spark简介](#10.1.1 Spark简介)

Spark具有如下几个主要特点:

[10.1.2 Scala简介](#10.1.2 Scala简介)

[10.1.3 Spark与Hadoop的比较](#10.1.3 Spark与Hadoop的比较)

[10.2 Spark生态系统](#10.2 Spark生态系统)

[Spark Core:](#Spark Core:)

[Spark SQL:](#Spark SQL:)

[Spark Streaming:](#Spark Streaming:)

MLlib(机器学习):

GraphX(图计算):

10.1Spark概述

10.1.1 Spark简介

Spark 最初由美国加州伯克利大学( UCBerkeley )的 AMP 实验室于 2009 年开发,是基于内存计算的大数据并行计算框架,可用于构建大型的、低延迟的数据分析 应用程序 。
2013 年 Spark 加入 Apache 孵化器项目后发展迅猛,如今已成为 Apache 软件基金会最重要的三大分布式计算系统开源项目之一( Hadoop 、 Spark 、 Storm ) 。

Spark 在 2014 年打破了 Hadoop 保持的基准排序纪录
Spark/206 个节点 /23 分钟 /100TB 数据
Hadoop/2000 个节点 /72 分钟 /100TB 数据
Spark 用十分之一的计算资源,获得了比 Hadoop 快 3 倍的速度

Spark具有如下几个主要特点:

通用性:Spark提供了完整而强大的技术栈,包括SQL查询、流式计算、机器学习和图算法组件

运行模式多样:可运行于独立的集群模式中,可运行于Hadoop中,也可运行于Amazon EC2等云环境中,并且可以访问HDFS、Cassandra、HBase、Hive等多种数据源

通用性:Spark提供了完整而强大的技术栈,包括SQL查询、流式计算、机器学习和图算法组件

运行模式多样:可运行于独立的集群模式中,可运行于Hadoop中,也可运行于Amazon EC2等云环境中,并且可以访问HDFS、Cassandra、HBase、Hive等多种数据源

Spark如今已吸引了国内外各大公司的注意,如腾讯、淘宝、百度、亚马逊等公司均不同程度地使用了Spark来构建大数据分析应用,并应用到实际的生产环境中。

10.1.2 Scala简介

Scala是Spark的主要编程语言,但Spark还支持Java、Python、R作为编程语言。Scala的优势是提供了REPL(Read-Eval-Print Loop,交互式解释器),可在Spark Shell中进行交互式编程,提高程序开发效率。

10.1.3 Spark与Hadoop的比较


使用 Hadoop 进行迭代计算非常耗资源
Spark 将数据载入内存后,之后的迭代计算都可以直接使用内存中的中间结果作运算,避免了从磁盘中频繁读取 数据
Hadoop 需要不少相对编写底层的代码,不够高效。相对而言, Spark 提供了多种高层次、简洁的 API ,通常情况下,相同功能的应用程序, Hadoop 的代码量比 Spark 多 2~5 倍。
Spark提供了实时交互式编程反馈,可以方便地验证、调整算法
尽管 Spark 比 Hadoop 具有巨大优势,但 Spark 不能完全取代 Hadoop , Spark主要替代Hadoop中的MapReduce计算模型。
Hadoop 可以使用廉价的、异构的机器做分布式存储与计算,但是 Spark 对硬件(内存、 CPU 等)的要求高一些。

10.2Spark生态系统

在实际应用中,大数据处理主要包括以下三个类型:
• 复杂 的批量数据处理:通常时间跨度在数十分钟到数小时之间
• 基于历史数据的交互式查询:通常时间跨度在数十秒到数分钟之间
• 基于实时数据流的数据处理:通常时间跨度在数百毫秒到数秒 之间

这样做难免会带来一些问题:
不同场景之间输入输出数据无法做到无缝共享,通常需要进行数据格式的转换
不同的软件 需要 不同开发 和维护团队,带来了较高的使用成本
比较难以对同一个集群中的各个系统进行 统一资源协调 和 分配
Spark 的设计遵循"一个软件栈满足不同应用场景"的理念,逐渐形成了一套完整的 生态系统 , 既 能够提供内存计算框架,也可以支持 SQL 即席查询、实时流式计算、机器学习和图计算 等 。
Spark 可以部署在资源管理器 YARN 之上,提供一站式的大数据解决 方案 , 因此,Spark所提供的生态系统足以应对上述三种场景,即同时支持批处理、交互式查询和流数据处理

Spark Core:

Spark Core :实现了 Spark 的基本功能,包含任务调度、内存管理、错误恢复、与存储系统交互等模块。 Spark Core 中还包含了对弹性分布式数据集 (Resilient Distributed DataSet ,简称 RDD) 的 API 定义。

Spark SQL:

Spark SQL : Spark SQL 允许开发人员直接处理 RDD ,同时也可查询 Hive 、 HBase 等外部数据源。 Spark SQL 的一个重要特点是其能够统一处理关系表和 RDD ,使得开发人员可以轻松地使用 SQL 命令进行查询,并进行更复杂的数据分析。

Spark Streaming:

Spark Streaming : Spark Streaming 支持高吞吐量、可容错处理的实时流数据处理,其核心思路是将流式计算分解成一系列短小的批处理作业。 Spark Streaming 支持多种数据输入源,如 Kafka 、 Flume 和 TCP 套接字等;

MLlib(机器学习):

MLlib (机器学习): MLlib 提供了常用机器学习算法的实现,包括聚类、分类、回归、协同过滤等,降低了机器学习的门槛,开发人员只要具备一定的理论知识就能进行机器学习的工作;

GraphX(图计算):

GraphX (图计算): GraphX 是 Spark 中用于图计算的 API ,可认为是 Pregel 在 Spark 上的重写及优化, Graphx 性能良好,拥有丰富的功能和运算符,能在海量数据上自如地运行复杂的图算法。

相关推荐
Alluxio14 小时前
Alluxio + OCI:为 AI 工作负载实现亚毫秒访问延迟与可扩展吞吐
运维·数据库·人工智能·分布式·缓存·ai·语言模型
喵个咪17 小时前
GoWind Admin 拆解:BI 大屏设计器——schema 即 JSON、resolver 注入与三张快照表的口径谱系
大数据·后端·go
武子康18 小时前
H3-World 的 11.3 小时训练数据,是怎样对齐成动作监督的?
大数据·人工智能·深度学习
字节跳动数据平台19 小时前
火山引擎知识引擎VeKnow进化之路(下):让 AI 智能体更可用、更可信、更懂业务
大数据
Elastic 中国社区官方博客19 小时前
更少的位数,相同的召回率:DiskBBQ 更保守的自动校准扫描
大数据·运维·开发语言·人工智能·elasticsearch·搜索引擎
阿卡好可爱19 小时前
Lua 热更新不生效:改完文件线上仍是旧逻辑,package.loaded 与 upvalue 重绑定详解
数据结构·分布式·后端·架构·lua
MyBili20 小时前
Chrome隐私安全配置:完整防护指南
大数据·chrome·谷歌浏览器·隐私安全·浏览器防护·cookie管理·上网痕迹清理
真上帝的左手20 小时前
19. 大数据-数据同步-工具
大数据·数据同步
数字孪生视频孪生20 小时前
在线重构,实时同步:视频动态三维重建打造 “常更常新” 的数字底座
大数据·人工智能·重构·架构·空间计算
Aloudata21 小时前
Claude 做数据分析的这两年:一份复盘与发展线索
大数据·数据库·人工智能·数据挖掘·数据分析·dataagent