【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 ...
随机推荐
- 修改 Docker容器 自动启动/不自动启动,挂载路径,存储位置
有时候创建容器时忘了添加参数 --restart=always,当 Docker 重启时,容器未能自动启动, 现在要添加该参数怎么办呢,方法有二: 1.Docker 命令修改 docker conta ...
- CentOS7内置Realtek网卡驱动r8169降级r8168
前几天装了几台服务器测试,在使用的过程中发现,每次重启系统,登录界面会弹出网卡提示 "r8169 0000:02:00 eth0 Invalid ocp reg 17758!" ...
- 18-基于CentOS7搭建RabbitMQ3.10.7集群镜像队列+HaProxy+Keepalived高可用架构
集群架构 虚拟机规划 IP hostname 节点说明 端口 控制台地址 192.168.247.150 rabbitmq.master rabbitmq master 5672 http://192 ...
- PHP全栈开发(七):PHP与MySQL存储交互(2.插入、读取)
<?php $servername = "localhost"; $username = "root"; $password = "beijin ...
- C++面向对象编程之类的写法
1.头文件中的防卫式声明 例如自己要建复数complex类,可以建立一个complex.h的头文件. 头文件中必须先写防卫式声明: #ifndef __COMPLEX__ #define __COMP ...
- 带你认识JDK8中超nice的Native Memory Tracking
摘要:从 OpenJDK8 起有了一个很 nice 的虚拟机内部功能: Native Memory Tracking (NMT). 本文分享自华为云社区<Native Memory Tracki ...
- JVM内存结构模型
- 手写自定义springboot-starter,感受框架的魅力和原理
一.前言 Springboot的自动配置原理,面试中经常问到,一直看也记不住,不如手写一个starter,加深一下记忆. 看了之后发现大部分的starter都是这个原理,实践才会记忆深刻. 核心思想: ...
- File常用的方法操作、在磁盘上创建File、获取指定目录下的所有文件、File文件的重命名、将数据写入File文件
文章目录 1.基本介绍 2.构造方法 3.常用的方法 4.代码实例 4.1 创建文件和目录(目录不存在) 4.1.1 代码 4.1.2 测试结果 4.2 测试目录存在的情况.直接写绝对的路径名 4.2 ...
- 齐博x1如何调试查找全站的表单提交接口参数
H5.PC.WAP端的所有提交POST表单操作都是可以当作接口来用的. 比如我们通过PC或WAP浏览器打开相应要修改的界面,然后浏览器进入开发者模式,就可以追踪到所提交的变量参数.你在APP里边只要指 ...