Spark 之 Spark框架及部署


前言

   本文简单介绍有关Spark的框架、应用Spark实现WordCount案例以及Spark的部署的相关知识。


Spark 知识系列文章

   此处罗列了有关Spark相关知识的其他文章,有需要的可以进行点击查阅。

   Spark 之Spark三大数据结构

   Spark 之 RDD转换算子

   Spark 之 RDD行动算子

   Spark 之 SparkSQL

   Spark 之 SparkStreaming

一、Spark框架

   Spark是一种基于内存的快速、通用、可拓展的大数据分析引擎;

在这里插入图片描述

1.1 Driver

   Spark的驱动器是执行开发程序中的main方法的进程。它负责开发人员编写的,用来创建SparkContext、创建RDD,以及进行RDD的转化操作和行动操作代码的执行

主要负责:

(1)把用户程序转为作业(JOB)

(2)跟踪Executor的运行状况

(3)为执行器节点调度任务

(4)UI展示应用运行状况

1.2 Executor

   Spark Executor是一个工作进程,负责在 Spark 作业中运行任务,任务间相互独立。Spark 应用启动时,Executor节点被同时启动,并且始终伴随着整个 Spark 应用的生命周期而存在。如果有Executor节点发生了故障或崩溃,Spark 应用也可以继续执行,会将出错节点上的任务调度到其他Executor节点上继续运行。

主要负责:

(1)负责运行组成 Spark 应用的任务,并将结果返回给驱动器进程;

(2)通过自身的块管理器(Block Manager)为用户程序中要求缓存的RDD提供内存式存储。RDD是直接缓存在Executor进程内的,因此任务可以在运行时充分利用缓存数据加速运算。

   所有的RDD算子的计算功能都由Executor执行

二、WordCount案例

2.1 案例结构图

在这里插入图片描述
实现WordCount案例的步骤:

(1)按行读入数据文件;

(2)通过flatMap将数据扁平化,转化为一个一个的单词;

(3)通过Map将一个个单词转化为KV形式;

(4)根据单词的不同,进行分组聚合

2.2 WordCount代码实现

代码如下:

sc. textFile("input"). flatMap(_.split(" ")). map((_,1)). reduceByKey(_+_).collect
//代码注解
textFile("input"):读取本地文件input文件夹数据;
flatMap(_.split(" ")):压平操作,按照空格分割符将一行数据映射成单词;
map((_,1)):对每一个元素操作,将单词映射为元组;
reduceByKey(_+_):按照key将值进行聚合,两两相加;
collect:将数据收集到Driver端展示。

三、Spark的三种部署模式

3.1 Local模式

  运行在一台计算机上的模式;

  Local 所有的操作在一个线程上执行,没有任何的并行计算;

  Local [k] 指定使用几个线程来进行计算;

  Local [*] 按照CPU最多的核来设置线程数

3.2 StandAlone模式

  构建一个由Master+Slave构成的Spark集群,Spark运行在集群中。

3.3 Yarn模式(*)

在这里插入图片描述
具体步骤:

(1)客户端向Yarn集群提交任务;

(2)集群中的RM(ResourceManager)会分配Container资源并让NM(NodeManager)启动AM(ApplicationMaster);

(3)AM向RM进行反向注册(图中未画出),并申请资源用来启动Exexutor;

(4)RM返回资源列表,以Container的形式;

(5)AM要求对应的NM启动Executor;

(6)对应的NM进行反向注册,表示启动成功;

(7)RM分解任务,并向NM发送任务;


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值