Day9-SparkCore学习(一)

大数据—— Spark Core 知识点整理 1. Spark 和 Hadoop 相比有什么优势 运行速度快: Spark拥有DAG执行引擎,支持在内存中对数据进行迭代计算。官方提供的数据表明,如果数据由磁盘读取,速度是Hadoop MapReduce的10倍以上,如果数据从内存中读取,速度可以高达100多倍。 适用场景广泛: 大数据分析统计,实时数据处理,图计算及机器学习 易用性: 编写简单,支持80种以上的高级算子,支持多种语言,数据源丰富,可部署在多种集群中 容错性高: ... 阅读详情

SparkCore学习(一)

一 .Spark概述
二.Spark运行模式



前言

在这里插入图片描述

在数据计算层,作为Hadoop核心组成的MapReduce可以结合Hive通过类SQL的方式进行数据的离线计算(当然也可以编写独立的MapReduce应用程序进行计算);而Spark既可以做离线计算(Spark SQL),又可以做实时计算(Spark Streaming),它们底层都使用的是Spark的核心(Spark Core)。


一、Spark概述

Apache Spark是一个快速通用的集群计算系统,是一种与Hadoop相似的开源集群计算环境,但是Spark在一些工作负载方面表现得更加优越。它提供了Java、Scala、Python和R的高级API,以及一个支持通用的执行图计算的优化引擎。它还支持高级工具,包括使用SQL进行结构化数据处理的Spark SQL、用于机器学习的MLlib、用于图处理的GraphX,以及用于实时流处理的Spark Streaming。
Spark的主要特点

  • 快速

​ MapReduce主要包括Map和Reduce两种操作,且将多个任务的中间结果存储于HDFS中。与MapReduce相比,Spark可以支持包括Map和Reduce在内的多种操作,这些操作相互连接形成一个有向无环图(Directed Acyclic Graph, DAG),各个操作的中间数据会被保存在内存中。因此,Spark处理速度比MapReduce更快。

  • 易用

​ Spark可以使用Java、Scala、Python、R和SQL快速编写应用程序。此外,Spark还提供了超过80个高级算子,使用这些算子可以轻松构建应用程序。

  • 通用

​ Spark拥有一系列库,包括SQL和DataFrame、用于机器学习的MLlib、用于图计算的GraphX、用于实时计算的Spark Streaming,可以在同一个应用程序中无缝地组合这些库。

  • 到处运行

​ Spark可以使用独立集群模式运行(使用自带的独立资源调度器,称为Standalone模式),也可以运行在Hadoop YARN、Mesos(Apache下的一个开源分布式资源管理框架)等集群管理器之上,并且可以访问HDFS、HBase、Hive等数百个数据源中的数据。
Spark的主要组件
在这里插入图片描述

Spark是由多个组件构成的软件栈,Spark 的核心(Spark Core)是一个对由很多计算任务组成的、运行在多个工作机器或者一个计算集群上的应用进行调度、分发以及监控的计算引擎。

Spark安装

下载解压缩spark-3.3.3-bin-hadoop3.tgz,重命名Spark安装目录为spark,在配置文件/etc/profile中添加:

export SPARK_HOME=/export/servers/spark
export PATH=$PATH:$SPARK_HOME/bin

执行/etc/profile脚本,使配置生效

source /etc/profile

二、Spark运行模式

1.Spark运行模式

Spark主要有三种运行模式:

  • 本地(单机)模式

​ 本地模式通过多线程模拟分布式计算,通常用于对应用程序的简单测试。本地模式在提交应用程序后,将会在本地生成一个名为SparkSubmit的进程,该进程既负责程序的提交,又负责任务的分配、执行和监控等。

  • Spark Standalone模式

​ 使用Spark自带的资源调度系统,资源调度是Spark自己实现的。

  • Spark On YARN模式

​ 以YARN作为底层资源调度系统以分布式的方式在集群中运行。

2.Spark Standalone架构

Spark Standalone的两种提交方式

​ Spark Standalone模式为经典的Master/Slave架构,资源调度是Spark自己实现的。在Standalone模式中,根据应用程序提交的方式不同,Driver(主控进程)在集群中的位置也有所不同。应用程序的提交方式主要有两种:client和cluster,默认是client。可以在向Spark集群提交应用程序时使用–deploy-mode参数指定提交方式。

  • client提交方式

当提交方式为client时,运行架构如下图所示:
在这里插入图片描述
集群的主节点称为Master节点,在集群启动时会在主节点启动一个名为Master的守护进程;从节点称为Worker节点,在集群启动时会在各个从节点上启动一个名为Worker的守护进程。
​ Spark在执行应用程序的过程中会启动Driver和Executor两种JVM进程。

​ Driver为主控进程,负责执行应用程序的main()方法,创建SparkContext对象(负责与Spark集群进行交互),提交Spark作业,并将作业转化为Task(一个作业由多个Task任务组成),然后在各个Executor进程间对Task进行调度和监控。通常用SparkContext代表Driver。如图所示的架构中,Spark会在客户端启动一个名为SparkSubmit的进程,Driver程序则运行于该进程。

​ Executor为应用程序运行在Worker节点上的一个进程,由Worker进程启动,负责执行具体的Task,并存储数据在内存或磁盘上。每个应用程序都有各自独立的一个或多个Executor进程。

  • cluster提交方式

​ 当提交方式为cluster时,运行架构如下图所示:
在这里插入图片描述
Standalone以cluster提交方式提交应用程序后,客户端仍然会产生一个名为SparkSubmit的进程,但是该进程会在应用程序提交给集群之后就立即退出。当应用程序运行时,Master会在集群中选择一个Worker启动一个名为DriverWrapper的子进程,该子进程即为Driver进程。

Spark Standalone模式的搭建

进入Spark安装根目录,进入conf目录,执行以下操作:

(1):复制spark-env.sh.template文件为spark-env.sh文件

cp spark-env.sh.template spark-env.sh

(2): 修改spark-env.sh文件,添加以下内容:

export JAVA_HOME=/export/servers/jdk1.8.0_161
export SPARK_MASTER_HOST=my2308-host
export SPARK_MASTER_PORT=7077
  • JAVA_HOME:指定JAVA_HOME的路径。若节点在/etc/profile文件中配置了JAVA_HOME,则该选项可以省略,Spark启动时会自动读取。为了防止出错,建议此处将该选项配置上。
  • SPARK_MASTER_HOST:指定集群主节点(Master)的主机名。
  • SPARK_MASTER_PORT:指定Master节点的访问端口,默认为7077。

(3): 启动Spark集群

进入Spark安装目录,执行以下命令,启动Spark集群:

sbin/start-all.sh

启动完毕后,分别在各节点执行jps命令,查看启动的Java进程。若存在Master进程和Worker进程,则说明集群启动成功。

三、Spark On YARN架构

Spark On YARN的两种提交方式

​ Spark On YARN模式遵循YARN的官方规范,YARN只负责资源的管理和调度,运行哪种应用程序由用户自己决定,因此可能在YARN上同时运行MapReduce程序和Spark程序,YARN对每一个程序很好地实现了资源的隔离。这使得Spark与MapReduce可以运行于同一个集群中,共享集群存储资源与计算资源。

​ Spark On YARN模式与Standalone模式一样,也分为client和cluster两种提交方式。

Spark On YARN模式的搭建

Spark On YARN模式的搭建比较简单,仅需要在YARN集群的一个节点上安装Spark即可,该节点可作为提交Spark应用程序到YARN集群的客户端。Spark本身的Master节点和Worker节点不需要启动。

​ 使用此模式需要修改Spark配置文件$SPARK_HOME/conf/spark-env.sh,添加Hadoop相关属性,指定Hadoop与配置文件所在目录,内容如下:

export HADOOP_HOME=/export/servers/hadoop-3.2.0
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
Spark Core 应用场景 Apache Spark 是加州大学伯克利分校的 AMP Labs 开发的开源分布式轻量级通用计算框架。由于 Spark 基于内存设计,使得它拥有比 Hadoop 更高的性能(极端情况下可以达到 100x),并且对多语言(Scala、Java、Python)提供支持。其一栈式的设计特点使得我们的学习和维护成本大大地减少,而且其提供了很好的容错解决方案。 操作步骤 1. 阅读详情

相关推荐

爬虫风控实战:当你的代理IP被数美滑块盯上时,如何优雅破解?

本文深入探讨了爬虫风控对抗中数美滑块验证码的破解与防御策略。通过分析数美滑块的多层防御机制,提出了代理IP池精细化管理、请求特征拟人化改造以及工程化滑块验证解决方案等系统性方法,帮助开发者有效降低验证码触发率,提升爬虫效率。

weixin_27419879的博客 207

SparkCore

一、SparkCore spark架构 二、SparkSQL 三、SparkStreaming

weixin_42263032的博客 3747

迈德威视相机调用( 基于 Linux系统+ OpenCV )

迈德威视相机调用( 基于 Linux系统+ OpenCV )前言一、登录迈德威视官网,下载官方SDK二、代码调用与视频帧处理( 基于 OpenCV )总结 前言     此博客记录了迈德威视工业相机在 Linux 系统下的代码调用及其环境配置,通过 OpenCV 对视频帧进行处理。   一、登录迈德威视官网,下载官方SDK      迈德威视官网 : http://www.mindvision.com.cn/     1. 进入官网后,在服务支持中选择软件下载。    2. 选择Linux系统S.

kkkkkk0729的博客 5678

大数据技术之SparkCore

Spark Core是spark的核心与基础,实现了Spark的基本功能,包含任务调度,内存管理,错误恢复与存储系统交互等模块 Spark Core中包含了对Spark核心API——RDD API(弹性分布式数据集)的定义:RDD表示分布在多个计算节点上可以并行操作的元素集合,是spark的核心抽象。

专注 AI、大数据、Python、爬虫、数据分析可视化、机器学习、推荐算法、知识图谱、大模型应用与全栈系统开发,长期沉淀真实项目案例、源码解析、系统设计、部署经验与工程化实践,分享可运行、可复用、可落地的技术方案。 3757

VASP计算层错能(SFE)全攻略2

本文介绍了使用VASP计算纯镍(Ni)层错能(SFE)的具体步骤。首先构建Ni的FCC单胞并扩展为超胞,通过修改原子位置引入堆垛层错;随后分别计算完美晶体和含层错结构的能量;最后通过能量差与层错面积之比求得SFE值。计算需注意k点网格、截断能和超胞尺寸的收敛性测试,并推荐使用PAW赝势和ASE等工具辅助结构构建。

weixin_50519490的博客 1986

基于Flink的风控系统

可以使用Flink-Stream进行实时数据流的检测和处理,或者使用Flink-Kafka集群进行数据转发和存储,然后使用Flink-Table进行数据表的查询和分析。在Flink中,可以使用Flink-Stream进行数据流的处理,或者使用Flink-Kafka进行Kafka数据流的消费和处理。Flink的运行时本身也支持迭代算法的执行。可以使用Flink-Stream进行实时数据流的检测和处理,或者使用Flink-Kafka集群进行数据转发和存储,然后使用Flink-Table进行数据表的查询和分析。

m0_68231587的博客 1875

SparkCore概念解析

Spark宽窄依赖,累加器,广播变量,RDD,Stage阶段划分

m0_57697768的博客 684

Vue3项目实战:用vue-print-nb搞定多页表格打印(附样式不丢失解决方案)

本文详细介绍了在Vue3项目中,如何利用vue-print-nb插件解决Element Plus多页表格打印的样式丢失与分页错乱等核心难题。通过分离打印视图、编写专用CSS控制分页行为、以及深入理解浏览器打印原理,提供了一套从基础配置到高级技巧的完整企业级打印解决方案,确保打印输出专业可靠。

linux的博客 1233

Spark学习day1--sparkcore

作用:以指定的随机种子随机抽样出数量为fraction的数据,withReplacement表示抽出的数据是否放回,true为有放回的抽样,false为无放回的抽样,seed用于指定随机数生成器种子。mapPartition:每次处理一个分区的数据,这个分区的数据处理完之后,原RDD中分区的数据能释放,可能导致OOM。作用:将每一个分区形成一个数组,形成新的RDD类型时RDD【Array【T】】作用:返回一个新的RDD,该RDD由每一个输入元素经过func函数转换后组成。一个计算每个分区的函数。

weixin_52996387的博客 161

069、PCIE属性字段:缓存、顺序与安全

上个月调试一块自研的PCIE采集卡,遇到了一个诡异的问题:主机通过DMA从设备读取图像数据,大部分帧正常,但偶尔会出现局部数据错位,像是缓存没刷干净。用逻辑分析仪抓链路层报文,发现TLP(事务层包)本身完好,但内存中的数据就是不对。排查三天后,终于锁定在设备端TLP的**属性字段(Attribute Field)**配置上——那几位看似不起眼的缓存、顺序控制位,差点让项目延期。今天我们就拆解PCIE事务头中的这个关键区域,看看它如何影响系统性能与数据安全。

z534437748的博客 50

Open3D (C++) 使用点云创建数字高程模型DEM

Open3D (C++) 使用点云创建数字高程模型DEM

点云侠的博客 1391

spark3.0-sparkcore-总结知识要点

spark3.0-sparkcore-总结day02-知识要点day03-知识要点day04-知识要点day05-知识要点 day02-知识要点 ----------------------笔试--------------------------------- 1、什么是RDD? 2、wordcount代码中算子的具体工作流程(各算子执行位置)?(可以画图说明) 3、简述RDD的五大特性. 4、RDD有几种创建方式? 5、集合创建RDD,默认分区数和设置分区的算法 6、读取文件创建RDD,默认分区

dxy 379

Ansible 面板工具之AWK ( Anssible Tower )界面介绍

整理这部分笔记博文内容为AWX和UI 界面的简单介绍理解不足小伙伴帮忙指正傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生命被剥夺了。当时我是个年轻人,但我害怕这样生活下去,衰老下去。在我看来,这是比死亡更可怕的事。--------王小波这里AWX使用的是最新的版本AWX 21.7.0目前最新版是3.8.6,博客中的版本为3.5.0对于Redhat的,官网上看到在 2022 年 11 月之后不在维护了,改版之后现在叫,感兴趣小伙伴可以了解下虽然有AWX是。

山河已无恙 1303

SparkCore之实战练习

1 数据准备 本项目的数据是采集电商网站的用户行为数据,主要包含用户的4种行为:搜索、点击、下单和支付。 1.1 数据格式 数据采用_分割字段 每一行表示用户的一个行为,所以每一行只能是四种行为中的一种。 如果搜索关键字是null,表示这次不是搜索 如果点击的品类id和产品id是-1表示这次不是点击 下单行为来说一次可以下单多个产品,所以品类id和产品id都是多个,id之间使用逗号,分割。如果本次不是下单行为,则他们相关数据用null来表示 支付行为和下单行为类似 1.2 数据详细字段说明

Trony的博客 768

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

SparkCore面试题

1.编写WordCount(读取一个本地文件),并打包到集群运行,说明需要添加的主要参数。 代码 val conf: SparkConf = new SparkConf().setAppName(this.getClass.getName) val sc = new SparkContext(conf) val resRDD: RDD[(String, Int)] = sc.textFile(args(0)).flatMap(_.split(" ")).map((_, 1)).reduce

FlatTiger的博客 497

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Spark 实现两表查询(SparkCore和SparkSql)

项目需求: ip.txt:包含ip起始地址,ip结束地址,ip所属省份 access.txt:包含ip地址和各种访问数据 需求:两表联合查询每个省份的ip数量 SparkCore 使用广播,将小表广播到executor.对大表的每条数据都到小表中进行查找。 package day07 import java.sql.DriverManager import org.apache....

浪淘沙 4024

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

SparkCore自定义分区器

Spark自定义分区器 自定义分区器:创建一个类继承Partitioner,并实现方法 下方代码实现功能:把偶数放到0分区,基数放到1分区 import org.apache.spark.rdd.RDD import org.apache.spark.{Partitioner, SparkConf, SparkContext, TaskContext} object TestPartitioner { def main(args: Array[String]): Unit = {

lzyzl_的博客 235

【大数据开发】SparkCore——Spark作业执行流程、RDD编程的两种方式、简单算子

一、Spark作业执行流程 图片 二、RDD编程 2.1创建RDD的⼆种⽅式: 1.从集合中创建RDD 2.从外部存储创建RDD 2.2Transformation算⼦ RDD中的所有转换都是延迟加载的,也就是说,它们并不会直接计算结果。相反的,它们只是记住这些 应⽤到基础数据集(例如⼀个⽂件)上的转换动作。只有当发⽣⼀个要求返回结果给Driver的动作时, 这些转换才会真正运⾏。这种设计让Spark更加有效率地运⾏ 2.3Action算子 在RDD上运⾏计算,并返回结果给Driver或写⼊⽂件系统 三、简

白色风车 1045

3 ,SparkCore: RDD ,lineage ,设置内存大小,三类算子,日志打印级别,持久化算子

一 ,RDD 0 ,RDD API http://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.rdd.RDD 1 ,rdd 是什么 : RDD ( Resilient Distributed Dataset ),弹性分布式数据集。 2 ,rdd 分区 : 分区数 : 读过几个 block ,rdd 就产生几...

孙砚秋的博客 717

重拾Spark 之day01--Spark简介

昨天去参加了场面试,本来觉得自己很厉害,后来觉得自己啥都不会。自己学习能力确实还行,在项目中遇到不会的东西通过粗略的学习马上就能用到项目中来,但是只知道用。所以感觉这次面试把原来飘在天上的我又拉回来了,是时候需要脚踏实地好好学习了。也为今年秋天去大厂的面试做做准备吧。 Spark 简介1.Spark简介1.1 简介与功能1.1.1 运行速度快1.1.2 易用性好1.1.3 通用性强1.1.4 随处...

Nick 360

$05[SparkCore(Action_序列化_依赖关系_持久化)]

2.collect 3.count 4.first 5.take 6.takeOrdered 7.aggregate 8.fold 9.countByKey 10.save 11.foreach 11.foreachPartition 第二章.RDD序列化 1.闭包 2.Spark序列化 闭包使用未序列化的外部变量时 运行结果报错: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aj4UUm5t-1657550355591)(https://z3

m0_52210776的博客 376

【大数据开发】SparkCore——写入HDFS、自定义分区器、RDD算子、TopN综合练习

在桌面创建一个文件,内容如下 hello world java hadoop java spark hadoop SPARK HADOOP JAVA LINUX SPARK JAVA HELLO HBASE CENTOS LINUX hbase Spark Java Hello Spark Scala Hadoop MapReduce mapreduce 123 456 789 123 12 统计每一个单词出现的次数,不要统计数字的次数,忽略大小写(spark、Spark、SPARK是同一个单词,..

白色风车 634

2021-02-20 大数据课程笔记 day31

@R星校长 Spark 第三天【SparkCore内容】 主要内容 Spark-Core中的术语 RDD的宽窄依赖 Spark Stage & Spark计算模式 Spark资源调度和任务调度 Spark补充算子 Spark PV&UV 案例 Spark-Submit提交参数 学习目标 第一节 术语与宽窄依赖 术语解释 窄依赖和宽依赖 RDD 之间有一系列的依赖关系,依赖关系又分为窄依赖和宽依赖。 窄依赖 父 RDD 和子 RDD partition 之间的关系是一对一的。或者父 R.

qq_44745905的博客 279

$06[SparkCore(分区器_数据读取与保存_累加器_广播变量)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7SMhMAX4-1657550536149)(https://z3.ax1x.com/2021/09/12/4pXe2t.png#id=jDAOU&originHeight=439&originWidth=913&originalType=binary&ratio=1&status=done&style=none)] 第三章.累加器 1.累加器介绍 2.WordCountAccumulator 自定义累加器 使用自定义

m0_52210776的博客 184

SparkCore -- 05 【广播变量,累加器,自定义排序,自定义分区器】

广播变量 package com.xxx.spark.day06 import org.apache.spark.broadcast.Broadcast import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /** * 广播变量的使用 */ object _01Broadcast { def main(args: Array[String]): Unit = { va

xiaoxiao______的博客 359

Spark搭建和使用

Spark搭建和使用 Spark-day01 1.Spark初始 1.什么是Spark Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行计算框架,Spark拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等

hjs19981227的博客 661
上一篇: Day8-Zookeeper和Hbase安装与配置
下一篇: Day10-SparkCore学习(二)
风吹落红烛.
博客等级 码龄5年 238粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值