Spark设计理念和基本架构

Spark 特点
减少Disk IO

Spark 将资源文件(jar 等),缓存在driver 本地文件服务的内存里,当Executor执行任务时直接从 Driver 的内存中读取

增加并行度

多个stage 之间允许串行也可以并行

避免重新计算

当stage 中某个分区的task 失败,会重新对此stage 调度,但重新调度时会过滤掉已经成功执行的分区task

较为灵活的内存管理策略

四个部分

  • onheap 存储内存
  • onheap 执行内存
  • offheap 存储内存
  • offheap 执行内存

执行内存和存储内存之间可以互相借用

Spark 模块设计
SparkContext

Spark 应用程序的提交和执行都离不开 SparkContext,
SparkSession的底层实现依赖于 SparkContext

  • SparkSession、SQLContext、 HiveContext等都对SparkContext
    进行了封装,并提供了DataFrame、 SQL、Hive 接口
  • 用户可以SparkContext 提供的接口编写 Driver 应用程序
SparkEnv

SparkEnv 是 Spark 中 task 允许时所必须的组件

Spark 基本架构

Cluster Manager
  • Yarn 模式下,为 ResourceManager
  • StandAlone 模式下, 为master
worker
  • Yarn 模式下,为 NodeManager
spark的数据本地性(data locality)

参考链接: https://www.cnblogs.com/lillcol/p/14838348.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spark和Presto都是用于大数据处理和分析的开源工具,但它们在设计理念和功能上有一些区别。 1. 数据处理模型: - Spark是基于批处理和流处理模型的通用计算引擎。它使用弹性分布式数据集(RDD)作为基本数据结构,可以在内存中高效地进行数据处理和计算。 - Presto是一种用于交互式查询和分析的分布式SQL查询引擎。它使用分布式查询执行引擎来实现高性能的查询处理,可以实时地对大规模数据进行查询和分析。 2. 数据源和集成: - Spark提供了丰富的数据源连接器和集成,可以与各种数据存储系统(如HDFS、Hive、关系型数据库等)无缝集成。 - Presto也支持多种数据源,但它更专注于与各种数据源进行SQL查询交互,包括Hive、关系型数据库、NoSQL数据库等。 3. 执行引擎: - Spark使用基于内存的计算模型和优化器来执行任务。它将计算任务划分为一系列阶段,并使用任务调度器进行调度和执行。 - Presto使用一种基于内存的分布式查询执行引擎,可以将查询计划划分为多个任务,并通过协调器和工作节点进行并行执行。 4. 扩展性和性能: - Spark提供了基于内存的计算模式和分布式计算框架,可以在大规模集群上进行扩展。它在处理大数据量和复杂计算时表现出色。 - Presto也具有良好的可扩展性,并且可以通过添加更多的工作节点来提高查询性能。它在交互式查询和复杂分析方面表现出色。 总体而言,Spark适用于更广泛的数据处理和计算场景,而Presto则更适合于交互式查询和分析。选择使用哪个工具取决于具体的需求和使用情景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值