大数据之Spark

大数据之Spark

背景:

由于MapReduce框架仅支持map和reduce两种操作,且迭代计算效率低,不适合交互式处理(数据挖掘),流式处理,不支持函数式编程语言(scala)。之前各种技术框架如,批处理的:HIVE,PIG,Mapreduce。流计算的storm,交互式计算的Impala,而spark是在此基础上的集大成者!统一了框架!

大数据之Spark

大数据之Spark

特点:

  • 高效:基于内存的计算框架,比Mapreduce快10-100倍。
  • 易用:支持python,scala,java三种语言,代码量比mapreduce少2-5倍,有丰富的API。
  • 容错:与hadoop,yarn集成,支持读写HDFS/HBASE。

RDD

Resilient Distributed Datasets,弹性分布式数据集。是Rspark核心概念,分布在集群中只读对象集合,可以存储在内存或者硬盘中。可以通过并行转换操作构造,失效后自动重构。

RDD基本操作(operation):

大数据之Spark

  1. Transformation(转换):通过scala或者hadoop数据集构造新的RDD,通过已有的RDD产生新RDD。
  2. Action(行动):操作在RDD上的一些列计算。

惰性执行机制

一段spark代码不会执行,直到遇到第一个action。

程序运行模式

大数据之Spark

大数据之Spark

大数据之Spark

大数据之Spark

大数据之Spark

lamda架构

大数据之Spark