Spark(一)概述

基本概念

  • Spark是一种基于内存的快速、通用、可扩展的大数据分析计算引擎

Spark vs Hadoop

  • Spark和Hadoop的根本差异是多个作业之间的数据通信问题:Spark多个作业之间数据通信是基于内存,而Hadoop是基于磁盘
Hadoop Spark
类型 分布式基础平台, 包含计算, 存储, 调度 分布式计算工具
场景 大规模数据集上的批处理 迭代计算, 交互式计算, 流计算
价格 对机器要求低, 便宜 对内存有要求, 相对较贵
编程范式 Map+Reduce, API较为底层, 算法适应性差 RDD组成DAG有向无环图, API较为顶层, 方便使用
数据存储结构 MapReduce中间计算结果存在HDFS磁盘上, 延迟大 RDD中间运算结果存在内存中 , 延迟小
运行方式 Task以进程方式维护, 任务启动慢 Task以线程方式维护, 任务启动快

Spark核心模块

  • Spark Core:实现了Spark的基本功能,包含RDD、任务调度、内存管理、错误恢复、与存储系统交互等模块
  • Spark SQL:Spark用来操作结构化数据的程序包,通过Spark SQL,我们可以使用SQL操作数据
  • Spark Streaming:Spark提供的对实时数据进行流式计算的组件,提供了用来操作数据流的API
  • Spark MLlib:提供常见的机器学习(ML)功能的程序库,包括分类、回归、聚类、协同过滤等,还提供了模型评估、数据导入等额外的支持功能
  • GraphX(图计算):Spark中用于图计算的API,性能良好,拥有丰富的功能和运算符,能在海量数据上自如地运行复杂的图算法
  • 集群管理器:Spark设计为可以高效地在一个计算节点到数千个计算节点之间伸缩计算
  • Structured Streaming:处理结构化流,统一了离线和实时的API

Spark运行模式

local本地模式(单机)

  • 学习测试使用
  • 分为local单线程和local-cluster多线程

standalone独立集群模式

  • 学习测试使用
  • 典型的 Mater/slave 模式

standalone-HA高可用模式

  • 生产环境使用
  • 基于standalone模式

on yarn集群模式

  • 生产环境使用
  • 运行在yarn集群之上,由yarn负责资源管理,Spark负责任务调度和计算
  • 计算资源按需伸缩,集群利用率高,共享底层存储,避免数据跨集群迁移

on mesos集群模式

  • 国内使用较少
  • 运行在mesos资源管理器框架之上,由mesos负责资源管理,Spark负责任务调度和计算

on cloud集群模式

  • 中小公司未来会更多的使用云服务
  • 比如AWS的EC2,使用这个模式能很方便的访问Amazon的S3
posted @ 2024-09-20 09:49  一年都在冬眠  阅读(79)  评论(0)    收藏  举报