[完]Spark 基础知识

Spark相比Hadoop具有更快的运行速度,使用内存计算减少IO开销,提供易用的编程接口和丰富的技术栈。Spark生态系统包括Spark Core、Spark SQL、Spark Streaming、MLLib和GraphX等组件,适用于大数据处理的多种场景。Spark运行框架基于RDD和DAG,通过Stage调度执行任务,具有高效容错性和数据本地性优化。Spark SQL作为数据仓库组件,支持SQL查询并与Hive兼容。Spark Streaming提供实时流数据处理能力,使用DStream抽象处理数据流。

为了使程序运行更快,Spark提供了内存计算,减少了迭代计算时的IO开销;为了使编程更容易,Spark使用简练、优雅的Scala语言编写,基于Scala提供了交互式编程体验。与Hadoop相比,Spark使用十分之一的计算资源,可获得比Hadoop快3倍的速度。

一、Spark与Hadoop

Spark特点:

  • 运行速度快:采用DAG(Directed Acyclic Graph,有向无环图)执行引擎,以支持循环数据流与内存计算,基于内存的执行速度可比Hadoop MR快上百倍,基于磁盘的速度也能快十倍。
  • 容易使用:支持Scala、Java、Python和R语言进行编程。
  • 通用性:提供完整而强大的技术栈,包括SQL查询,流失计算、机器学习和图算法组件。
  • 运行模式多样:可运行于独立的集群模式中、Hadoop中、也可运行在Amazon EC2云环境中,可访问HDFS、Cassandra、HBase、Hive等数据源。

Scala是一种现代的多范式编程语言,集成了面向对象和函数式语言的特性;从小脚本到建立大系统的编程任务均可胜任;运行在JVM上,兼容Java程序,能融合到Hadoop生态圈;具有强大的并发性,支持分布式系统。

Hadoop缺点:

  • 表达能力有限。计算都要转换成Map和Reduce操作,难以描述复杂的数据处理过程。
  • 磁盘IO开销大。每次执行都需从磁盘读数据,计算过程中,需要将中间结果写入磁盘。
  • 延迟高。一次计算分解成一些列按顺序执行的MR任务,任务间衔接涉及IO开销,产生较高延迟,且一个任务完成前,其他任务无法开始。难胜任复杂、多阶段计算任务。

Spark与Hadoop相比:

  • 其计算模式也属于MR,但不局限与此,还提供多种数据集操作类型(RDD操作),编程模型更加灵活;
  • Spark提供内存计算,中间结果放在内存中,IO开销,延迟低,拥有更高地迭代运算效率;
  • 基于DAG任务调度执行机制,由于MR迭代执行机制。
  • 使用Hadoop需要编写不少相对底层的代码,而Spark提供高层次、简洁的API。
  • Spark主要替代Hadoop中的MR,而不能完全替代Hadoop,它很好地融入了Hadoop生态圈,可借助于YARN实现资源调度管理,借助HDFS实现分布式存储。
  • Hadoop可使用廉价、异构的机器实现分布式存储和计算,而Spark对硬件(内存、CPU)要求稍高。

二、Spark生态系统

Spark的设计遵循“一个软件栈满足不同应用场景”的理念。其生态系统主要包含Spark Core、Spark SQL、Spark Streaming、MLLib和GraphX等组件。

  • Spark Core:包含了Spark的基本功能,如内存计算、任务调度、部署模式、故障恢复、存储管理等。Spark建立在统一的抽象RDD之上,使其可以基本一致的方式应对不同的大数据处理场景。通常所说的Apache Spark,就是指Spark Core;
  • Spark SQL:它允许开发人员直接处理RDD,也可查询Hive、HBase等外部数据源。它的一个重要特点是能够统一处理关系表和RDD,使开发人员使用SQL命令进行查询,并进行复杂的数据分析;
  • Spark Streaming:支持高吞吐量、可容错处理的实时流数据处理,其核心思路是将流式计算分解成一系列短小的批处理作业。支持多种数据输入源,如Kafka、Flume、和TCP套接字。
  • MLlib(机器学习):提供常用的机器学习算法,含聚类、分类、回归、协同过滤。
  • GraphX(图计算):是Spark中用于图计算的API,可认为是Pregel在Spark上的重写和优化。

表 Spark应用场景

应用场景 时间跨度 其他框架 Spark生态系统中的组件
复杂的批量数据处理 小时级 MapReduce、Hive Spark
基于历史数据的交互式查询 分钟级、秒级 Impala、Dremel、Drill Spark SQL
基于实时数据流的数据处理 毫秒级、秒级 Storm、S4 Spark Streaming
基于历史数据的数据挖掘 Mahout MLLib
图结构数据的处理 Pregel、Hama GraphX

三、Spark运行框架

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值