重生之我在CSDN学习spark

2.spark的特点

1、Speed:速度快

一般情况下,对于迭代次数较多的应用程序,Spark程序在内存中的运行速度是Hadoop MapReduce运行速度的100多倍,在磁盘上的运行速度是Hadoop MapReduce运行速度的10多倍。

由于Spark是基于内存进行计算的,所以它的计算性能理论上可以比MapReduce快100倍。

Spark使用最先进的DAG调度器、查询优化器和物理执行引擎,实现了高性能的批处理和流处理。

注意:批处理其实就是离线计算,流处理就是实时计算,只是说法不一样罢了,意思是一样的。

2、Easy of Use:易用性

在这里插入图片描述

Spark的易用性主要体现在两个方面:

1、可以使用多种编程语言快速编写应用程序,例如Java、Scala、Python、R和SQL
2、Spark提供了80多个高阶函数,可以轻松构建Spark任务。
看这个图中的代码,spark可以直接读取json文件,使用where进行过滤,然后使用select查询指定字段中的值。

3、Generality:通用性

Spark
可以与
SQL

Streaming
及复杂的分析良好结合。
Spark
还有一系列的高级工具,包括
Spark SQL

MLlib
(机器学习库)、
GraphX
(图计算)和
Spark Streaming
(流计算),并且支持在一个应用中同时使用这些组件。

Spark提供了Core、SQL、Streaming、MLlib、GraphX等技术组件,可以一站式地完成大数据领域的离线批处理、SQL交互式查询、流式实时计算,机器学习、图计算等常见的任务
从这可以看出来Spark也是一个具备完整生态圈的技术框架,它不是一个人在战斗。

4.随处运行

用户可以使用Spark的独立集群模式运行Spark,也可以在EC2(亚马逊弹性计算云)、Hadoop YARN或者Apache Mesos上运行Spark。并且可以从HDFS、Cassandra、HBase、Hive、Tachyon和任何分布式文件系统读取数据。

5.代码简洁

3.spark的生态系统

在实际应用中,大数据处理主要包括一下3个类型:
       ① 复杂的批量数据处理:时间跨度通常在数十分钟到数小时之间。
       ② 基于历史数据的交互式查询:时间跨度通常在数十秒到数分钟之间。
       ③ 基于实时数据流的数据处理:时间跨度通常在数百毫秒到数秒之间。

当同时存在以上三种场景时,就需要同时部署三种不同的软件

spark生态系统:

了解Spark作业运行流程

Standalone****模式运行流程

4.Spak 和Hadoop区别
spark是在MapReduce上发展而来,继承了其分布式并行计算的优点并改进了MapReduce明显的缺陷:

1.提高了效率

Spark把中间数据放到内存中,迭代运算效率高。MapReduce中计算结果需要落地,保存到磁盘上,这样势必会影响整体速度,而Spark支持DAG图的分布式并行计算的编程框架,减少了迭代过程中数据的落地,提高了处理效率

2.容错性高

Spark引进了弹性分布式数据集RDD (Resilient Distributed Dataset) 的抽象,它是分布在一组节点中的只读对象集合,这些集合是弹性的,如果数据集一部分丢失,需要进行重建。

相比来说spark更加通用,spark提供了更多的数据集操作类型,处理节点之间通信模型不是向hadoop只采用Shuffle模式,而是采用用户可命名,控制中间结果的存储,分区。

Spark Core

1)提供了有向无环图(DAG)的分布式并行计算框架,并提供Cache机制来支持多次迭代计算或者数据共享,大大减少迭代计算之间读取数据局的开销,这对于需要进行多次迭代的数据挖掘和分析性能有很大提升

2)在Spark中引入了RDD (Resilient Distributed Dataset) 的抽象,它是分布在一组节点中的只读对象集合,这些集合是弹性的,如果数据集一部分丢失,则可以根据“血统”对它们进行重建,保证了数据的高容错性;

移动计算而非移动数据,RDD Partition可以就近读取分布式文件系统中的数据块到各个节点内存中进行计算

使用多线程池模型来减少task启动开稍

3)采用容错的、高可伸缩性的akka作为通讯框架

Spark Streaming

SparkStreaming是一个对实时数据流进行高通量、容错处理的流式处理系统,可以对多种数据源(如Kdfka、Flume、Twitter、Zero和TCP 套接字)进行类似Map、Reduce和Join等复杂操作,并将结果保存到外部文件系统、数据库或应用到实时仪表盘。

Spark SQL

SparkSQL的前身是Shark,Shark是伯克利实验室Spark生态环境的组件之一,它修改了内存管理、物理计划、执行三个模块,并使之能运行在Spark引擎上,从而使得SQL查询的速度得到10-100倍的提升。Shark过于依赖Hive,它是当时唯一运行在Hadoop上的SQL-on-Hadoop工具。但是MapReduce计算过程中大量的中间磁盘落地过程消耗了大量的I/O,降低运行效率.SparkSQL在数据兼容性、性能优化、组件扩展等方面做了很大提升。

5.spark的运行模式

Spark有三种运行模式:local模式、standalone模式和集群模式。

  1. local模式:在本地机器上运行Spark应用程序,不需要启动集群。这种模式适用于开发和调试小规模的应用程序。
  2. standalone模式:在一个独立的Spark集群上运行应用程序。在这种模式下,一个节点被指定为主节点,负责协调任务的分配和调度。其他节点作为工作节点,执行任务。这种模式适用于中小规模的集群环境。
  3. 集群模式:在大规模的分布式集群上运行Spark应用程序。Spark可以与各种资源管理器(如YARN、Mesos)集成,通过它们来管理集群资源。在这种模式下,Spark应用程序被分解为多个任务,并在集群中的多个节点上并行执行。这种模式适用于大规模数据处理和分析任务。

6.spark的框架

Spark 框架模块包含:Spark Core、 Spark SQL、 Spark Streaming、 Spark GraphX、 Spark MLlib,而后四项的能力都是建立在核心引擎之上。

【Spark Core】:Spark的核心,Spark核心功能均由Spark Core模块提供,是Spark运行的基础。Spark Core以RDD为数据抽象,提供Python、Java、

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

再深入研究,那么很难做到真正的技术提升。**

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 18
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值