Spark基础入门

spark简介

spark最初诞生于美国加州大学伯克利分校的AMP实验室,是一个可用于大规模的

Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发的通用内存并行计算框架

Spark使用Scala语言进行实现,它是一种面向对象、函数式编程语言,能够像操作本地集合对象一样轻松地操作分布式数据集,具有以下特点。

1.运行速度快:Spark拥有DAG执行引擎,支持在内存中对数据进行迭代计算。官方提供的数据表明,如果数据由磁盘读取,速度是Hadoop MapReduce的10倍以上,如果数据从内存中读取,速度可以高达100多倍。

2.易用性好:Spark不仅支持Scala编写应用程序,而且支持Java和Python和R语言进行编写,特别是Scala是一种高效、可拓展的语言,能够用简洁的代码处理较为复杂的处理工作。

3.通用性强:Spark生态圈即BDAS包含了Spark Core、Spark SQL、Spark Streaming、MLLib和GraphX等组件,这些组件分别处理Spark Core提供内存计算框架、SparkStreaming的实时处理应用、Spark SQL的即席查询、MLlib或MLbase的机器学习和GraphX的图处理。

4.随处运行:Spark具有很强的适应性,能够读取HDFS、Cassandra、HBase、S3和Techyon为持久层读写原生数据,能够以Mesos、YARN和自身携带的Standalone作为资源管理器调度job,来完成Spark应用程序的计算

5.与Hadoop最大的区别就是spark会把计算数据和中间结果都保存在内存里。

如图是Hadoop的执行原理

Spark基础入门_第1张图片

 下图是spark的运行原理

Spark基础入门_第2张图片

 不难看出spark把数据存储在内存里大大减轻了io在传输中的时间大大的减少了读写的time。

spark生态系统

在实际运用中大数据一般分为下面三种

  1. 复杂的批量数据处理:时间跨度在十几分钟到数小时之间。
  2. 基于历史数据的交互式查询

      3.基于实时数据流的数据处理

但是以上三种场景都得需要不同的软件来进行,spark就可以完美的完成这三点。

他们分别用sparkcore,sparksql,sparkstreaming,structstreing。

  1. sparkcore,是spark最核心的功能
  2. sparksql 适用于结果化数据处理的组件允许开发人员查询hivehbase等等数据源、也可以直接处理rdd
  3. spark streaming 众所周知,Hadoop不能进行实时的计算但是spark就可以完成,用sparkstreaming

你可能感兴趣的:(spark,scala,big,data)