首页 > 其他分享 >【博学谷学习记录】超强总结,用心分享 | spark基础了解

【博学谷学习记录】超强总结,用心分享 | spark基础了解

时间:2023-02-05 23:11:14浏览次数:35  
标签:博学 节点 RDD 线程 计算 超强 Spark spark

【博学谷IT技术支持】
Spark 是一款用于大规模数据处理分析式的分布引擎

MR的弊端:

  • 计算效率慢
  • 使用API相对比较低级
  • 迭代计算非常不方便

什么是迭代计算:

  • 在计算过程中,需要将计算划分为N个阶段,每个阶段直接互相依赖,后 一个阶段必须等待前一个阶段执行完成,然后才能执行后一个阶段

SparK效率优于MR的原因:

Spark提供全新的数据结构:RDD支持在内存中进行计算,部分迭代操作支持内存迭代
Spark程序是基于线程来运行的,而MR是基于进程来运行的,线程的启动和销毁是优于进程的

发展历史:

  • 2009出现
  • 14年称为顶级项目
  • 16年2.0
  • 19年3.0

Spark的特点

  • 运行速度快
  • 易用性
  • 通用性
Spark是由多个组件组成,主要有Spark Core, Spark SQL, Spark Streaming, Spark MLib, Spark Graphx

spark Core: Spark的核心,学习spark的基础,学习spark Core主要学习RDD主要维护RDD数据结构
    提供RDD各种API
    提供了与内存相关的API
  
Spark SQL: 通过SQL的方式来操作Spark

Spark streaming:Spark用于进行流式计算(实时计算)的组件 暂不学习在国内,整个实时部分,主要是应用在F1ink,而非Spark Streaming ,因为Spark的流并不是真正意义上流式计算,为微批处理

Spark MLib: Spark用于进行机器学习的库专门针对特定人群

Spark Graphx: Spark用于进行图计算的库专门针对特定人群
  • 随处运行

Spark 是一个主从分布式高可用集群框架

主节点:
    管理众多的从节点
    负责资源的分配管理
    负责接收客户端提交任务请求,负责分配Dirver程序启动在那个从节点上
    
从节点:
    1- 和主节点保持心跳,汇报自己的资源信息
    2- 负责接收Driver分配的任务,进行任务的执行
    3- 负责启动Driver程序


1- Spark集群架构:  是一个主从分布式高可用集群架构
2- 明确集群中主 从节点的作用
3- 明确主节点是如何基于zk实现主备切换: 临时节点 + 定时检测

spark-submi执行方式

./spark-submit --master local[*]
/export/data/workspace/ky06_pyspark/_01_SparkBase/src/_05_pyspark_wd.py
Driver进程:类似于 MR中 ApplicationMaster
主要负责:任务的资源申请,任务分配 任务进度的管理,等 基本与任务相关的工作 都是交给Driver来处理

Executor程序:执行器(理解为是一个线程池)spark最终执行的线程都是运行在executor上,executor是可以有多个的,每个里面都是可以有多个线程的

Spark-Submit的相关参数

// 表示应用运行的模式
--master
表示运行的地方
--deploy-mode

Spark Core

核心: 采用多节点处理,将一个任务拆分为N多个子任务,分布运行在不同的节点上进行并行的处理,各个节点计算完成后,将结果汇总处理即可。

RDD是一个抽象的数据模型,RDD本身并不存储任何的数据,仅仅是一个数据传输的管道,在这个管道中,作为使用者,只需要告知给RDD应该从哪里读,中间需要进行什么样的转换逻辑操作,以及最后需要将结果输出到什么位置即可,一旦启动后,RDD会根据用户设定的规则,完成整个处理操作

RDD的五大特性和五大特点

五大特性

1- (必须的) RDD可分区的
2- (必须的) 每一个RDD都是由一个计算函数产生的
3- (必须的)RDD之间是存在着依赖关系
4- (可选的) 对于KV类型的数据,是存在分区函数,对于KV类型的RDD默认是基于Hash 分区方案
5- (可选的) 移动数据不如移动计算(让计算程序离数据越近越好)

标签:博学,节点,RDD,线程,计算,超强,Spark,spark
From: https://www.cnblogs.com/neilniu/p/17094158.html

相关文章

  • Python大数据处理利器,PySpark的入门实战
    PySpark极速入门一:Pyspark简介与安装什么是Pyspark?PySpark是Spark的Python语言接口,通过它,可以使用PythonAPI编写Spark应用程序,目前支持绝大多数Spark功能。目前Spark官方在......
  • Spark核心原理
     1.概要介绍1.1master节点和work节点master和worker是物理节点 spark集群有一个master节点和多个worker节点。Standalone模式下可以通过zookeeper......
  • 【博学谷学习记录】超强总结,用心分享 | 前端开发 JS基础(三)
    JavaScript基础(3)if多分支语句和switch的区别:共同点都能实现多分支选择,多选1大部分情况下可以互换区别:switch…case语句通常处理case为比较确定值的情况......
  • 基于pyspark的随机森林
    关于随机森林的定义就不赘叙importfindsparkfromnumpyimportfrompyfuncfrompyspark.mlimportclassificationfrompyspark.sql.functionsimportspark_partition_idf......
  • 微软外服札记④——Spark中的那些坑...
    Spark中的那些坑Spark中的那些坑前言读取配置文件时区陷阱怪异的DayOfWeeksubstring陷阱IP地址解析枚举的数值posexplode函数为什么我的程序运行那么慢?慎用Co......
  • Spark Shuffle解析
    1Shuffle的核心要点1.1ShuffleMapStage与ResultStage图ShuffleMapStage与ResultStage在划分stage时,最后一个stage称为finalStage,它本质上是一个ResultStage对象,前面的所有......
  • Spark 通讯架构和调度
    1、Spark通讯架构1.1Spark通信架构概述Spark2.x版本使用Netty通讯框架作为内部通讯组件。spark基于netty新的rpc框架借鉴了Akka的中的设计,它是基于Actor模型,如下图所示:图......
  • Spark基础入门-第七章:本机开发环境搭建
    Spark是大数据体系的明星产品,是一款高性能的分布式内存迭代计算框架,可以处理海量规模的数据。下面就带大家来学习今天的内容!一、本机PySpark环境配置HadoopDDL(Windows系统......
  • 【博学谷学习记录】超强总结,用心分享 | 进程和线程的使用
    【博学谷IT技术支持】一、介绍进程:进程是资源分配最小单位;进程之间的资源是独立的;进程有自己独立的地址空间,每启动一个进程,系统都会为其分配地址空间;进程是可以并行执......
  • scala+spark把某列string类型转换dataFrame的日期,array<double>,array<string>格式
    result=resdf.withColumn("Date",to_date(col("Date"),"yyyy-MM-dd")).\withColumn("arrayDouble",regexp_replace(col("arrayDouble"),"\\]","")).\withCo......