当前位置: 首页 > news >正文

Spark的基础

实训笔记--Spark的基础

  • Spark的基础
    • 一、Spark的诞生背景
    • 二、Spark概念
      • 2.1 Spark Core
      • 2.2. Spark SQL
      • 2.3 Spark Streaming
      • 2.4 Spark MLlib
      • 2.5 Spark GraphX
      • 2.6 Spark R
    • 三、Spark的特点
      • 3.1 计算快速
      • 3.2 易用性
      • 3.3 兼容性
      • 3.4 通用性
    • 四、Spark的安装部署
      • 4.1 Spark的安装部署就是安装Spark的不同的资源调度器
        • 4.1.1 本地模式
        • 4.1.2 Standalone独立调度器部署模式
        • 4.1.3 Hadoop的YARN部署模式
        • 4.1.4 Apache的Mesos部署模式
      • 4.2 Spark的历史日志服务器
    • 五、Spark程序的部署运行的方式
      • 5.1 options的常用选型以及含义
    • 六、Spark的编程方式
      • 6.1 REPL交互式命令行窗口代码编程
      • 6.2 Java/Scala/Python等等代码进行编程

Spark的基础

一、Spark的诞生背景

Spark 2009年诞生的一个技术,诞生的主要原因是因为Hadoop大数据解决方案存在一些弊端

  1. MR程序是基于磁盘进行运算,因此导致MR程序计算效率底下
  2. MR程序无法计算复杂的任务,如果想要实现复杂的计算逻辑,可能编写多个MR Job,其中后续的Job依赖于前一个Job的输出,但是多个Job无法知道前一个job,需要通过任务调度框架自己指定多job的依赖关系

二、Spark概念

Spark相当于是Hadoop的升级版本的解决方案,基于内存进行运算,并且Spark内部实现迭代式计算思想,可以在一个应用程序编写复杂的计算逻辑

Spark有一个思想(one stack to rule them all)-一栈式解决方案,一个技术实现大数据中各种计算场景的应用问题。Spark中包含很多的计算子组件

2.1 Spark Core

Spark的核心基础,Spark的任务调度规则,Spark的基础语法,数据抽象RDD。。。

2.2. Spark SQL

借助SQL或者Hive版本的HQL进行结构化数据的处理

2.3 Spark Streaming

内部采用了微批次处理思想,实现数据的实时计算

2.1~2.2:数据处理和开发的

2.4 Spark MLlib

2.5 Spark GraphX

2.6 Spark R

2.4~2.6:数据科学或者算法计算

三、Spark的特点

3.1 计算快速

Spark相当于Hadoop的升级版的大数据计算解决方案

3.2 易用性

Spark提供了多种语法的编程风格

3.3 兼容性

Spark计算框架和大数据中很多技术无缝衔接,比如Spark支持直接从HDFS、Kafka、HBase、Hive、MySQL…等等地方直接读取数据处理

3.4 通用性

Spark一个技术栈可以解决大数据中遇到的大部分计算场景问题,而且Spark各个子组件都是基于Spark Core的,因此Spark的各个子组件可以无缝的衔接转换

四、Spark的安装部署

【注意】Spark的安装部署,Spark本身就是一个分布式计算框架,如果使用Spark,我们需要使用对应的编程语言编写Spark代码,编写Spark程序不需要部署Spark程序,因此Spark的安装部署主要指的是编写好的Spark程序在什么环境下运行(编写好的Spark程序使用哪种资源调度器进行资源的申请和调度)。 Spark的安装部署就是安装部署Spark运行的资源调度器的。

Spark的资源调度器常用的有三个:Spark自带的standalone独立调度器、Hadoop的YARN、Apache的Mesos

4.1 Spark的安装部署就是安装Spark的不同的资源调度器

4.1.1 本地模式

(不使用任何的资源调度器,只在本地运行Spark程序):这种部署模式只能做测试学习使用

4.1.2 Standalone独立调度器部署模式

部署Master和Worker节点(主从架构):这种部署模式既可以测试学习、也可以做项目开发部署

4.1.3 Hadoop的YARN部署模式

部署Spark程序在YARN上运行,这种模式一般项目生产环境用的比较多

4.1.4 Apache的Mesos部署模式

部署Spark程序在Mesos上运行,这种模式一般项目生产环境用的比较多

4.2 Spark的历史日志服务器

汇聚Spark的应用程序的计算日志,借助于HDFS完操作

【注意】Spark安装部署涉及到很多端口:

  1. 7077 Spark的standalone模式下的master节点的通信端口
  2. 4000 Spark的历史日志服务器的默认端口
  3. 8080/自定义端口 Spark的standalone模式下Master节点的webui端口
  4. 8088 YARN的web访问端口

五、Spark程序的部署运行的方式

spark-submit [options] <app jar | python file | R file> [app arguments]

5.1 options的常用选型以及含义

参数说明
--master masterurl将Spark程序部署到哪个资源管理器运行
spark://host:port, mesos://host:port, yarn,k8s://https://host:port, or local (Default: local[*]).
--deploy-mode modeSpark应用程序的部署模式(YARN场景下) 取值 client cluster
--class class_namejar包中Driver驱动程序的全限定类名
--name namespark应用程序的别名
--driver-memory 1024Mdriver驱动程序
--executor-memory 1G等同于YARN中容器,一个容器有多少内存
--executor-cores num每一个executor中有多少个内核

六、Spark的编程方式

6.1 REPL交互式命令行窗口代码编程

Spark提供了一个REPL工具:spark-shell spark-shell --master local[*]

6.2 Java/Scala/Python等等代码进行编程

相关文章:

Spark的基础

实训笔记--Spark的基础 Spark的基础一、Spark的诞生背景二、Spark概念2.1 Spark Core2.2. Spark SQL2.3 Spark Streaming2.4 Spark MLlib2.5 Spark GraphX2.6 Spark R 三、Spark的特点3.1 计算快速3.2 易用性3.3 兼容性3.4 通用性 四、Spark的安装部署4.1 Spark的安装部署就是安…...

如何在idea中新建第一个java小程序

如何在idea中新建第一个java小程序 1.打开软件2.新建项目3.找到安装的jdk文件路径4.继续下一步5.创建项目名称并配置项目路径6.点击完成即可。7.在项目文件的src文件夹下创建java类&#xff0c;程序等7.1其他java项目或文件不能运行的原因&#xff1a; 8.新建类并运行程序9.输入…...

AOP全局异常处理

AOP全局异常处理 由于Controller可能接收到来自业务层、数据层、数据库抛出的异常&#xff0c;因此需要使用AOP思想&#xff0c;进行全局异常处理&#xff0c;异常可通过调试获得。 package org.sinian.reggie.common;import lombok.extern.slf4j.Slf4j; import org.springfram…...

一阶低通滤波器滞后补偿算法

一阶低通滤波器的推导过程和双线性变换算法请查看下面文章链接: PLC算法系列之数字低通滤波器(离散化方法:双线性变换)_双线性离散化_RXXW_Dor的博客-CSDN博客PLC信号处理系列之一阶低通(RC)滤波器算法_RXXW_Dor的博客-CSDN博客_rc滤波电路的优缺点1、先看看RC滤波的优缺点…...

JS中Symbol的介绍

1、 引入Symbol类型的背景 ES5 的对象属性名都是字符串&#xff0c;这容易造成属性名冲突的问题 举例: 使用别人的模块/对象, 又想为之添加新的属性,这就容易使得新属性名与原有属性名冲突 2、Symbol类型简介 symbol是一种原始数据类型 其余原始类型: 未定义(undefined) 、…...

封装统一响应结果类和消息枚举类

在开发中&#xff0c;响应结果都需要统一格式&#xff0c;下面给出一个例子&#xff0c;可自行修改。 package com.lili.utils;import com.fasterxml.jackson.annotation.JsonInclude; import com.lili.enums.AppHttpCodeEnum;import java.io.Serializable;/*** author YLi_Ji…...

应广单片机实现红蓝双色爆闪灯

继续进行点灯&#xff0c;今天来点简单的&#xff0c;红蓝双色爆闪灯&#xff0c;上电即可爆闪&#xff0c;红色接pa.3.pa.4,蓝色接pa6.和pa.7,低电平点亮LED灯&#xff0c;想要高电平点亮&#xff0c;或是驱动N管点亮灯&#xff0c;可以稍作修改。端口电平输出0改1&#xff0c…...

深入了解OSI模型:计算机网络的七大层次

目录 OSI模型 物理层 数据链路层 网络层 传输层 会话层 表示层 应用层 OSI模型 OSI模型是一个网络通信的概念模型&#xff0c;用于描述计算机网络中各个不同层次之间的通信和功能。它将网络通信分为七个不同的层次&#xff0c;每个层次负责不同的任务&#xff0c;使得网…...

games101 作业2

题目 光栅化一个三角形 1. 创建三角形的 2 维 bounding box。 2. 遍历此 bounding box 内的所有像素&#xff08;使用其整数索引&#xff09;。然后&#xff0c;使用像素中心的屏幕空间坐标来检查中心点是否在三角形内。 3. 如果在内部&#xff0c;则将其位置处的插值深度值 (…...

二叉树链式存储结构

目录 1.二叉树链式存储结构 2.二叉树的遍历 2.1 前、中、后序遍历 2.2 层序遍历 3.二叉树的其他递归问题 3.1 二叉树的结点个数 ​3.2 二叉树的叶子结点个数 3.3 二叉树第k层结点个数 3.4 二叉树的深度 3.5 二叉树查找 3.6 二叉树销毁 4.二叉树的基础OJ题 4.1 单值…...

Claude 使用指南 | 可与GPT-4媲美的语言模型

本文全程干货&#xff0c;让你轻松使用上claude&#xff0c;这也是目前体验cluade的唯一途径&#xff01;废话不多说&#xff0c;直接上教程&#xff0c;cluade的能力不逊于GPT4&#xff0c;号称是ChatGPT4.0最强竞品。相对Chatgpt来说&#xff0c;Claude不仅是完全免费的&…...

【汇编】微处理器

【汇编】微处理器 文章目录 【汇编】微处理器1、微处理器概念1.1 关键词1.2 分类 2、微处理器结构2.1 寄存器2.2 寄存器&汇编助记符2.3 寄存器组成结构 3、地址空间3.1 存储空间3.1.1 虚拟空间&#xff08;编程空间&#xff09;3.1.2 线性空间 3.2 I/O空间 4、工作模式4.1 …...

按键点亮led灯

原理图: K0这个按键按下时&#xff0c;开发板D1这个灯亮&#xff0c;松开&#xff0c;灯灭 代码如下: #include "stm32f4xx.h" void LED_Init(void) {//1.定义一个GPIO外设的结构体变量 GPIO_InitTypeDef GPIO_InitStructure;//RCC_AHB1PeriphClockCmd(RCC_AHB1Pe…...

Java常见面试题

目录 1、mysql并发事务会带来哪些问题&#xff0c;如何解决&#xff1f;2、请详细描述Redis持久化机制&#xff1f;3、简述Redis缓存雪崩和缓存穿透的问题和解决方案&#xff1f;4、RabbitMQ消息丢失及对应解决方案5、什么叫线程安全&#xff1f;举例说明6、举例说明常用的加密…...

笔记1.5:计算机网络体系结构

从功能上描述计算机网络结构 分层结构 每层遵循某个网络协议完成本层功能 基本概念 实体&#xff1a;表示任何可发送或接收信息的硬件或软件进程。 协议是控制两个对等实体进行通信的规则的集合&#xff0c;协议是水平的。 任一层实体需要使用下层服务&#xff0c;遵循本层…...

【Python】Python 连接字符串应优先使用 join 而不是 +

Python 连接字符串应优先使用 join 而不是 简介 字符串处理在大多数编程程序语言中都不可避免&#xff0c;字符串的连接也是在编程过程中经常需要面对的问题。 Python中的字符串与其他一些程序语言如C、Java有一些不同&#xff0c;它为不 可变对象。 一旦创建便不能改变&…...

uniapp 小程序 父组件调用子组件方法

答案&#xff1a;配合小程序API > this.selectComponent("")&#xff0c;来选择组件&#xff0c;再使用$vm选择组件实例&#xff0c;再调用方法&#xff0c;或者data 1 设置组件的id,如果你的多端&#xff0c;请跟据情况设置ref,class,id&#xff0c;以便通过小…...

Vue-01:MVVM数据双向绑定与Vue的生命周期

一、Vue介绍 1.1 什么是Vue &#xff1f; Vue是一个渐进式的JavaScript框架&#xff0c;用于构建用户界面。"渐进式"意味着Vue的设计理念是逐步增强应用的功能和复杂性&#xff0c;而不是一次性地引入所有功能。这使得开发者可以根据项目需求选择性地使用Vue的不同特…...

数据通信网络之OSPFv3基础

文章及资源归档至【AIShareLab】&#xff0c;回复 通信系统与网络 可获取。 文章目录 一、目的二、拓扑三、需求四、步骤 一、目的 掌握路由器的IPv6 基础配置。掌握OSPFv3&#xff08;单区域&#xff09;的基础配置。 二、拓扑 如图1 所示&#xff0c;三台路由器R1、R2 和R…...

FPGA-结合协议时序实现UART收发器(五):串口顶层模块UART_TOP、例化PLL、UART_FIFO、uart_drive

FPGA-结合协议时序实现UART收发器&#xff08;五&#xff09;&#xff1a;串口顶层模块UART_TOP、例化PLL、UART_FIFO、uart_drive 串口顶层模块UART_TOP、例化PLL、UART_FIFO、uart_drive&#xff0c;功能实现。 文章目录 FPGA-结合协议时序实现UART收发器&#xff08;五&…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

JS设计模式(4):观察者模式

JS设计模式(4):观察者模式 一、引入 在开发中&#xff0c;我们经常会遇到这样的场景&#xff1a;一个对象的状态变化需要自动通知其他对象&#xff0c;比如&#xff1a; 电商平台中&#xff0c;商品库存变化时需要通知所有订阅该商品的用户&#xff1b;新闻网站中&#xff0…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战&#xff0c;克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

Redis:现代应用开发的高效内存数据存储利器

一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发&#xff0c;其初衷是为了满足他自己的一个项目需求&#xff0c;即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源&#xff0c;Redis凭借其简单易用、…...

Unity UGUI Button事件流程

场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...

适应性Java用于现代 API:REST、GraphQL 和事件驱动

在快速发展的软件开发领域&#xff0c;REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名&#xff0c;不断适应这些现代范式的需求。随着不断发展的生态系统&#xff0c;Java 在现代 API 方…...

nnUNet V2修改网络——暴力替换网络为UNet++

更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 U-Net存在两个局限,一是网络的最佳深度因应用场景而异,这取决于任务的难度和可用于训练的标注数…...