首页 > 其他分享 >Spark简介

Spark简介

时间:2023-06-25 23:22:05浏览次数:42  
标签:HDFS 简介 可以 IO MR 磁盘 Spark

Spark

Spark是一种快速、通用、可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校AMPLab,2010年开源,2013年6月成为Apache孵化项目,2014年2月成为Apache的顶级项目,2014年5月发布spark1.0,2016年7月发布spark2.0,2020年6月18日发布spark3.0.0

特点

Hadoop的MapReduce作为第一代分布式大数据计算引擎,在设计之初,受当时计算机硬件条件所限(内存、磁盘、cpu等),为了能够计算海量数据,需要将中间结果保存到HDFS中,那么就要频繁读写HDFS从而使得网络IO和磁盘IO成为性能瓶颈。Spark可以将中间结果写到本地磁盘或将中间cache到内存中,节省了大量的网络IO和磁盘IO开销。并且Spark使用更先进的DAG任务调度思想,可以将多个计算逻辑构建成一个有向无环图,并且还会将DAG先进行优化后再生成物理执行计划,同时 Spark也支持数据缓存在内存中的计算。性能比Hadoop MapReduce快100倍。即便是不将数据cache到内存中,其速度也是MapReduce10 倍以上。

• Ease of Use:简洁易用

Spark支持 Java、Scala、Python和R等编程语言编写应用程序,大大降低了使用者的门槛。自带了80多个高等级操作算子,并且允许在Scala,Python,R 的使用命令进行交互式运行,可以非常方便的在Spark Shell中地编写spark程序。

• Generality:通用、全栈式数据处理

Spark提供了统一的大数据处理解决方案,非常具有吸引力,毕竟任何公司都想用统一的平台去处理遇到的问题,减少开发和维护的人力成本和部署平台的物力成本。 同时Spark还支持SQL,大大降低了大数据开发者的使用门槛,同时提供了SparkStream和Structed Streaming可以处理实时流数据;MLlib机器学习库,提供机器学习相关的统计、分类、回归等领域的多种算法实现。其高度封装的API 接口大大降低了用户的学习成本;Spark GraghX提供分布式图计算处理能力;PySpark支持Python编写Spark程序;SparkR支持R语言编写Spark程序。

• Runs Everywhere:可以运行在各种资源调度框架和读写多种数据源

Spark支持的多种部署方案:Standalone是Spark自带的资源调度模式;Spark可以运行在Hadoop的YARN上面;Spark 可以运行在Mesos上(Mesos是一个类似于YARN的资源调度框架);Spark还可以Kubernetes实现容器化的资源调度

丰富的数据源支持。Spark除了可以访问操作系统自身的本地文件系统和HDFS之外,还可以访问 Cassandra、HBase、Hive、Alluxio(Tachyon)以及任何 Hadoop兼容的数据源。这极大地方便了已经 的大数据系统进行顺利迁移到Spark。

Spark与MapReduce的对比

image

面试题:MapReduce和Spark的本质区别:

  1. MR只能做离线计算,如果实现复杂计算逻辑,一个MR搞不定,就需要将多个MR按照先后顺序连成一串,一个MR计算完成后会将计算结果写入到HDFS中,下一个MR将上一个MR的输出作为输入,这样就要频繁读写HDFS,网络IO和磁盘IO会成为性能瓶颈。从而导致效率低下。
  2. spark既可以做离线计算,又可以做实时计算,提供了抽象的数据集(RDD、Dataset、DataFrame、DStream)
    有高度封装的API,算子丰富,并且使用了更先进的DAG有向无环图调度思想,可以对执行计划优化后在执行,并且可以数据可以cache到内存中进行复用,shuffle时,数据可以不排序

注意:MR和Spark在Shuffle时数据都落本地磁盘

标签:HDFS,简介,可以,IO,MR,磁盘,Spark
From: https://www.cnblogs.com/paopaoT/p/17504246.html

相关文章

  • OpenPyXL库简介
    OpenPyXL是一个用于读写Excel电子表格文件的Python库。它可以帮助你通过Python程序处理电子表格文件,包括创建、修改、分析和转换等操作。它支持Excel的xlsx、xlsm、xltx和xltm格式,可以轻松处理大量数据和复杂的电子表格。OpenPyXL库的主要功能包括:1.创建和修改Excel电子表格文......
  • 车规级耐高温BLE5.2协议串口转蓝牙模块E104-BT53C3产品简介
    蓝牙耐高温车规级BLE5.2蓝牙协议串口转蓝牙模块E104-BT53C3新品即将上架:蓝牙模块通信接口:UART串口通信蓝牙模块工作频率:2402~2480MHz车规级蓝牙模块蓝牙协议:BLE 5.2通信距离:170m天线接口:PCB产品尺寸:23*16mm产品简介:E104-BT53C3耐高温车规级蓝牙模块是一款基于蓝牙协议5.2版本的串......
  • 车规级耐高温BLE5.2协议串口转蓝牙模块E104-BT53C3产品简介
    蓝牙耐高温车规级BLE5.2蓝牙协议串口转蓝牙模块E104-BT53C3新品即将上架:蓝牙模块通信接口:UART串口通信蓝牙模块工作频率:2402~2480MHz车规级蓝牙模块蓝牙协议:BLE 5.2通信距离:170m天线接口:PCB产品尺寸:23*16mm产品简介:E104-BT53C3耐高温车规级蓝牙模块是一款基于蓝牙协议5.2......
  • JVM_简介
    1.JVM_体系JVM组成部分1.类加载器2.运行时数据区3.执行引擎4.本地方法库JVM执行流程1.类加载器把Java代码转换为字节码2.运行时数据区把字节码加载到内存中,不能直接交给底层系统去执行3.执行引擎将字节码翻译为底层系统指令,再交由CPU去执行4.CPU执行,调用其他语言的本......
  • kafka02 kafka术语和架构简介
    1Kafka中的术语解释概述在深入理解Kafka之前,先介绍一下Kafka中的术语。 1.1图示上图中一个topic配置了3个partition。Partition1有两个offset:0和1。Partition2有4个offset。Partition3有1个offset。副本的id和副本所在的机器的id恰好相同。如果一个topi......
  • kafka01 kafka及消息队列简介
     1Kafka是什么Kafka是一种高吞吐量的分布式发布订阅消息系统(消息引擎系统)。 2消息系统简介一个消息系统负责将数据从一个应用传递到另外一个应用,应用只需关注于数据,无需关注数据在两个或多个应用间是如何传递的。分布式消息传递基于可靠的消息队列,在客户端应用和......
  • 大端模式与小端模式简介
    转载文章:《数据在内存中存储的方式:大端模式与小端模式》什么是大端模式,什么是小端模式?所谓的大端模式(Big-endian),是指数据的高字节,保存在内存的低地址中,而数据的低字节,保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低......
  • 【linux命令】“最强大的编辑器”vim用法简介(基础篇)
    vim编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器。它主要分为命令令行模式、插入模式和底行模式这三种,下面主要介绍一下这三种模式最简单常用的用法。一.命令行模式1.移动光标左移:h光标右移:l光标上移:k光标下移:j光标向右移动一个单词:w(联......
  • JAVA编程开发之 新蜂商城 --- 简介
    开源商城学习项目https://github.com/newbee-ltd/newbee-mallhttps://gitee.com/newbee-ltd/newbee-mallhttps://edu.csdn.net/course/detail/26258https://juejin.cn/book/6844733814074245133?suid=3808363978174302&source=pc新蜂商城虽然不能作为真实企业级项目,但是是优......
  • Spark基础
    Spark是一种基于内存的快捷、通用、可扩展的大数据分析引擎1.Spark模块SparkCore:Spark核心模块,包含RDD、任务调度、内存管理、错误恢复、与存储系统交互等SparkSQL:用于处理结构化数据的一个模块,提供了2个编程抽象:DataFrameDataSet,并且作为分布式SQL查询引擎的作用。他将H......