大数据原理-Spark

概述:

基于内存计算
三大分布式计算系统:Hadoop、Spark、Storm

特点:

采用有向无环图DAG作业调度
运行速度快
循环数据流
容易使用:可以通过Spark Shell交互式编程
用途:SQL查询、流式计算、机器学习、图算法组件
部署:Hadoop的yarn框架调度、单独部署等等

Spark主要语言:

Scala(scalable可扩展):多范式编程语言(面向对象、函数式编程)
兼容Java可以运行在JVM,强大并发性,更好支持分布式系统

Spark生态系统:

复杂的批量数据处理:MR
历史数据的交互式查询:Impala
实时数据流处理:Storm

内存计算:Spark Core
交互式查询分析:Spark SQL
流计算: Spark Streaming
机器学习算法库组件:Mlib
图计算:GraphX

运行架构:

RDD:分布式内存抽象概念
DAG:有向无环图
Executor:负责运行任务Task
Application:编写Spark
Task:工作单元
Job:包含多个RDD
Stage:Job基本调度单位(任务集合)

worknode 中 有execute

一个Application由一个Driver管家和多个worker node

运行基本流程:

Driver构建运行环境:创建SparkContext与资源管理器申请资源
资源管理器为Execute申请资源
根据RDD依赖关系构建DAG,DAG提交给DAGScheduler解析成Stage
把TaskSet提交给TaskScheduler
Execute申请Task,运行

RDD:
分布式对象集合
不断转换
不需要不断写入磁盘

Spark SQL
Shark:hive on Spark

部署应用:

Standalone
Spark on Mesos
Spark on YARN
底层HDFS存储 YARN资源调度 部署Spark

你可能感兴趣的:(大数据原理,分布式,编程语言,分布式计算,hadoop,spark)