spark

本文概述了Spark与MapReduce的区别,包括内存计算、线程模型、编程语言支持以及它们的计算流程。介绍了Spark的高效性、易用性和通用性特点,以及Spark的YARN资源调度和部署选项,如本地模式、集群模式和云服务。
摘要由CSDN通过智能技术生成

 第一周3月1日

  1. 区分spark和mapreduce
  2. Mapreduce计算流程
  3. Spark特征
  4. 装环境

一、区分spark和mapreduce

  1. spark是一个分布式的计算框架,和mapreduce作用一样,都是用于数据的计算。

集群(划龙舟,多个人做相同的事情)  分布式(汉堡,多个人做不同的事情) 

  1. Spark和mapreduce区别:

   Spark基于内存的计算,会将中间结果放到内存中;mapreduce基于磁盘的,内存>磁盘,spark速度大于mapreduce。

   Spark基于线程来完成计算的; mapreduce(map+reduce)基于进程来完成计算的,线程切换任务要比进程快,spark(多步)>mapreduce(2步)

  1. spark用scala语言来编写的,mapreduce HDFS java语言开发的。Scala基于java的派生语言,在一定程度上优于java语言的。
  2. spark基于apach基金会下的项目,开源 apach.org

二、mapreduce的计算流程

当我们使用mapreduce进行计算任务,首先会将计算任务提交给yarn进行资源调度;

在yarn中使用ResourceManager这个主服务,ResourceManager接收到以后会随机找到一个NodeManager,创建一个container容器,congtainer就是资源空间,在容器上运行一个ApplicationMaster的进程,该进程用于管理计算任务。

ApplicationMaster创建之后会和ResourceManager保持通信,同时向ResourceManager申请资源;

资源申请成功后,找到NodeManager创建container资源空间运行map进程,map获取HDFS上存储的文件数据,进行计算处理。

Map处理完成后,会继续进行reduce进程计算,最终将最终的数据保存在HDFS上。

三、spark特性

高效性:计算速度快(基于内存+线程)

易用性:支持多种语言开发的(java  python  scala  r)

通用性:支持多种计算方式

(sql计算(离线计算)   图计算    机器学习计算  流式数据计算(实时数据仓的计算)  )

        支持多种开发方式

(交互式方式     脚本式方式 )

兼容性:

支持第三方工具的接入:

存储工具:HDFS   Hbase  kafaka

资源调度:yarn   standalone

支持多种操作系统:linux   windows  mac

四、spark架构

第一层叫做工具层:主要让大家了解使用什么工具来操作spark,都是操作spark的工具。

第二层叫做核心计算层:RDD执行计算,所有上边的工具都是用RDD来进行计算的。

第三层叫做资源调度层:yarn或者使用spark自带的standalone都可以,除了资源调度还有一层叫做存储层,实现的数据的读取和写入,可以写入或者读取到hdfs hbase kafaka中。

五、spark部署

1.本地模式部署(local 单机模式部署)

使用一台服务器进行部署;只有一个进程,通过内部的多个线程模拟spark的运行环境。

一个进程mapreduce(map+reduce线程?no)

2.集群模式部署:standalone   yarn  云服务

集群使用多台服务器

多台服务器需要统一的管理,使用资源调度服务(yarn  standalone)

3.云服务

阿里云  腾讯云 谷歌云 亚马逊等等   

云服务的隐私?数据放到本地,需要计算云服务计算,再把数据放到本地。

六、spark的架构角色

Yarn的角色—4类角色

资源管理层面:

集群资源的管理者—ResourceManager

单机资源的管理者—NodeManager

ResourceManager是集群资源的管理者,管理的是整个集群的资源。

NodeManager是管理的单机资源—当前服务器资源的管理者,管一个机器。

他们两个一块管理整个集群的资源,多个NodeManager把多个机器的资源都管理起来,他们统一去向ResourceManager汇报,这样资源管理就是一个ResourceManager配合多个NodeManager完成了。

任务计算层面:

单计算任务管理者:ApplicationMaster

单计算任务执行者:Task

Yarn最终要实现的功能就是计算,ApplicationMaster就是计算任务的管家,Task就是计算任务的工人。

Spark角色

我们之所以学习yarn就是为了对比yarn来学习spark

Spark的角色:

资源层面:

集群资源的管理者—Master

单机资源的管理者—worker

任务计算层面:

单任务管理者:Driver

单任务执行者:Executor

注意,正常情况下Executor就是干活的,但是在特殊情况下(local模式)Driver既作为管理者,又作为工人,local模式是单一模式,只有一个进程。

一个进程

Mapreduce:一个进程  无线程(map+reduce)

Spark:一个进程 多线程

第二周3月8日

一、定义两个整数相加的代码

二、调用类中的方法

三、匿名函数

四、使用匿名函数作为参数的高阶函数

五、定义函数识别手机号码段

六、if判断示例

七、for循环嵌套if判断示例

八、for...yield示例

第五周3月29日

一、P47第二章实训一 

二、P48第二章实训二

1.九九乘法表

二、水仙花数

三、P50第二章操作题

四、第二章思维导图

ProcessOn MindmapProcessOn是一个在线协作绘图平台,为用户提供强大、易用的作图工具!支持在线创作流程图、思维导图、组织结构图、网络拓扑图、BPMN、UML图、UI界面原型设计、iOS界面原型设计等。同时依托于互联网实现了人与人之间的实时协作和共享。icon-default.png?t=N7T8https://www.processon.com/mindmap/65fcddd443192b2dea15dc38

第九周4月26日

P85第三章操作题

P82实训1

P82实训2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值