spark Introduction

合集下载

Spark基本架构及原理

Spark基本架构及原理

Spark基本架构及原理Hadoop 和 Spark 的关系Spark 运算⽐ Hadoop 的 MapReduce 框架快的原因是因为 Hadoop 在⼀次 MapReduce 运算之后,会将数据的运算结果从内存写⼊到磁盘中,第⼆次 Mapredue 运算时在从磁盘中读取数据,所以其瓶颈在2次运算间的多余 IO 消耗. Spark 则是将数据⼀直缓存在内存中,直到计算得到最后的结果,再将结果写⼊到磁盘,所以多次运算的情况下, Spark 是⽐较快的. 其优化了迭代式⼯作负载Hadoop的局限Spark的改进抽象层次低,代码编写难以上⼿通过使⽤RDD的统⼀抽象,实现数据处理逻辑的代码⾮常简洁只提供了Map和Reduce两个操作,⽋缺表达⼒通过RDD提供了很多转换和动作,实现了很多基本操作,如Sort, Join等⼀个Job只有Map和Reduce两个阶段,复杂的程序需要⼤量的Job来完成,且Job之间的依赖关系需要开发者⾃⾏管理⼀个Job可以包含RDD的多个转换操作,在调度时可以⽣成多个阶段(Stage),⽽且如果多个map操作的RDD的分区不变,是可以放在同⼀个Task中进⾏处理逻辑隐藏在代码细节中,缺乏整体逻辑视图RDD的转换⽀持流式API,提供处理逻辑的整体视图对迭代式数据处理性能⽐较差,Reduce与下⼀步Map之间的中间结果只能存放在HDFS中通过内存缓存数据,可⼤⼤提⾼迭代式计算的性能,内存不⾜时可以溢出到本地磁盘,⽽不是HDFSReduceTask需要等待所有MapTask都完成后才可以开始分区相同的转换构成流⽔线放在⼀个Task中运⾏,分区不同的转换需要Shuffle,被划分到不同的Stage中,需要等待前⾯的Stage 完成后才可以开始时延⾼,只适⽤Batch数据处理,对于交互式数据处理和实时数据处理的⽀持不够通过将流拆成⼩的batch提供Discretized Stream处理流数据Spark 的主要特点还包括:(1)提供 Cache 机制来⽀持需要反复迭代计算或者多次数据共享,减少数据读取的 IO 开销;(2)提供了⼀套⽀持 DAG 图的分布式并⾏计算的编程框架,减少多次计算之间中间结果写到 Hdfs 的开销;(3)使⽤多线程池模型减少 Task 启动开稍, shuffle 过程中避免不必要的 sort 操作并减少磁盘 IO 操作。

Spark大数据处理框架入门与实践

Spark大数据处理框架入门与实践

Spark大数据处理框架入门与实践概述Spark是现今最流行的大数据处理框架之一,它可以处理多种类型的数据,包括结构化数据、半结构化数据、非结构化数据、日志数据等。

本文将介绍Spark的基本概念与使用方法,并通过实际案例帮助读者快速掌握Spark大数据处理框架。

Spark的基本概念Spark是一种基于内存的分布式计算框架,可以将数据分布在多个节点上进行计算,从而提高计算效率。

Spark的核心理念是弹性分布式数据集(Resilient Distributed Dataset,简称RDD),它是一种分布式的元素集合,通过分布式群集实现高效计算。

RDD 分为两种类型:Spark的高级API中,基于RDD构建的应用程序称为Spark Core。

Spark的优势Speed:Spark使用内存计算,因此速度要比Hadoop快。

Ease of Use:Spark的API非常友好,许多用户花费很短的时间在上手Spark上。

Unified Engine:Spark的统一计算引擎可以处理多个任务,包括批量处理、流处理等。

Real-time stream processing:Spark有流计算框架Spark Streaming,可以进行流处理。

安装Spark安装Java环境下载Spark启动SparkSpark的实践在下面的实践中,我们将从实际的案例开始使用Spark构建项目。

案例描述我们将使用Spark来分析一份数据,该数据是储格拉斯选举数据,包括每个区域的投票情况和每个候选人得票情况。

步骤1:数据探索我们先下载数据并使用Spark来分析。

下载数据分析数据在Spark中,数据可以从多种来源读取,例如HDFS、S3、HTTP等。

对于我们的数据,我们可以使用以下代码从文件中读取。

在将数据读取到Spark中之后,我们可以使用一些API来处理数据。

下面是一些示例代码,用于清理数据并返回有关储格拉斯选举的一些统计信息。

步骤2:数据处理在数据探索之后,我们需要进一步处理数据。

Hadoop与Spark简介 课件

Hadoop与Spark简介 课件
MapReduce程序通过Client提交到JobTracker端 用户通过Client提供的接口查看作业运行状态
JobTracker
JobTracker负责资源监控和作业调度 JobTracker 监控所有TaskTracker与Job的状况,
一旦失败,就将任务转移到其他节点 JobTracker 跟踪任务执行进度、资源使用量等,
CONTENTS
03 HDFS简介 Introduction of HDFS
04 Spark概述 Overview of Spark
2 MapReduce简介
2.1 分布式并行编程
摩尔定律
CPU性能大约每隔18个月翻一番 从2005年开始摩尔定律逐渐失效 ,需要处理的数据量快速增加,人们开始借助于分布式
Kafka Spark
一种高吞吐量的分布式发布订阅消息系 统,可以处理消费者规模的网站中的所
有动作流数据
类似于Hadoop MapReduce的通用并 行框架
01 Hadoop概述 Overview of Hadoop
Hadoop与Spark简介
02 MapReduce简介 Introduction of MapReduce
多个溢写文件归并成一个或多个大文件,文件 中的键值对是排序的
当数据很少时,不需要溢写到磁盘,直接在缓 存中归并,然后输出给Reduce
2 MapReduce简介
2.4 实例1 -- WordCount
算法思想
程序 输入
输出
WordCount
一个包含大量单词的文本文件
文件中每个单词及其出现次数(频数 ),并按照单词字母顺序排序,每个 单词和其频数占一行,单词和频数之
周期性地通过“心跳”将本节点上资源的使用情 况和任务进度汇报给JobTracker,同时接收 JobTracker 命令并执行相应操作

Spark介绍

Spark介绍

Spark介绍安装在集群上的spark版本:spark-1.6.3-bin-hadoop2.6.tgz scala版本:scala-2.10.4.tgz1、spark是什么Spark,是⼀种通⽤的⼤数据计算框架,正如传统⼤数据技术Hadoop的MapReduce、 Hive引擎,以及Storm流式实时计算引擎等。

Spark包含了⼤数据领域常见的各种计算框架,⽐如:Spark Core⽤于离线计算Spark SQL⽤于交互式查询Spark Streaming⽤于实时流式计算Spark MLlib⽤于机器学习Spark GraphX⽤于图计算Spark主要⽤于⼤数据的计算,⽽Hadoop以后主要⽤于⼤数据的存储(⽐如HDFS、 Hive、 HBase等),以及资源调度( Yarn)Spark+Hadoop的组合,是未来⼤数据领域最热门的组合,也是最有前景的组合!2、spark介绍Spark,是⼀种"One Stack to rule them all"的⼤数据计算框架,期望使⽤⼀个技术堆栈就完美地解决⼤数据领域的各种计算任务。

Apache官⽅,对Spark的定义就是:通⽤的⼤数据快速处理引擎。

Spark使⽤Spark RDD、 Spark SQL、 Spark Streaming、 MLlib、 GraphX成功解决了⼤数据领域中,离线批处理、交互式查询、实时流计算、机器学习与图计算等最重要的任务和问题。

Spark除了⼀站式的特点之外,另外⼀个最重要的特点,就是基于内存进⾏计算,从⽽让它的速度可以达到MapReduce、 Hive的数倍甚⾄数⼗倍!现在已经有很多⼤公司正在⽣产环境下深度地使⽤Spark作为⼤数据的计算框架,包括 eBay、 Yahoo!、 BAT、⽹易、京东、华为、⼤众点评、优酷⼟⾖、搜狗等等。

Spark同时也获得了多个世界顶级IT⼚商的⽀持,包括IBM、 Intel等。

spark入门及实践

spark入门及实践

2010’NJUPT
纲要
1
Spark综述 核心技术
5
2
Spark安装部署
Spark应用实例 Scala简介
3
Spark架构
6
4
BDAS简介
7
2010’NJUPT
三、Spark体系架构
1
架构组成
Master Worker
2010’NJUPT
三、Spark体系架构
2
架构图
2010’NJUPT
2010’NJUPT
一、Spark综述
3
Spark与Hadoop
3、执行策略 MapReduce在数据shuffle之前总是花费大量时间来 排序。Spark支持基于Hash的分布式聚合,在需要的时候 再进行实际排序。
4、任务调度的开销 MapReduce上的不同作业在同一个节点运行时,会 各自启动一个JVM。而Spark同一节点的所有任务都可以 在一个JVM上运行。
1
Spark是什么
Spark是基于内存计算的大数据并行 计算框架。Spark基于内存计算,提 高了在大数据环境下数据处理的实 时性,同时保证了高容错性和高可 伸缩性,允许用户将Spark部署在大 量廉价硬件之上,形成集群。 Spark于2009年诞生于加州大学伯 克利分校AMPLab。并且于2010年 Matai zaharia 开源。2013年6月Spark进入 Apache孵化器。目前,已经成为 /matei/ Apache软件基金会旗下的顶级开源 项目。
2010’NJUPT
纲要
1
Spark综述 核心技术
5
2
Spark安装部署
Spark应用实例 Scala简介
3

智慧水务-智能水务平台介绍

智慧水务-智能水务平台介绍

智能水务平台产品介绍1平台概述PLATFORM INTRODUCTION技术服务技术咨询实施方案二次开发对接指导应用领域基建行业隧道监测桥梁监测地质监测房屋监测制造行业设备状态监测产品质量监测生产环境监测环保行业污水处理监测毒害气体监测企业偷排监测医疗行业血液样本监测疫苗监测医疗设备监测农业鱼塘监测农作物监测价值体现数据上云异常检查安全防范主动决策……技术架构数据核心平台传输层采集层分析层hadoop算法文件警戒分析数据看板执行层平台基础架构产品监测排污监测水质监测医疗设备监测隧道监测房屋监测设备运维监测桥梁监测数据核心平台基础设备管理通讯协议管理解析协议管理基础开发SDK SQL 数据库:MYSQL 、ORACLE 、SQLSERVER 等NOSQL :REDIS 、mongodb 等海量数据存储:HDFS 、HBASE等Map Reduc eSpark Storm传输协议私有协议透传MQTTHTTP......PLC DTU 、RTU 智能终端平台技术架构平台技术实现分析报告移动端大屏展示PC 端数据报告图表报表GIS组态分析大数据数据统计算法分析预测分析结果导出变量算法协议算法阀值算法多级计算平台监控项目监控权限管控GIS 监控变量监控监控预警设备监控平台优势分布式高并发多行业自定义算法精细化协议兼容全量/增量加载大数据ApacheLog Ali ECS Hadoop Redis NoSQL分布式计算内存计算筛选算法缓存计算协议对接算法组建存储过程缓存机制平台功能框架深入挖掘物联网技术在基建、工业、环保、农业等行业的应用,结合专业硬件设备组成多个领域专业解决方案;汲取大型物联网数据监测工程运营企业专家建议,实现工程项目精细化分层管理。

高专业度高性能高兼容性全方位服务专业团队打造高性能 高可靠性的数据核心平台,支持上万级别的网关设备同时在线;被动采集频率可达到秒级,主动采集频率可达到毫秒级。

spark知识体系-运行架构

spark知识体系-运⾏架构本篇主要讲解spark运⾏架构,包含如下内容:Spark运⾏架构基本概念ApplicationSpark的应⽤程序,包含⼀个Driver program和若⼲ExecutorSparkContextSpark应⽤程序的⼊⼝,负责调度各个运算资源,协调各个Worker Node的ExecutorDriver Program运⾏Application的main()函数并且创建SparkContextExecutor为Application运⾏在Worker node上的⼀个进程,该进程负责运⾏Task,并且负责将数据存在内存或者磁盘上,每个Application都会申请各⾃的Executor来处理任务Cluster Manager在集群上获取资源的外部服务(例如Standalone,Mesos,Yarn)Worker Node集群中任何可以运⾏Application代码的节点,运⾏⼀个或者多个Executor进程Task运⾏在Executor上的⼯作单元JobSparkContext提交的具体Action操作,常和Action对应Stage每个Job会被拆分很多组task,每组任务被称为Stage,也称TaskSetRDD是Resilient distributed datasets的简称,中⽂为弹性分布式数据集,是Spark最核⼼的模块和类DAGScheduler根据Job构建基本Stage的DAG,并提交Stage给TaskSchedulerTaskScheduler将TaskSet提交给Worker node集群运⾏并返回结果Transformations是Spark API的⼀种类型,Transformation返回值还是⼀个RDD,所有的Transformation采⽤的都是懒策略,如果只是将Transformation 的提交时不会执⾏计算的Action是Spark API的⼀种类型,Action返回值不是⼀个RDD,⽽是⼀个scala集合,计算只有在Action被提交的时候计算才被触发架构设计Standalone模式Spark Standalone模式的集群由Master与Worker节点组成,程序通过与Master节点交互申请资源,Worker节点启动Executor运⾏Driver部分Driver部分主要是对SparkContext进⾏配置、初始化以及关闭。

简析Spark的发展历程


Spark在机器学习领域的应用
Spark的MLlib库提供了大量的机器学习算法,包括分类、回归、聚类、协同过滤等,可以用于构建 各种机器学习模型。
Spark的机器学习算法可以处理大规模数据集,并且可以与Spark的DataFrame和SQL模块集成,实现 数据分析和特征提取的自动化。
Spark在实时流处理领域的应用
02
Spark的核心技术和特点
Spark的数据处理模型
Spark的分布式计算能力
• Spark具有强大的分布式计算能力,能够 处理大规模数据集。它通过将计算任务分 解为多个子任务,并在集群中的多个节点 上并行执行这些子任务,实现了高效的分 布式计算。此外,Spark还提供了丰富的 API和工具,使得开发人员可以轻松地编写 分布式程序。
2
Spark的创始团队由Matei Zaharia、Andy Konwinski、Patrick Wendell、Michael Armbrust和Others组成。
3
Spark的初衷是为了提供一个高效、通用的大数 据处理引擎,支持批处理、流处理、机器学习和 图计算等多种计算模式ark的应用场景和案例
Spark在大数据领域的应用
Spark在大数据领域的应用非常广泛, 它可以处理大规模数据集,并且可以在 内存中快速计算。这使得Spark成为大 数据处理领域的领先技术之一。
Spark可以用于数据清洗、数据转换、 数据聚合等多种数据处理任务,同时 还可以与Hadoop集成,实现大规模 数据的批处理和流处理。
AI和机器学习
Spark将继续加强在AI和机器学 习领域的应用,推动人工智能 技术的发展。
流处理和实时分析
Spark将进一步优化流处理和实 时分析功能,满足对实时数据 处理的需求。

spark技术方案

Spark技术方案1. 引言Spark是一个快速、通用、可扩展的大数据处理框架,可用于大规模数据处理、机器学习和数据分析等任务。

本文档将介绍Spark的技术方案,包括其特点、架构和使用场景等内容。

2. Spark的特点Spark具有如下几个显著的特点:2.1 快速性能Spark采用内存计算,通过将数据存储在内存中进行处理,大幅度减少了磁盘IO的开销,提高了数据处理的速度。

同时,Spark的计算模型基于DAG(有向无环图),可优化任务执行顺序,进一步提升性能。

2.2 通用性Spark支持多种编程语言,包括Java、Scala、Python和R等,使得开发人员能够使用自己熟悉的语言进行开发。

此外,Spark提供了丰富的API和库,可用于处理结构化数据、图数据和流式数据等不同类型的任务。

2.3 可扩展性Spark采用分布式计算的方式,可以在多台机器上进行任务的并行计算。

通过增加计算节点,可以实现对更大规模数据的处理,提高系统的扩展性。

3. Spark的架构Spark的架构分为三个主要组件:驱动器(Driver)、执行器(Executor)和集群管理器(Cluster Manager)。

3.1 驱动器驱动器是Spark程序的主要组成部分,负责整个应用程序的控制和调度。

它负责将任务划分为不同的阶段,并将这些阶段发送到执行器进行计算。

3.2 执行器执行器是在集群上运行的工作节点,负责接收来自驱动器的任务并执行计算。

每个执行器都具有自己的线程池,可以同时运行多个任务。

执行器还负责将计算结果返回给驱动器。

3.3 集群管理器集群管理器负责分配和管理集群资源,以确保Spark应用程序的顺利运行。

常用的集群管理器有Standalone、YARN和Mesos等。

集群管理器负责启动和停止执行器,并监控其状态。

4. Spark的使用场景Spark可以应用于多种大数据处理场景,包括以下几个方面:4.1 批处理Spark支持对大规模数据进行批处理,可以对数据进行转换、过滤和聚合等操作。

第2章Spark详细介绍


相关概念 1-1
• RDD是什么
– RDD全称为Resilient([rɪˈzɪljənt] 能复原的、有弹性的) Distributed([dɪ‘strɪbju:tɪd] 分布式) Datasets(数据集)。 – RDD是Spark最核心的模块和类,是Spark操纵数据的一个高度抽象,即Spark所操作的 数据集都是包装成RDD来进行操作的。
– Actions包括Collect、Reduce、Lookup和Save等操作。
• 另外各个处理节点之间的通信模型不再像Hadoop只有Shuffle一种模 式,用户可以命名、物化,控制中间结果的存储、分区等。
Spark四大组件 1
• Spark Streaming [ˈstri:mɪŋ] 。
• Spark Streaming是构建在Spark上的,基于微批量方式 的计算和处理,可以用于处理实时的流数据。 • 它支持高吞吐量、支持容错。 • 它使用DStream,简单来说就是一个弹性分布式数据集
– Executor:即真正执行作业的地方,一个集群一般包含多个Executor,每个 Executor接收Driver的命令Launch Task,一个Executor可以执行一到多个 Task。
相关概念 2-1
• DataFrame是什么
– DataFrame是一种以RDD为基础的分布式数据集,类似于传统数 据库中的二维表格。
相关概念 1-3
• RDD的核心组件 – Client:客户端进程,负责提交作业到Master。 – Master:Standalone模式中主控节点,负责接收Client提交的作业,管理 Worker,并命令Worker启动分配Driver的资源和启动Executor的资源。 – Worker:Standalone模式中slave节点上的守护进程,负责管理本节点的资 源,定期向Master 汇报心跳,接收Master的命令,启动Driver和Executor。 – Driver: 一个Spark作业运行时包括一个Driver进程,也是作业的主进程,负 责作业的解析、生成Stage并调度Task到Executor上。包括DAGScheduler, TaskScheduler。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

¡
很Cool的开发语言言
¡ 快速从Apache Incubator项目毕业成为
Apache顶级项目 ¡ 大大数据解决方方案提供商的支持
¡ 应用
§ 华为 / 星环科技 § 阿里//爱奇艺/优酷/京东… § Cloudera / MapR / Hortonworks / Pivotal / SAP …
¡ 其它各种上层模块都是基于Core的衍生生
§ RDD核心心思想在不同领域的拓展和定制化实现 § RDD数据模型的通用性和灵活性,从本质上决
定了它很容易被应用到各种具体的编程模型上
¡ 本质上是Micro-­‐batches RDDs的处理
§ 相比于小Batch的Hadoop Job,Task启动代价小,
Transformed RDD
results
Cache 1
Worker
Driver
tasks Block 1
Action
Cache 2
cachedMsgs.filter(_.contains(“foo”)).count cachedMsgs.filter(_.contains(“bar”)).count . . .
Data Analyst
User Application JDBC Service SQL API
Simple Catalog
CLI
Hive QL
Hive Meta Store
Simple SQL
Catalyst Spark Execution Operators Spark Core
n First released in Spark 1.0 (May, 2014) n Initial committed by Michael Armbrust &
¡ 丰富的应用场景
¡ 更加高高效和通用的编程模型
§ 相比MapReduce模型,更加适用于两种类型的
应用
▪ 迭代算法类(机器学习,图计算) ▪ 交互式数据挖掘
¡ 良好的用户体验
▪ 编程效率:基于Scala的核心心模块,提供Java/python编 程接口口 ▪ 功能强大大的API,丰富的操作算子子 ▪ 交互式的解释执行行接口口(调试,学习)
¡
§ Lineage记录的是粗颗粒度的数据变换操作行行为 § 当RDD的部分分区数据丢失时,它可以通过Lineage
信息重新运算和恢复丢失的数据分区。 § 这种粗颗粒的数据模型,限制了Spark的运用场合, 但同时相比细颗粒度的数据模型,也带来了性能的 提升。
RDDs maintain lineage information that can be used to reconstruct lost partitions Ex:
n Hive-­‐like interface(JDBC
Service / CLI) n Both Hive QL & Simple SQL dialects are Supported n DDL is 100% compatible with Hive Metastore n Hive QL aims to 100% compatible with Hive DML
Join…)操作转换为另一一个RDD § 源头的RDD的数据来源可以是外部存储,如 HDFS,也可以动态生生成 § 可以采用各种缓存方方式加速处理 § 容错, 数据本地性, 可扩展性
分布式运算环境下的数据容错模型往往是影响 整个系统的核心心机制之一一 ¡ 其它基于内存的类似计算框架系统采用细颗粒 度的数据备份或者LOG机制 ¡ RDD采用基于血血统关系(Lineage)的容错模型
¡
¡
很Cool的背景
§ 理论架构的先进性 § 性能 § 持续发展的动力力源泉
¡
很Cool的开发团队 很Cool的应用场景
¡
§ 活跃的社区 § 不至至于成为屠龙之技 § 开发效率 § 高高(zhuang)逼格的资本 lol
A:
B: G: groupBy D: map E: F:
Stage 1 partition Stage 3
Client
Step
Step
Step
Step
Step
Client
Step
Step
Step
Step
Step
¡ 计算模型固定 ¡ 每个MapReduce阶段之间需要落盘 ¡ 容错性好
Map
Reduce
Input
Map Map Reduce
Spark Introduction
蘑菇街 FST - 天火
¡ 分布式计算框架 ¡ 等等,关我什么事?
§ 太多的分布式计算框架
¡ 因为它很Cool ¡ 所以你不想Out?
¡
出身背景很Cool
§ UC Berkeley AMPLab实验室
¡
主要开发者很Cool
§ DataBricks § Intel / Yahoo / Cloudera § ETL、OLAP、机器学习、基因工工程 § scala
¡
应用场景很Cool 开发语言言很Cool
Base RDD
lines = spark.textFile(“hdfs://...”) errors = lines.filter(_.startsWith(“ERROR”)) messages = errors.map(_.split(‘\t’)(2)) cachedMsgs = messages.cache()
latency低 § 近实时(相比Storm)
▪ 默认200ms一一个批次
§ 吞吐率高高 § 相对于其它模块,最早在业界得到应用
§ 与普通RDD批处理统一一的编程模型 § 基于Lineage的容错模型 § 丰富的数据源
val conf = new SparkConf() val ssc = new StreamingContext(conf, Seconds(1)) val lines = ssc.textFileStream(args(1)) val words = lines.flatMap(_.split(" ")) val result = words.map(x => (x, 1)).reduceByKey(_ + _).collect() ssc.start()
Output
Dryad-­‐like DAGs Pipelines functions within a stage Cache-­‐aware work reuse & locality Partitioning-­‐aware to avoid shuffles
val conf = new SparkConf() val ハsc ハ= ハnew ハSparkContext(conf) val ハlines ハ ハ= ハsc.textFile(args(1)) val ハwords ハ= ハlines.fl゚atMap(_.split(" ")) val result = words.map(x ハ=> ハ(x, ハ1)).reduceByKey(_ + _).collect()
¡ 2014年大大数据领域最活跃的开源项目
¡ 分布式计算框架 ¡ 基于内存的调度和运算模型 ¡ 兼容Hadoop生生态环境
§ 数据存储格式 § Works with Hdfs/Yarn/Hive/Hbase/kaQa… etc. § 离线处理 / 实时计算 § SQL / 机器学习 / 图计算
Reynold Xin from Databricks
¡
MLlib 机器学习算法库:
§ Initial contribution from AMPLab, UC Berkeley § Shipped with Spark since version 0.8 (Sep 2013) § Dense § Sparse ( Since 1.0)
Stage 2
!
¡
¡
Resilient distributed datasets (RDDs)
/citation.cfm?id=2228301
§ 不可变的,按分区组织的数据对象 § 一一个RDD可以通过各种(map, filter, groupBy,
HDFS File filter (func = _.startsWith(...)) Filtered RDD map (func = _.split(...)) Mapped RDD
messages = textFile(...).filter(_.startsWith(“ERROR”)) Result = messages.map(_.split(‘\t’)(2))
Cache 3
Worker Worker
Block 3 Block 2
¡ 围绕RDD的概念,实现核心心运行行调度逻辑
§ Scheduler:作业和任务的调度管理 § BlockManager:RDD/Shuffle等数据块的管理 § RDD:各种RDD数据结构表达和算法实现 § Shuffle:管理Shuffle逻辑和相关数据流程 § NetWork:跨节点数据通讯相关 § Yarn: 基于Yarn的任务调度管理模块 § 其它…
相关文档
最新文档