[第十章]Spark

概述

简介

基于内存计算的大数据并行计算框架
  • 运行速度快
    • 有向无环图
    • 基于内存
  • 容易使用
  • 通用性
  • 运行模式多样

Scala简介

多范式编程语言
  1. 强大突发性,支持函数编程
  1. 语法简介,提供API
  1. 兼容java

Hadoop与Spark对比

  • 表达能力有限
  • 磁盘I/O开销大
  • 延迟高

Spark生态系统

Spark运行架构

基本概念

架构设计

基本流程

RDD的设计与原理

概念

分布式对象集合,是一个只读分区记录的集合
  1. 读入外部数据源进行创建
  1. RDD经过一系列“转换”每次生成不同RDD,共给下一个“转换”
  1. 最后一个RDD”行动“并输出

特性

  1. 高效的容错性
  1. 中间结果持久化到内存
  1. 存放数据可以是java

依赖关系

  • 宽依赖
    • 本质上就是Shuffle操作
  • 窄依赖
    • 一对一
    • 多对一

阶段(stage)划分

根据RDD依赖关系,可以把一个作业划分多个阶段
  • 窄依赖对作业优化更有利
    • 因为宽依赖Shuffle后会不是每组都恰好完成,会有忙等
    • 窄依赖本组执行完继续执行
  • 反向解析,遇到宽依赖就断开stage,使得相邻的窄依赖放在一个stage
  • ShuffleMapStage
  • ResultStage

RDD运行过程

  1. 创建RDD对象
  1. SparkContext负责计算RDD之间依赖关系构建DAG
  1. DAGScheduler把DAG分成多个Stage每个stage包含多个任务,每个任务发给各个节点上的Executor执行

Spark部署和应用

部署方式

 
 
Prev
[第十章]JPA
Next
[第十一章]Spring框架核心基础
Loading...
Article List
一个NotionNext搭建的博客
数据库系统概论
大数据原理与应用
javaWeb应用开发基础教程
python
毕业设计
大数据技术综合应用
实训-航空数据系统
java面向对象程序设计
数据结构
算法分析与设计
SPARK
Python爬虫大数据采集与挖掘
云计算
概率论与数理统计
数字逻辑
计算机网络
计算机组成原理
linux
操作系统
人工智能导论
数据仓库与数据挖掘
数据可视化
大数据安全与隐私保护
c语言
C++