spark的rdd的含义_Spark是什么意思

spark的rdd的含义_Spark是什么意思ApacheSpark 是一个开源集群运算框架 相对于 Hadoop 的 MapReduce 会在运行完工作后将中介数据存放到磁盘中 Spark 使用了存储器内运算技术 能在数据尚未写入硬盘时即在存储器内分析运算 ApacheSpark 是一个开源集群运算框架 最初是由加州大学柏克莱分校 AMPLab 所开发 相对于 Hadoop 的 MapReduce 会在运行完工作后将中介数据存放到磁盘中 Spark

Apache Spark是一个开源集群运算框架,相对于Hadoop的MapReduce会在运行完工作后将中介数据存放到磁盘中,Spark使用了存储器内运算技术,能在数据尚未写入硬盘时即在存储器内分析运算。

Apache Spark 是一个开源集群运算框架,最初是由加州大学柏克莱分校 AMPLab 所开发。相对于 Hadoop 的 MapReduce 会在运行完工作后将中介数据存放到磁盘中,Spark 使用了存储器内运算技术,能在数据尚未写入硬盘时即在存储器内分析运算。

spark的rdd的含义_Spark是什么意思

Spark 在存储器内运行程序的运算速度能做到比 Hadoop MapReduce 的运算速度快上 100 倍,即便是运行程序于硬盘时,Spark 也能快上 10 倍速度。Spark 允许用户将数据加载至集群存储器,并多次对其进行查询,非常适合用于机器学习算法。

使用 Spark 需要搭配集群管理员和分布式存储系统。Spark 支持独立模式(本地 Spark 集群)、Hadoop YARN 或 Apache Mesos 的集群管理。在分布式存储方面,Spark 可以和 Alluxio, HDFS、 Cassandra 、OpenStack Swift 和 Amazon S3 等接口搭载。 Spark 也支持伪分布式(pseudo-distributed)本地模式,不过通常只用于开发或测试时以本机文件系统取代分布式存储系统。在这样的情况下,Spark 仅在一台机器上使用每个 CPU 核心运行程序。

在 2014 年有超过 465 位贡献家投入 Spark 开发,让其成为 Apache 软件基金会以及大数据众多开源项目中最为活跃的项目。

特色

Java、Scala、Python 和 R APIs。

可扩展至超过 8000 个结点。

能够在存储器内缓存数据集以进行交互式数据分析。

Scala 或 Python 中的交互式命令行接口可降低横向扩展数据探索的反应时间。

Spark Streaming 对即时数据流的处理具有可扩展性、高吞吐量、可容错性等特点。

Spark SQL 支持结构化和关系式查询处理(SQL)。

MLlib 机器学习算法和 Graphx 图形处理算法的高端库。

历史

Spark 在 2009 年由 Matei Zaharia 在加州大学柏克莱分校 AMPLab 开创,2010 年透过 BSD 许可协议开源发布。2013 年,该项目被捐赠给 Apache 软件基金会并切换许可协议至 Apache2.0。2014 年 2 月,Spark 成为 Apache 的顶级项目。2014 年 11 月,Databricks 团队使用 Spark 刷新数据排序世界记录。

项目构成要素

Spark 项目包含下列几项:

Spark 核心和弹性分布式数据集(RDDs)

Spark 核心是整个项目的基础,提供了分布式任务调度,调度和基本的 I/O 功能。而其基础的程序抽象则称为弹性分布式数据集(RDDs),是一个可以并行操作、有容错机制的数据集合。 RDDs 可以透过引用外部存储系统的数据集创建(例如:共享文件系统、HDFS、HBase 或其他 Hadoop 数据格式的数据源)。或者是透过在现有 RDDs 的转换而创建(比如:map、filter、reduce、join 等等)。

RDD 抽象化是经由一个以 Scala, Java, Python 的语言集成 API 所呈现,简化了编程复杂性,应用程序操纵 RDDs 的方法类似于操纵本地端的数据集合。

Spark SQL

Spark SQL 在 Spark 核心上带出一种名为 SchemaRDD 的数据抽象化概念,提供结构化和半结构化数据相关的支持。Spark SQL 提供了领域特定语言,可使用 Scala、Java 或 Python 来操纵 SchemaRDDs。它还支持使用使用命令行界面和 ODBC/JDBC 服务器操作 SQL 语言。在 Spark 1.3 版本,SchemaRDD 被重命名为 DataFrame。

Spark Streaming

Spark Streaming 充分利用 Spark 核心的快速调度能力来运行流分析。它截取小批量的数据并对之运行 RDD 转换。这种设计使流分析可在同一个引擎内使用同一组为批量分析编写而撰写的应用程序代码。

MLlib

MLlib 是 Spark 上分布式机器学习框架。Spark 分布式存储器式的架构比 Hadoop 磁盘式的 Apache Mahout 快上 10 倍,扩展性甚至比 Vowpal Wabbit 要好。MLlib 可使用许多常见的机器学习和统计算法,简化大规模机器学习时间,其中包括:

汇总统计、相关性、分层抽样、假设检定、随机数据生成

分类与回归:支持向量机、回归、线性回归、逻辑回归、决策树、朴素贝叶斯

协同过滤:ALS

分群:k-平均算法

维度约减:奇异值分解(SVD),主成分分析(PCA)

特征提取和转换:TF-IDF、Word2Vec、StandardScaler

最优化:随机梯度下降法(SGD)、L-BFGS

GraphX

GraphX 是 Spark 上的分布式图形处理框架。它提供了一组 API,可用于表达图表计算并可以模拟 Pregel 抽象化。GraphX 还对这种抽象化提供了优化运行。

GraphX 最初为加州大学柏克莱分校 AMPLab 和 Databricks 的研究项目,后来捐赠给 Spark 项目。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/204812.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午7:28
下一篇 2026年3月19日 下午7:29


相关推荐

  • 分布式事务TCC(Hmily)

    分布式事务TCC(Hmily)1什么是TCC事务?TCC是Try、Confirm、Cancel三个词语,TCC分布式事务的三个操作:预处理Try、确认Confirm、撤销Cancel。Try操作业务检查以及资源预留,Confirm做业务确认操作,Cancel实现一个月try相反的操作即为回滚操作。Try操作全部成功,TM将会发起所有分支事务的Confirm操作,如Confirm/Cancel操作失败,TM进行重试。分支事务失败的情况:TCC分了三个阶段:(1)Try阶段是做业务检查以及资源预留,此阶段仅是一个初步操作,它和

    2022年5月21日
    40
  • 交通信号灯控制器C语言代码,交通信号灯控制器代码及说明.doc

    交通信号灯控制器C语言代码,交通信号灯控制器代码及说明.docPAGEPAGE3课程设计报告课程名称:FPGA现代数字系统设计设计名称:交通信号灯控制器姓名:***学号:2010000379专业:通信指导教师:***起止日期:2010.12.25-2011.1.9课程设计任务书设计名称:设计要求:(1)设计一个交通信号灯控制器…

    2026年3月3日
    6
  • Latex插入图片并固定图片位置

    Latex插入图片并固定图片位置首先导入宏包:\usepackage{graphicx}\usepackage{float}然后可以设置图片的路径\graphicspath{{pic/}}然后使用:\begin{figure}[H]%这四个字母可以出现一个或多个:htbp代表图片插入位置的设置\centering%图片居中\includegraphics[height=10cm,width=10cm]{图片位置.png}\caption{图片的标题}\end{figure}

    2022年5月7日
    312
  • mybatiscodehelperpro使用_ok卡过期了在哪里激活

    mybatiscodehelperpro使用_ok卡过期了在哪里激活插件下载地址https://download.csdn.net/download/printf88/16301731下载完成后解压在IDEA中本地安装插件File>Settings>Plugins找到刚才的解压文件选择你需要的版本压缩包点击确定重启Idea激活方法激活方法(自2.7.3):IDEA顶部菜单:Tools->MybatisCodeHelper->Activation->OfflineActivat…

    2026年2月12日
    3
  • Qt调用谷歌翻译API

    Qt调用谷歌翻译API原理 模拟 Google 翻译网页请求 ps 频繁调用会封 IP 哦 QStringGoogl translateTex QStringtext QStringsourc QStringtarge QStringretSt QStringfinal m path client m client amp sl sourceLang amp tl targetLang amp dt t amp q

    2026年3月18日
    3
  • Vue 父组件向子组件传递动态参数,子组件如何实时更新[通俗易懂]

    项目问题介绍:父组件中填入各种查询条件,点击查询按钮查出符合条件的数据。其中,数据列表是引入的子组件。第一次加载的时候,子组件数据正常显示,再次查询的时候子组件怎么实现实时更新呢?解决办法:子组件watch中(监听)父组件数据的变化以自己的项目为例:父组件:这是父组件中如何引用的子组件。testParams是我需要传过去的参数对象。参数名是params。子组…

    2022年4月13日
    259

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号