简介

Spark是基于内存计算的大数据分布式计算框架。Spark基于内存计算,提供可交互查询方式,提供近实时处理方式,提高了在同时保证了高容错性和高可伸缩性,允许用户将Spark部署在大量廉价硬件之上,形成集群。

Spark使用Scala语言进行实现,它是一种面向对象、函数式编程语言,能够像操作本地集合对象一样轻松地操作分布式数据集(Scala提供一个称为Actor的并行模型,其中Actor通过它的收件箱来发送和接收非同步信息而不是共享数据,该方式被称为:Shared Nothing模型)。

特点

  • 运行速度快
    数据从内存中读取,速度可以高达HadoopMapReduce的100多倍。
  • 易用性
    支持3种语⾔言的API:scala、java、python,特别是Scala是一种高效、可拓展的语言,能够用简洁的代码处理较为复杂的处理工作。
  • 通用性强
    Spark生态圈即BDAS(伯克利数据分析栈)包含了Spark Core、Spark SQL、Spark Streaming、MLLib和GraphX等组件,这些组件分别处理Spark Core提供内存计算框架、SparkStreaming的实时处理应用、Spark SQL的即席查询、MLlib或MLbase的机器学习和GraphX的图处理,它们都是由AMP实验室提供,能够无缝的集成并提供一站式解决平台。
  • 随处运行
    Spark具有很强的适应性,能够读取HDFS、HBase、Cassandra S3和Techyon为持久层读写原生数据,能够以Mesos、YARN和自身携带的Standalone作为资源管理器调度job,来完成Spark应用程序的计算。

Spark的适用场景

  • Spark是基于内存的迭代计算框架,适用于需要多次操作特定数据集的应用场合。需要反复操作的次数越多,所需读取的数据量越大,受益越大,数据量小但是计算密集度较大的场合,受益就相对较小
  • 由于RDD的特性,Spark不适用那种异步细粒度更新状态的应用,例如web服务的存储或者是增量的web爬虫和索引。就是对于那种增量修改的应用模型不适合
  • 数据量不是特别大,但是要求实时统计分析需求

最后更新: 2018年10月09日 16:42

原始链接: https://www.lousenjay.top/2018/10/09/Spark入门详解(一)/