【Spark】Day01-入门、模块组成、4种运行模式详解及配置、案例实操(spark分析过程)
一、概述
1、概念
基于内存的大数据分析计算引擎
2、特点
快速、通用、可融合性
3、Spark内置模块【腾讯8000台spark集群】
Spark运行在集群管理器(Cluster Manager)上,支持3种集群管理器:Yarn、Standalone(脱机,Spark自带)、Apache Mesos(国外)

Spark Core:基本功能(任务调度、内存管理、错误恢复、与存储系统交互)、弹性Resilient 分布式数据集RDD的API
Spark SQl:操作结构化数据的程序包,数据查询,并支持多种数据源(Hive 表、Parquet 以及 JSON 等)
Spark Streaming:流式计算,提供用来操作数据流的 API,与Core中的RDD API高度对应
Spark MLlib:机器学习库,以及模型评估、数据导入等功能
Spark GraphX :图计算和挖掘
二、Spark运行模式:单机模式与集群模式
1、概念
(1)分类
Local、Standalone(自带的任务调度)、YARN、Mesos
(2)核心概念
|
Term |
Meaning |
|
Application |
User program built on Spark. Consists of a driver program and executors on the cluster. (构建于 Spark 之上的应用程序. 包含驱动程序和运行在集群上的执行器) |
|
Driver program 驱动程序 |
负责把并行操作发布到集群上,SparkContext对象相当于一个到 Spark 集群的连接(直接与工作节点相连,并受集群管理器的管理) |
|
Cluster manager 集群管理器 |
An external service for acquiring resources on the cluster (e.g. standalone manager, Mesos, YARN) |
|
Deploy mode 运行模式 |
Distinguishes where the driver process runs. In “cluster” mode, the framework launches the driver inside of the cluster. In “client” mode, the submitter launches the driver outside of the cluster. |
|
Worker node |
特有资源调度系统的 Slave,类似于 Yarn 框架中的 NodeManager,功能包括:注册到maser、发送心跳、执行task |
|
Executor 执行器 |
执行计算和为应用程序存储数据,SparkContext对象发送程序代码以及任务到执行器开始执行程序 |
|
Task |
A unit of work that will be sent to one executor |
|
Job |
A parallel computation consisting of multiple tasks that gets spawned in response to a Spark action (e.g. save, collect); you’ll see this term used in the driver’s logs. |
|
Stage |
Each job gets divided into smaller sets of tasks called stages that depend on each other (similar to the map and reduce stages in MapReduce); you’ll see this term used in the driver’s logs. |
2、Local模式
(1)使用方式
发布应用程序
./bin/spark-submit \
--class <main-class> \
--master <master-url> \
--deploy-mode <deploy-mode> \
--conf <key>=<value> \
... # other options
<application-jar> \
[application-arguments]
使用run-examples来运行:bin/run-example SparkPi 100
使用shell:bin/spark-shell(可以通过web查看运行情况)
(2)提交流程

(3)数据流程

3、Standalone模式
(1)工作模式图解
由master管理

(2)配置
由 Master + Slave 构成的 Spark 集群
修改 slaves 文件,分发启动sbin/start-all.sh
查看集群运行情况:http://hadoop201:8080
运行计算程序bin/spark-submit
启动 Spark-shell:bin/spark-shell --master xxxx
(3)配置Spark任务历史服务器
spark-defaults.conf配置文件中,允许记录日志
spark-env.sh中配置历史服务器端口和日志在hdfs上的目录
分发配置,启动hdfs
启动历史服务器sbin/start-history-server.sh
启动任务并查看
(4)HA 配置(为 Mater 配置)
master单一,存在单点故障问题
方式:启动多个,包含active状态和standby状态
spark-env.sh添加zk配置,移除原有master
分发启动zk,启动全部节点sbin/start-all.sh
杀死master进程,在8080端口查看master的状态
重新启动sbin/start-master.sh
4、Yarn模式:客户端直接连接yarn,无需额外构建spark集群
(1)概述
client 和 cluster 两种模式,区别在于:Driver 程序的运行节点不同
cluster:Driver程序运行在由 RM(ResourceManager)启动的 AM(AplicationMaster)
由RM管理

(2)Yarn模式配置
修改yarn-site.xml,避免杀死nm进程
修改spark-evn.sh,去掉 master 的 HA 配置
执行程序并在8088端口进行查看
在spark-default.conf中配置历史服务器
5、Mesos 模式:客户端直接连接 Mesos;不需要额外构建 Spark 集群
6、比较
|
模式 |
Spark安装机器数 |
需启动的进程 |
所属者 |
|
Local |
1 |
无 |
Spark |
|
Standalone |
多台 |
Master及Worker |
Spark |
|
Yarn |
1 |
Yarn及HDFS |
Hadoop |
三、WordCount案例实操
1、概述
利用 Maven 来管理 jar 包的依赖
2、步骤
创建 maven 项目, 导入依赖
编写 WordCount 程序(创建WordCount.scala)
3、测试
(1)打包到 Linux 测试
bin/spark-submit --class day01.WordCount --master yarn input/spark_test-1.0-SNAPSHOT.jar
查询结果
hadoop fs -cat /output/*
(2)idea 本地直接提交应用(使用local模式执行)
package day01
import org.apache.spark.{SparkConf, SparkContext}
object WordCount {
def main(args: Array[String]): Unit = {
// 1. 创建 SparkConf对象, 并设置 App名字, 并设置为 local 模式
val conf: SparkConf = new SparkConf().setAppName("WordCount").setMaster("local[*]")
// 2. 创建SparkContext对象
val sc = new SparkContext(conf)
// 3. 使用sc创建RDD并执行相应的transformation和action
val wordAndCount: Array[(String, Int)] = sc.textFile(ClassLoader.getSystemResource("words.txt").getPath)
.flatMap(_.split(" "))
.map((_, 1))
.reduceByKey(_ + _)
.collect()
wordAndCount.foreach(println)
// 4. 关闭连接
sc.stop()
}
}
【Spark】Day01-入门、模块组成、4种运行模式详解及配置、案例实操(spark分析过程)的更多相关文章
- ST MCU_GPIO的八种工作模式详解。
补充: N.P型的区别,就是一个为正电压启动(NMOS),一个为负电压启动(PMOS) GPIO的八种工作模式详解 浮空输入_IN_FLOATING带上拉输入_IPU带下拉输入_IPD模拟输入_AIN ...
- Spark的 运行模式详解
Spark的运行模式是多种多样的,那么在这篇博客中谈一下Spark的运行模式 一:Spark On Local 此种模式下,我们只需要在安装Spark时不进行hadoop和Yarn的环境配置,只要将S ...
- Android Activity的4种启动模式详解(示例)
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/5233269.html 先介绍下Android对Activity的管理,Android采用Task来管理多个A ...
- apache两种工作模式详解
prefork模式 这个多路处理模块(MPM)实现了一个非线程型的.预派生的web服务器,它的工作方式类似于Apache 1.3.它适合于没有线程安全库,需要避免线程兼容性问题的系统.它是要求将每个请 ...
- vmware虚拟机三种网络模式详解_转
原文来自http://note.youdao.com/share/web/file.html?id=236896997b6ffbaa8e0d92eacd13abbf&type=note 由于L ...
- Vmware虚拟机三种网络模式详解
原文来自http://note.youdao.com/share/web/file.html?id=236896997b6ffbaa8e0d92eacd13abbf&type=note 我怕链 ...
- 四、Vmware虚拟机三种网络模式详解
转载自: http://note.youdao.com/share/web/file.html?id=236896997b6ffbaa8e0d92eacd13abbf&type=note 1. ...
- 【转】VMware虚拟机三种网络模式详解
由于Linux目前很热门,越来越多的人在学习Linux,但是买一台服务放家里来学习,实在是很浪费.那么如何解决这个问题?虚拟机软件是很好的选择,常用的虚拟机软件有VMware Workstations ...
- Vmware虚拟机三种网络模式详解(转)
原文来自http://note.youdao.com/share/web/file.html?id=236896997b6ffbaa8e0d92eacd13abbf&type=note 我怕链 ...
- Vmware虚拟机三种网卡模式详解
由于Linux目前很热门,越来越多的人在学习linux,但是买一台服务放家里来学习,实在是很浪费.那么如何解决这个问题?虚拟机软件是很好的选择,常用的虚拟机软件有vmware workstations ...
随机推荐
- harbor官方关于创建https的有关命令
官方地址:https://goharbor.io/docs/2.0.0/install-config/configure-https/ 命令总结: openssl genrsa -out ca.key ...
- Spring Boot 使用 Micrometer 集成 Prometheus 监控 Java 应用性能
转载自:https://cloud.tencent.com/developer/article/1508319 文章目录1.Micrometer 介绍2.环境.软件准备3.Spring Boot 工程 ...
- DP 优化小技巧
收录一些比较冷门的 DP 优化方法. 1. 树上依赖性背包 树上依赖性背包形如在树上选出若干个物品做背包问题,满足这些物品连通.由于 01 背包,多重背包和完全背包均可以在 \(\mathcal{O} ...
- 用深度强化学习玩FlappyBird
摘要:学习玩游戏一直是当今AI研究的热门话题之一.使用博弈论/搜索算法来解决这些问题需要特别地进行周密的特性定义,使得其扩展性不强.使用深度学习算法训练的卷积神经网络模型(CNN)自提出以来在图像处理 ...
- HDU3001 Travelling (状压DP)
题目没有起点限制,且每个节点至少访问1次,最多访问2次,所以用三进制数表示节点的状态(选取情况). 因为三进制数的每一位是0或1或2,所以预处理z状态S的第j位的数是有必要的. 边界条件:dp[tri ...
- vulnhub靶场之JANGOW: 1.0.1
准备: 攻击机:虚拟机kali.本机win10. 靶机:JANGOW: 1.0.1,地址我这里设置的桥接,,下载地址:https://download.vulnhub.com/jangow/jango ...
- uni-app 如何优雅的使用权限认证并对本地文件上下起手
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 1.起因 最近有一个需求,需要使用自定义插件,来对接硬件功能,需要配合对手机的权限进行判断和提示,并在对接后对本地文件进行操作,这里给大家 ...
- sentinel的四种流控规则介绍
sentinel的四种流控规则介绍 今天的内容我们主要围绕四个点进行展开介绍. 流控模式 :关联.链路 流控效果 :Warm Up.排队等待 这四点具体是什么意思呢? 首先启动项目:cloud-ali ...
- AI之强化学习、无监督学习、半监督学习和对抗学习
1.强化学习 @ 目录 1.强化学习 1.1 强化学习原理 1.2 强化学习与监督学习 2.无监督学习 3.半监督学习 4.对抗学习 强化学习(英语:Reinforcement Learning,简称 ...
- Unity——射线检测(鼠标点击开关门效果)
Unity射线检测--实现简单的开关门效果 简要:通过鼠标点击来发射一条射线,来获得射线所碰到的物体名称,再通过改变门的Rotation值来实现开关门的效果. 一.代码实现 1.1 简易的场景搭建 注 ...