基于Spark的机器学习资料29、Spark以及生态圈介绍.pdf

上传人:1398****507 文档编号:73122798 上传时间:2023-02-15 格式:PDF 页数:4 大小:425.10KB
返回 下载 相关 举报
基于Spark的机器学习资料29、Spark以及生态圈介绍.pdf_第1页
第1页 / 共4页
基于Spark的机器学习资料29、Spark以及生态圈介绍.pdf_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《基于Spark的机器学习资料29、Spark以及生态圈介绍.pdf》由会员分享,可在线阅读,更多相关《基于Spark的机器学习资料29、Spark以及生态圈介绍.pdf(4页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、Spark 以及生态圈介绍 一、Spark 简介 官方解释:Apache Spark is a fast and general engine for large-scale data processing.打开官网网站解释一下。二、Spark 关键词 术语 描述 Application Spark 的应用程序,包含一个 Driver program 和若干 Executor SparkContext Spark 应用程序的入口,负责调度各个运算资源,协调各个 Worker Node 上的 Executor Driver Program 运行 Application 的 main()函数并且创

2、建 SparkContext Executor 是为 Application 运行在 Worker node 上的一个进程,该进程负责运行 Task,并且负责将数据存在内存或者磁盘上。每个 Application 都会申请各自的 Executor 来处理任务 Cluster Manager 在集群上获取资源的外部服务(例如:Standalone、Mesos、Yarn)Worker Node 集群中任何可以运行 Application 代码的节点,运行一个或多个 Executor 进程 Task 运行在 Executor 上的工作单元 Job SparkContext 提交的具体 Action

3、操作,常和 Action 对应 Stage 每个 Job 会被拆分很多组 task,每组任务被称为 Stage,也称 TaskSet RDD 是 Resilient distributed datasets 的简称,中文为弹性分布式数据集;是 Spark 最核心的模块和类 DAGScheduler 根据 Job 构建基于 Stage 的 DAG,并提交 Stage 给 TaskScheduler TaskScheduler 将 Taskset 提交给 Worker node 集群运行并返回结果 Transformations 是 Spark API 的一种类型,Transformation 返

4、回值还是一个 RDD,所有的 Transformation 采用的都是懒策略,如果只是将 Transformation 提交是不会执行计算的 Action 是 Spark API 的一种类型,Action 返回值不是一个 RDD,而是一个 scala 集合;计算只有在 Action 被提交的时候计算才被触发。三、Spark 生态系统 Spark Core:包含 Spark 的基本功能;尤其是定义 RDD 的 API、操作以及这两者上的动作。其他Spark 的库都是构建在 RDD 和 Spark Core 之上的 Spark SQL:提供通过 Apache Hive 的 SQL 变体 Hive

5、查询语言(HiveQL)与 Spark 进行交互的API。每个数据库表被当做一个 RDD,Spark SQL 查询被转换为 Spark 操作。Spark Streaming:对实时数据流进行处理和控制。Spark Streaming 允许程序能够像普通 RDD 一样处理实时数据 MLlib:一个常用机器学习算法库,算法被实现为对 RDD 的 Spark 操作。这个库包含可扩展的学习算法,比如分类、回归等需要对大量数据集进行迭代的操作。GraphX:控制图、并行图操作和计算的一组算法和工具的集合。GraphX 扩展了 RDD API,包含控制图、创建子图、访问路径上所有顶点的操作 Spark C

6、ore:提供了有向无环图(DAG)的分布式并行计算框架,并提供 Cache 机制来支持多次迭代计算或者数据共享,大大减少迭代计算之间读取数据局的开销,这对于需要进行多次迭代的数据挖掘和分析性能有很大提升 l 在 Spark 中引入了 RDD(Resilient Distributed Dataset)的抽象,它是分布在一组节点中的只读对象集合,这些集合是弹性的,如果数据集一部分丢失,则可以根据“血统”对它们进行重建,保证了数据的高容错性;l 移动计算而非移动数据,RDD Partition 可以就近读取分布式文件系统中的数据块到各个节点内存中进行计算 l 使用多线程池模型来减少 task 启动

7、开稍 l 采用容错的、高可伸缩性的 akka 作为通讯框架 SparkStreaming:SparkStreaming 是一个对实时数据流进行高通量、容错处理的流式处理系统,可以对多种数据源(如 Kdfka、Flume、Twitter、Zero 和 TCP 套接字)进行类似 Map、Reduce 和 Join 等复杂操作,并将结果保存到外部文件系统、数据库或应用到实时仪表盘。计算流程:Spark Streaming 是将流式计算分解成一系列短小的批处理作业。这里的批处理引擎是 Spark Core,也就是把 Spark Streaming 的输入数据按照 batch size(如 1 秒)分成

8、一段一段的数据(Discretized Stream),每一段数据都转换成 Spark 中的 RDD(Resilient Distributed Dataset),然后将 Spark Streaming 中对 DStream 的 Transformation操作变为针对 Spark 中对 RDD 的 Transformation 操作,将 RDD 经过操作变成中间结果保存在内存中。整个流式计算根据业务的需求可以对中间的结果进行叠加或者存储到外部设备。下图显示了 Spark Streaming 的整个流程。l 容错性:对于流式计算来说,容错性至关重要。首先我们要明确一下 Spark 中 RDD

9、的容错机制。每一个 RDD 都是一个不可变的分布式可重算的数据集,其记录着确定性的操作继承关系(lineage),所以只要输入数据是可容错的,那么任意一个 RDD 的分区(Partition)出错或不可用,都是可以利用原始输入数据通过转换操作而重新算出的。对于 Spark Streaming 来说,其 RDD 的传承关系如下图所示,图中的每一个椭圆形表示一个 RDD,椭圆形中的每个圆形代表一个 RDD 中的一个 Partition,图中的每一列的多个 RDD 表示一个 DStream(图中有三个 DStream),而每一行最后一个 RDD 则表示每一个 Batch Size 所产生的中间结果

10、RDD。我们可以看到图中的每一个 RDD 都是通过lineage 相连接的,由于 Spark Streaming 输入数据可以来自于磁盘,例如 HDFS(多份拷贝)或是来自于网络的数据流(Spark Streaming 会将网络输入数据的每一个数据流拷贝两份到其他的机器)都能保证容错性,所以 RDD 中任意的 Partition 出错,都可以并行地在其他机器上将缺失的 Partition 计算出来。这个容错恢复方式比连续计算模型(如 Storm)的效率更高。l 实时性:对于实时性的讨论,会牵涉到流式处理框架的应用场景。Spark Streaming 将流式计算分解成多个 Spark Job,对

11、于每一段数据的处理都会经过 Spark DAG 图分解以及 Spark 的任务集的调度过程。对于目前版本的 Spark Streaming 而言,其最小的 Batch Size 的选取在 0.52 秒钟之间(Storm 目前最小的延迟是 100ms 左右),所以 Spark Streaming 能够满足除对实时性要求非常高(如高频实时交易)之外的所有流式准实时计算场景。l 扩展性与吞吐量:Spark 目前在 EC2 上已能够线性扩展到 100 个节点(每个节点 4Core),可以以数秒的延迟处理6GB/s 的数据量(60M records/s),其吞吐量也比流行的 Storm 高 25 倍,图

12、 4 是 Berkeley 利用 WordCount 和 Grep两个用例所做的测试,在 Grep 这个测试中,Spark Streaming 中的每个节点的吞吐量是 670k records/s,而 Storm是 115k records/s。Spark SQL:Spark SQL 允许开发人员直接处理 RDD,同时也可查询例如在 Apache Hive 上存在的外部数据。Spark SQL 的一个重要特点是其能够统一处理关系表和 RDD,使得开发人员可以轻松地使用 SQL 命令进行外部查询,同时进行更复杂的数据分析。MLlib:MLlib 是 Spark 实现一些常见的机器学习算法和实用程

13、序,包括分类、回归、聚类、协同过滤、降维以及底层优化,该算法可以进行可扩充;MLRuntime 基于 Spark 计算框架,将 Spark 的分布式计算应用到机器学习领域。GraphX:GraphX 是 Spark 中用于图(e.g.,Web-Graphs and Social Networks)和图并行计算(e.g.,PageRank and Collaborative Filtering)的 API,可以认为是 GraphLab(C+)和 Pregel(C+)在 Spark(Scala)上的重写及优化,跟其他分布式图计算框架相比,GraphX 最大的贡献是,在 Spark 之上提供一栈式数据解决方案,可以方便且高效地完成图计算的一整套流水作业。GraphX 最先是伯克利 AMPLAB 的一个分布式图计算框架项目,后来整合到 Spark 中成为一个核心组件。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com