大数据技术之Spark

news2024/9/27 5:58:29

第1章 Spark概述

1.1 什么是Spark

回顾:Hadoop主要解决,海量数据的存储和海量数据的分析计算。

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

Hadoop的Yarn框架比Spark框架诞生的晚,所以Spark自己也设计了一套资源调度框架。

区别

1、MR是基于磁盘,spark是基于内存

2、MR的task是进程

3、spark的task是线程,在executor进程里执行的线程。

4、MR在Container里执行(留有接口方便插入),spark在worker里执行(自己用,没有接口)。

5、MR适合做一次计算,Spark适合做迭代计算

1. 2 spark的使用场景

        离线、实时、机器学习、图计算

1.3 Hadoop与Spark框架对比

1.4 Spark内置模块

  • Spark Core实现了Spark的基本功能,包含任务调度、内存管理、错误恢复、与存储系统交互等模块。Spark Core中还包含了对弹性分布式数据集(Resilient Distributed DataSet,简称RDD)的API定义。

Spark SQL是Spark用来操作结构化数据的程序包。通过Spark SQL,我们可以使用 SQL或者Apache Hive版本的HQL来查询数据。Spark SQL支持多种数据源,比如Hive表、Parquet以及JSON等。

Spark Streaming是Spark提供的对实时数据进行流式计算的组件。提供了用来操作数据流的API,并且与Spark Core中的 RDD API高度对应。

Spark MLlib提供常见的机器学习功能的程序库。包括分类、回归、聚类、协同过滤等,还提供了模型评估、数据 导入等额外的支持功能。

Spark GraphX主要用于图形并行计算和图挖掘系统的组件。

集群管理器:Spark设计为可以高效地在一个计算节点到数千个计算节点之间伸缩计算。为了实现这样的要求,同时获得最大灵活性,Spark支持在各种集群管理器(Cluster Manager)上运行,包括Hadoop YARN、Apache Mesos,以及Spark自带的一个简易调度器,叫作独立调度器

1.5 Spark的特点


第2章 Spark运行模式

        部署Spark集群大体上分为两种模式:单机模式与集群模式

        大多数分布式框架都支持单机模式,方便开发者调试框架的运行环境。但是在生产环境中,并不会使用单机模式。因此,后续直接按照集群模式部署Spark集群。

下面详细列举了Spark目前支持的部署模式。

(1)Local模式:在本地部署单个Spark服务

(2)Standalone模式:Spark自带的任务调度模式。(国内常用)

(3)YARN模式:Spark使用Hadoop的YARN组件进行资源与任务调度。(国内最常用)

(4)Mesos模式:Spark使用Mesos平台进行资源与任务的调度。(国内很少用)

2.1 Local模式

1、local模式: 单机安装,解压即可用
        1、任务提交: bin/spark-submit --master loca/local[*]/local[N] --class xx.xx.x.x xx.jar 参数 ...
            master=local: 使用单个线程模拟执行,同一时间只能执行一个task.
            master=local[*]: 使用cpu个数个线程模拟执行,同一时间只能执行cpu个数个task.
            master=local[N]: 使用N个线程模拟执行,同一时间只能执行N个task.

2.1.1 安装使用

后续更新

2.2 集群角色

1、MasterWorker集群资源管理
Master: 负责资源管理与分配
Worker: 资源节点与任务执行节点
Master与Worker是随着集群的启动而启动,随着集群的停止而消失。
Master与Worker只有standalone模式才有。

Master和Worker是Spark的守护进程、集群资源管理者,即Spark在特定模式(Standalone)下正常运行必须要有的后台常驻进程


2、Driver与executor
Driver的职责:
                    1、负责将代码转成job
                    2、负责将task提交到executor中执行
                    3、负责监控task的执行情况
                    4、负责程序运行过程中web ui界面展示
Executor: 任务执行进程


spark执行的是task,task是线程,是启动在executor中的线程
Driver与executor是随着任务的提交而启动,随着任务的完成而消失。

2.3 Standalone模式

2.3.1 安装使用

任务提交: bin/spark-submit --master spark://master主机名:7077,... --class 全类名 jar包所在位置 参数值 ...

后续更新

2.3.2 运行流程

Spark有standalone-client和standalone-cluster两种模式,主要区别在于:Driver程序的运行节点。

1. 客户端模式

[hadoop102 spark-standalone]$ bin/spark-submit --master spark://hadoop102:7077,hadoop103:7077 --deploy-mode client --executor-memory 2G--total-executor-cores 2  --class org.apache.spark.examples.SparkPi  ./examples/jars/spark-examples_2.12-3.1.3.jar

10

--deploy-mode client,表示Driver程序运行在本地客户端,默认模式。

2. 集群模式模式

[hadoop102 spark-standalone]$ bin/spark-submit --master spark://hadoop102:7077,hadoop103:7077 --deploy-mode cluster --executor-memory 2G--total-executor-cores 2  --class org.apache.spark.examples.SparkPi  ./examples/jars/spark-examples_2.12-3.1.3.jar

10

--deploy-mode cluster,表示Driver程序运行在集群。

 standalone的client与cluster部署模式的区别
        client模式: Driver在SparkSubmit进程中,此时该进程不能关闭,关闭之后Driver消失无法进行任务调度,程序会终止。
        cluster模式: Driver在任意一个Worker中,此时SparkSubmit关闭不影响程序执行

2.4 Yarn模式

Spark客户端直接连接Yarn,不需要额外构建Spark集群。使用yarn作为资源调度器。

2.4.1 安装使用

任务提交: bin/spark-submit --master yarn --class 全类名 jar包所在位置 参数值 ...

待更新

2.4.2 运行流程

Spark有yarn-client和yarn-cluster两种模式,主要区别在于:Driver程序的运行节点。

yarn-client:Driver程序运行在客户端,适用于交互、调试,希望立即看到app的输出。

yarn-cluster:Driver程序运行在由ResourceManager启动的APPMaster,适用于生产环境。

1. 客户端模式(默认)

[hadoop102 spark-yarn]$ bin/spark-submit --master yarn --deploy-mode client --class org.apache.spark.examples.SparkPi ./examples/jars/spark-examples_2.12-3.1.3.jar

10

2. 集群模式

[hadoop102 spark-yarn]$ bin/spark-submit --master yarn --deploy-mode cluster --class org.apache.spark.examples.SparkPi ./examples/jars/spark-examples_2.12-3.1.3.jar

10

 

yarn的client与cluster部署模式的区别
        client模式: Driver在SparkSubmit进程中,此时该进程不能关闭,关闭之后Driver消失无法进行任务调度,程序会终止。
        cluster模式: Driver在ApplicationMaster进程中,此时SparkSubmit关闭不影响程序执行。

2.5 几种模式对比

模式

Spark安装机器数

需启动的进程

所属者

Local

1

Spark

Standalone

3

MasterWorker

Spark

Yarn

1

YarnHDFS

Hadoop

2.7 端口号总结

1)Spark查看当前Spark-shell运行任务情况端口号:4040

2)Spark Master内部通信服务端口号:7077    (类比于yarn的8032(RMNM的内部通信)端口)

3)Spark Standalone模式Master Web端口号:8080(类比于Hadoop YARN任务运行情况查看端口号:8088)    (yarn模式)  8989

4)Spark历史服务器端口号:18080           (类比于Hadoop历史服务器端口号:19888)

2.8 spark-submit常用参数

--master 指定任务提交到哪个资源调度器中
--executor-memory 指定每个executor的内存大小
--executor-cores 指定每个executor的cpu核数
--total-executor-cores 指定所有executor的cpu总核数[仅限于standalone模式使用]
--num-executors 指定任务需要的executor个数[仅限于yarn模式使用]
--queue 指定任务提交到哪个资源队列中[仅限于yarn模式使用]
--deploy-mode 指定任务的部署模式[client/cluster]
--driver-memory 指定driver的内存大小
--class 指定待运行的带有main方法object的全类名

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/430281.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

30天学会《Streamlit》(1)

30学会《Streamlit》是一项编码挑战,旨在帮助您开始构建Streamlit应用程序。特别是,您将能够: 为构建Streamlit应用程序设置编码环境 构建您的第一个Streamlit应用程序 了解用于Streamlit应用程序的所有很棒的输入/输出小部件 第1天 - 建立…

Java面向对象高级【注解和反射】

目录 注解 什么是注解? 自定义注解 元注解 反射 什么是反射 静态语言和动态语言 动态语言 静态语言 对比 Class类 Java内存分析 类加载过程 类加载器 获取运行时类的完整结构 通过Class对象实例化对象 1.调用Class对象的newInstance 2.Constructor…

保姆级教程!如何在 Anolis 8 上构建基于 Nydus 和 Dragonfly 的镜像加速解决方案?

文/云原生 SIG 01 背景 镜像是容器技术的基础之一,在云原生场景下,业务的正常运作离不开对镜像的制作、分发和运行。当前的镜像在使用的过程中,需要将镜像从仓库中全量拉取到本地,再由容器 engine 进行解压,堆叠挂载…

【JUC进阶】详解synchronized锁升级

文章目录 1. synchronized概述2. synchronized 的实现原理2.1 Java对象组成2.2 Monitor2.3 从字节码角度看synchronized 3. 锁升级3.1 偏向锁3.2 轻量级锁 1. synchronized概述 synchronized是一个悲观锁,可以实现线程同步,在多线程的环境下&#xff0c…

信盈达CorexM4核心板STM32F407VGT6电路原理图\电源原理图\USB的工作原理\miniUSB的分类

一、电源部分电路 Micro_USB插座中的5V与GND就是直接提供VCC与GND,其中的D与D-是接在CH340芯片上的实现串口通信的数据口。 电源VCC通过一个自恢复保险丝接在一个自锁开关上,这样就分析完一个miniUSB的提供电源的原理图了。 在原理图的右上角有一个AMS1117-3.3的器件…

RabbitMQ 高级篇 | 黑马

一、消息可靠投递 生产端的 在使用 RabbitMQ的时候,作为消息发送方希望杜绝任何消息丢失或者投递失败场景。 RabbitMQ 为我们提供了两种方式用来控制消息的投递可靠性模式。 confirm 确认模式return 退回模式 rabbitmq整个消息投递的路径为: producer--->ra…

HCIP-6.6BGP配置中IGP路由表和BGP路由表、IP路由表关系

BGP配置中IGP路由表和BGP路由表、IP路由表关系1、基础配置2、配置建立IBGP对等体3、配置EBGP对等体4、使用network命令宣告路由5、路由的学习5.1、R2的路由表5.2、R1的BGP路由表5.3、R3的BGP路由表5.4、R5的BGP路由表6、AS200与AS100通信6.1、AS200出接口注入AS100IP路由表6.2、…

Go 汇编详解

动手点关注干货不迷路前言我们知道 Go 语言的三位领导者中有两位来自 Plan 9 项目,这直接导致了 Go 语言的汇编采用了比较有个性的 Plan 9 风格。不过,我们不能因咽废食而放弃无所不能的汇编。1、 Go 汇编基础知识1.1、通用寄存器不同体系结构的 CPU&…

【Docker】使用Docker Compose部署项目

目录 前言 使用 前言 如果你部署项目需要很多个容器, 并且还是在手动一个一个启动的话来试试Docker Compose, 只需要写好Docker Compose文件运行命令就能帮你一次性全启动, 对微服务很友好啊~ 使用 运行以下命令查看是否有版本号, 确保你已经安装了Docker Compose docker…

使用sealos工具部署k8s

为什么使用sealos工具:简单、快、完全兼容 k8s、给100年认证 sealos使用最新版本: 官网:https://www.sealyun.com/ 码:https://github.com/labring/sealos 官方介绍什么是sealos Sealos 是以 kubernetes 为内核的云操作系统发行版…

精彩回顾|4.8 Beijing Rust Meetup

2023年4月8日,达坦科技联合南京大学、CloudWeGo、华为等技术专家成功举办了题为Rust X的meetup。开发者们不仅线下积极报名参与,更在线上直播中踊跃参与互动,一起探讨Rust作为一种强调性能、安全和并发性的编程语言的各种应用和实践。演讲者与…

从EXCEL BOM 描述中提取部分信息---正则表达式使用

从EXCEL BOM描述中提取关键的信息,用于建库填写内容,或者检查BOM等都会用到,如下大概通过两种方式实现信息的提取 1.手动Excel中提取 2.将如上1的方式用python实现,可以实现批量操作,减少操作带来的错误,…

[网络安全]第三次作业

目录 1. 什么是IDS? 2. IDS和防火墙有什么不同? 3. IDS工作原理? 4. IDS的主要检测方法有哪些详细说明? 5. IDS的部署方式有哪些? 6. IDS的签名是什么意思?签名过滤器有什么作用?例外签名…

温故c语言——深度剖析数据在内存中的存储

目录 数据类型详细介绍整形在内存中的存储:原码、反码、补码大小端字节序介绍及判断浮点型在内存中的存储解析 1. 数据类型介绍 基本内置数据类型有: //在内存中占用空间的大小 char //字符数据类型 占用1个字节 short //短整型 占用2个…

linux及openEuler破解root密码

第一步:开机的时候按键盘的字母 E 键, 进入引导模式 第二步:进入引导模式 :找到linux这一行,按键盘上的end 键,跳转到行尾,输入: init/bin/sh 修改完后,按键盘上的 ctr…

电脑开机出现英文字母开不了机U盘重装系统教学

电脑开机出现英文字母开不了机U盘重装系统教学。有用户电脑开机之后出现了错误代码字母,无法正常的开机了。遇到这个问题要怎么去进行系统的重新安装呢?一起来看看以下的具体解决方法教学吧。 准备工作: 1、U盘一个(尽量使用8G以上…

基于LS1028 TSN时间敏感网络交换机方案(一)TSN介绍

2.1 时间敏感网络介绍 时间敏感网络小组的前身是 AVB ,即以太网音视频桥接技术( Ethernet Audio/Video Bridging, 简称 Ethernet AVB ) [10] 。它在传统以太网络的基础上,通过 精确时钟同步、预留带宽、流量整形&#xff0…

Spring和IDEA都不推荐用的@Autowired注解,为什么还有那么多人用?

Autowired的默认装配 我们都知道在spring中Autowired注解,是用来自动装配对象的。通常,我们在项目中是这样用的: package com.sue.cache.service;import org.springframework.stereotype.Service;Service public class TestService1 {publ…

今天面了个京东拿 38K 出来的,让我见识到了基础的天花板

今年的春招已经开始了,很多小伙伴收获不错,拿到了心仪的 offer。 各大论坛和社区里也看见不少小伙伴慷慨地分享了常见的软件测试面试题和八股文,为此咱这里也统一做一次大整理和大归类,这也算是划重点了。 俗话说得好&#xff0…

ChatGPT接入Siri(保姆级教程)

ChatGPT接入Siri(保姆级教程)第一步:获取OpenAPI的Key第二步:制作快捷指令今天,我将为大家分享如何将GPT应用集成到苹果手机的Siri中(当然手机是需要魔法(TZ)的) 第一步…