Spark之基本架构和工作原理

一、基本概念

  • Spark是一个基于内存的分布式批处理引擎

二、基本用途

  • 数据处理: 快速处理数据,兼具容错性与扩张性
  • 迭代计算: 有效应对多步数据处理逻辑
  • 数据挖掘: 在海量数据基础上进行复杂的挖掘分析,支持多种数据挖掘和机器学习算法

三、适用场景

1.数据处理、ETL
2.迭代计算、数据重复利用
  • 通话记录分析
3.机器学习
  • 空气质量预测和评价
  • 自动判断买家好/差评
  • 客户流失预测
4.交互式分析
  • 结合hive/hbase数据仓库查询
5.流计算
  • 页面浏览/点击分析
  • 推荐系统
  • 舆情分析

四、对比优势

1.运算效率高
  • 基于内存计算,将中间结果存放内存;
  • 基于DAG的任务调度执行机制,迭代运算效率更高
2.容错性高
  • 使用弹性分布式数据集RDD,数据集部分丢失可重建
3.通用性强
  • 支持多种数据集操作类型  大致分为Transformations和Actions两大类,而MapReduce只提供Map和Reduce操作

五、体系架构

Spark之基本架构和工作原理_第1张图片

六、部署模式

1.local模式

  单机多线程模拟spark分布式计算

  • local  只启动一个Executor。
  • local[k]:  启动K个Executor
  • local[*]:  启动跟CPU数目相同的Executor
2.standalone模式
  • 分布式部署集群,自带完整的服务,资源管理和任务监控是Spark自己监控,这个模式也是其他模式的基础
3.yarn模式
  • 分布式部署集群,资源管理和任务监控交给yarn管理
  • 粗粒度资源分配方式,包括cluster和client运行方式
cluster:适合生产,driver运行在集群子节点,具有容错功能
client:  适合调试,driver运行在客户端
4.mesos模式
  • 运行在mesos资源管理器框架之上,由mesos负责资源管理,spark负责任务调度和计算
5.cloud模式
  • 例如AWS的EC2,使用该模式很方便访问Amazon的S3;Spark支持多种分布式存储系统,包括HDFS和S3

你可能感兴趣的:(Spark,spark)