Spark入门

Spark简介

官网:http://spark.apache.org/

  1. spark生态圈
  • Sparkcore: 就是spark, 包含spark基本功能, 定义RDD的API和操作, 其他的spark库都是建立在sparkcore和RDD上. 相当于MR.

RDD是分布式数据集.

  • Spark SQL: 提供了hive的SQL变种与spark交互的API.每一个数据库表被当成RDD, 将SQL转成spark操作.
  • Spark Streaming: 实时数据流处理,经常和kafka一起使用.
  • Mllib: 机器学习算法.
  • Graphx: 用来图像处理的算法和工具.

Spark的基本架构,术语, 运行原理

  • Application
  • Driver
  • ClusterManager: 资源管理器, 提供资源管理服务.
  • Worker
  • Executor: 运行在worker节点上的进程.
  • Job: 多个task组成的并行运算.
  • Stage: Job会拆分成多组task, 一组task就是taskset, 就是一个stage, 产生的依据就是依赖关系: 宽依赖和窄依赖, 是否有shuffle产生.
  • Task: 就是运行在Executor进程中的任务.

RDD

RDD运行原理

Spark是以RDD的方式存在.是一个弹性分布式数据集.是基于分区的只读的记录.

  • 高容错性
  • 并行处理

RDD操作类型:

  • Transformations: 从一个RDD产生另一个RDD
  • Actions: 就是把RDD的操作结果返回给Driver

分区依赖

  • 宽依赖
  • 窄依赖

搭建

运行模式

  • local –在IEA中测试用
  • stanalone –Spark自带调度框架, 支持分布式搭建, 可以运行Spark任务
  • yarn –hadoop生态圈中资源调度框架
  • mesos –资源调度框架

API介绍

  • Configuration
    • 设置运行模式
    • 设置webui中application名称
    • 设置当前spark运行资源(内存+core)

spark word count

1
2
3
4
5
6
7
8
9
10
11
//配置

//读取文件

//读取一行

//切分数据

//记数(key, 1)

// reduceByKey 1.相同的key分组, 2. 对一组key对应的value进行处理
Donate comment here