1 介绍

大数据4V 特征

1V 大量化,体现为数据量大
2V 多样化,主要是结构化和非结构化的数据
3V 处理速度快 数据采集和数据处理速度效率快
4V 价值密度低 主要是有效数据和无用数据的占比

大数据技术的两个核心技术

分布式存储 hdfs
分布式计算 spark

Yarn实现了一个集群多个框架

Spark框架

跟hadoop框架对比,hadoop存在两个明显缺点,一个是磁盘IO(磁盘读写)开销大,一个延迟性高

Spark优点(相比较于hadoop):

  • 1 继承了hadoop的大部分优点,解决了mapreduce的常见问题
  • 2 spark提供了内存计算和实时计算,将中间结果保存在内存中,对于迭代运算效率更好
  • 3 spark任务调度执行机制,优于hadoop 中的mapreduce

常见的大数据运算框架中,随着迭代次数增加,效率最高的Flink,其次spark,hadoop(Mapreduce)效率最低。

Hadoop适合离线计算(数据仓库批处理,静态数据处理),比如某个电子商城去年营收情况统计

Spark适合实时计算(内存计算,流计算),微博热搜,某个电子商城今年营收情况。

Flink采用的是一行一行的形式对文件进行读取,支持毫秒级别的运算,对sql的支持范围比spark小。

Spark采用数据分片的方式对文件进行读取,支持秒级别的运算,对sql的支持范围比flink大

2 Spark特点

  • 1 运算速度快。使用DAG执行引擎以支持循环数据流的内存计算
  • 2 易使用性,仅仅可以只使用scale,java,python或者R语言进行编程,就可以通过spark shell进行交互编程
  • 3 通用性高,提供了完整而又强大的技术栈,比如SQL查询,流式计算和机器学习以及图算法组件
  • 4 运行模式多样化 提供了独立的集群模式,可以运行在hadoop中,也可以运行在Amazon EC2等云环境,并且可以访问hdfs,Cassnadra,Hbase,HIve等多种数据源

Spark可以满足以下三种场景的计算:
支持流文件批处理、交互式查询和流数据处理

Spark五个重要的组成
1 Spark Core(主要是RDD编程)
2 Spark SQL
3 Spark Streaming
4 MLLib
5 GraphX

每个组成对应的具体的处理场景

3 spark架构

名词解析:
1 RDD:是Resillient Distributed Dataset(弹性分布式数据集)的简称,是分布式内存的一个抽象概念,提供了一种高度受限的共享内存模型
2 DAG:是Directed Acyclic Graph(有向无环图)的简称,反映RDD之间的依赖关系
3 Executor:是运行在工作节点(WorkerNode)的一个进程,负责运行Task
4 应用(Application):用户编写的Spark应用程序
5 任务( Task ):运行在Executor上的工作单元
6 作业( Job ):一个作业包含多个RDD及作用于相应RDD上的各种操作

7阶段( Stage ):是作业的基本调度单位,一个作业(job)会分为多组任务(task),每组任务被称为阶段,或者也被称为任务集合,代表了一组关联的、相互之间没有Shuffle依赖关系的任务组成的任务集

一个cluster manager(集群资源管理器)----》多个工作节点(worker node)
一个工作节点(worker node)------》一个执行进程(Executor)
一个执行进程(Executor)------>多个task(任务)

sparkContext作用:
1 资源申请,任务分配以及监控
2 根据RDD依赖关系构建DAG,并交给DAGscheduler解析
3 将taskSet提交给底层taskscheduler

4 Spark RDD概念

RDD
一个RDD就是一个弹性分布式对象集合,本质上是一个只读的分区记录集合,每个RDD可分成多个分区,每个分区就是一个数据集片段,并且一个RDD的不同分区可以被保存到集群中不同的节点上,从而可以在集群中的不同节点上进行并行计算

RDD提供了一种高度受限的共享内存模型,即RDD是只读的记录分区的集合,不能直接修改,只能基于稳定的物理存储中的数据集创建RDD,或者通过在其他RDD上执行确定的转换操作(如map、join和group by)而创建得到新的RDD

RDD提供了一组丰富的操作以支持常见的数据运算,分为“动作”(Action)和“转换”(Transformation)两种类型
转换是在内存中进行操作的
动作是最后的一个步骤,将内存中保存的结果写入到磁盘(比如hbase中)

RDD
优点:惰性调用、管道化、避免同步等待、不需要保存中间结果、每次操作变得简单

Spark采用RDD以后能够实现高效计算的原因主要在于:
(1)高效的容错性
现有容错机制:数据复制或者记录日志
RDD:血缘关系、重新计算丢失分区、无需回滚系统、重算过程在不同节点之间并行、只记录粗粒度的操作
(2)中间结果持久化到内存,数据在内存中的多个RDD操作之间进行传递,避免了不必要的读写磁盘开销
(3)存放的数据可以是面向对象语言中的对象,避免了不必要的对象序列化和反序列化

RDD编程原理

1 宽依赖和窄依赖

宽依赖和窄依赖主要由是否有shuffle决定

宽依赖:一个父RDD对应多个子RDD依赖
窄依赖:一个父RDD对应一个子RDD或者多个父RDD对应一个子RDD的依赖


窄依赖可以进行优化操作,而宽依赖无法进行优化
将窄依赖尽量划分在同一个Stage中,可以实现流水线计算

2 RDD运行流程

RDD运行流程主要分成三个阶段

  • [A]创建RDD对象

  • [B] SparkContetx对象负责计算RDD之间的依赖关系,构建DAG

  • [C] DAGScheduler负责将DAG图解析成多个阶段(连续的窄依赖会合并成一个阶段),每个阶段包含了多个task任务,每个task任务会被taskScheduler分发给WorkNode的Executor进程去执行。

3 linux中的常用命令

  • 1 访问路径 cd + 相对路径|绝对路径
    绝对路径以 / 开头的路径,指的是从系统根路径开始


相对路径 以文件夹名字开头,表示相对于当前路径的开始的路径

路径补全快捷键是tab

查看当前文件夹下的子文件或者子文件夹的命令是ll

  • 2 创建一个文件夹
    mkdir 文件夹名称

  • 3 重命名文件夹或者文件
    mv 文件夹或者文件名字 重命名后的文件夹或者文件名字 (同级情况下是重命名,不同级情况下是移动)

  • 4 删除文件
    rm 文件或者文件夹路径 删除对应的文件或者文件夹

  • 5 编辑文件 vi 或者vm 或者 gedit
    gedit 文件路径/文件名称 ------->必须要对应要编辑的文件要有相应的权限

4 hadoop+hbase+spark常用指令

启动hadoop命令
start-all.sh

查看hdfs中的文件或者文件夹
hadoop fs -ls /xxx/xxxZ(对应的路径)

上传文件到hdfs中
hadoop fs -put 要上传的本地文件地址 上传后的路径

在hdfs中创建文件夹
hadoop fs -mkdir 要创建的文件夹

spark概述以及原理架构相关推荐

  1. 尚硅谷大数据技术Spark教程-笔记01【Spark(概述、快速上手、运行环境、运行架构)】

    视频地址:尚硅谷大数据Spark教程从入门到精通_哔哩哔哩_bilibili 尚硅谷大数据技术Spark教程-笔记01[Spark(概述.快速上手.运行环境.运行架构)] 尚硅谷大数据技术Spark教 ...

  2. spark任务shell运行_大数据系列:Spark的工作原理及架构

    介绍 本Apache Spark教程将说明Apache Spark的运行时架构以及主要的Spark术语,例如Apache SparkContext,Spark shell,Apache Spark应用 ...

  3. Spark SQL运行原理和架构

    一 Spark SQL运行架构 Spark SQL对SQL语句的处理和关系型数据库类似,即词法/语法解析.绑定.优化.执行.Spark SQL会先将SQL语句解析成一棵树,然后使用规则(Rule)对T ...

  4. spark基础之spark sql运行原理和架构

    一 Spark SQL运行架构 Spark SQL对SQL语句的处理和关系型数据库类似,即词法/语法解析.绑定.优化.执行.Spark SQL会先将SQL语句解析成一棵树,然后使用规则(Rule)对T ...

  5. 大数据平台,Hadoop集群架构,概述及原理

    目录 一,大数据平台架构概述 1,大数据概念 2,大数据的特征 3,大数据的处理流程和相关技术 4,大数据平台架构的特点 5,大数据平台架构原理 二,Hadoop集群概述 1,HDFS 2,MapRe ...

  6. 深入分析Spark任务调度的原理--Java后端同学入门Spark编程系列

    作者:陌北有棵树,Java人,架构师社区合伙人! 之前写了一篇:<我作为Java后端,分享一下入门Spark编程的经历!> 上篇是Spark入门的第一篇,写了一些关于Spark编程中RDD ...

  7. 大数据技术之Spark(一)——Spark概述

    大数据技术之Spark(一)--Spark概述 文章目录 前言 一.Spark基础 1.1 Spark是什么 1.2 Spark VS Hadoop 1.3 Spark优势及特点 1.3.1 优秀的数 ...

  8. 集群概述及原理笔记(1)

    it你好linux学习文档之集群概述及原理笔记(1) 一 前言 目前,越来越多的网站采用Linux操作系统,提供邮件.Web.文件存储.数据库等服务.也有非常多的公司在企业内部网中利用Linux服务器 ...

  9. mysql 基于语句的复制_MySQL 复制 - 性能与扩展性的基石 1:概述及其原理

    1. 复制概述 MySQL 内置的复制功能是构建基于 MySQL 的大规模.高性能应用的基础,复制解决的基本问题是让一台服务器的数据与其他服务器保持同步.接下来,我们将从复制概述及原理.复制的配置.常 ...

最新文章

  1. 多核处理器集成了神经处理单元
  2. C++中定义对象的语法,带括号与不带括号有什么区别?
  3. 小人大作战v0.02原型(单机)发布
  4. 顺丰控股:2月速运物流业务营业收入98.49亿元,同比下降3.36%
  5. 我们无法更新系统保留的分区_系统更新是我们手机的基本功能之一 安卓智能更新有哪些用途...
  6. ListView中有Checkbox时的点击和选择问题
  7. 刚刚,美国因「光纤断裂」大规模瘫痪,影响微软、Github和Netflix等服务
  8. 无线网络技术学习总结
  9. Spring自定义属性转换器
  10. 关于HTML页面跳转的5种方法分享。
  11. 超定方程组的最小二乘解
  12. 如何借助表格优化直通车分时折扣
  13. 游戏开发中防外挂的那些事儿
  14. mysql枚举类型enum用法6_mysql中的枚举类型ENUM的用法
  15. python中的乘方_python乘方运算
  16. 楞严经悬镜 明• 憨山大师 ----读记
  17. 基于loongnix20系统,libvlc代码直接集成测试
  18. C语言编程之用ellipse画椭圆
  19. 支付宝领红包的算法猜想
  20. number of items to replace is not a multiple of replacement length

热门文章

  1. 了解WEB前端开发吗,风风雨雨30年,前端开发变迁史
  2. 第十三章 使用动态SQL(二)
  3. std:weak_ptr
  4. 汉字转换成NCR编码的字符
  5. 基于web的HMI / SCADA软件
  6. 错误:The ‘pycocotools>=2.0‘ distribution was not found and is required by the application
  7. micropython esp32手册_编译micropython遇到的几个问题(ESP32平台)
  8. linux如何调试elf程序,开发一个Linux调试器就需要了解ELF和DWARF
  9. 从360与QQ之战看商业政治
  10. 把通过高德静态地图API获取的地图图片,拼接成一张大地图图片