大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比

点一下关注吧!!!非常感谢!!持续更新!!!

目前已经更新到了:

Hadoop(已更完)

HDFS(已更完)

MapReduce(已更完)

Hive(已更完)

Flume(已更完)

Sqoop(已更完)

Zookeeper(已更完)

HBase(已更完)

Redis (已更完)

Kafka(已更完)

Spark(新开的坑!正在更新!)

章节内容

上节我们完成了如下的内容:


Kafka集群监控方案

JConsole

Kafka Eagle

JavaAPI获取集群指标

简单介绍

在技术的不断迭代中,一路发展,三代技术引擎:

  • MapReduce 昨天
  • Spark 今天
  • Flink 未来

MapReduceSpark都是类MR的处理引擎,底层原理非常相似。

什么是Spark

Spark的发展历程如下图: Spark特点

速度快,与MapReduce相比,Spark基于内存运算要快100倍以上,基于硬盘运算也要快10倍以上。Spark实现了高效的DAG执行引擎,可以通过基于内存来高效的处理流数据

使用简单,Spark支持Scala、Java、Python、R的API,还支持超过80种算法,使用户可以快速构建不同的应用。而且Spark支持交互式的Python和Scala的Shell,可以非常方便的在这些Shell中使用Spark集群来验证解决问题的方法

通用性好,Spark提供了统一的解决方案,Spark可以用于批处理、交互式查询(SparkSQL)、实时流处理(SparkStreaming)、机器学习(SparkMLlib)和图计算(GraphX)。这些不同类型的处理都可以在同一个应用中无缝衔接。Spark统一解决方案非常具有吸引力,企业想用统一的平台去处理遇到的问题,减少开发和维护人力的成本和部署平台的物力成本。

兼容性好,Spark可以非常方便的和其他开源的产品进行融合,Spark可以使用YARN、Mesos作为它的资源管理和调度器。可以处理所有Hadoop支持的数据,包括HDFS、HBase、Cassandra等。这对于已经部署Hadoop集群的用户特别重要,因为不需要任何的数据迁移就可以使用Spark。Spark也可以不依赖于其它第三方的资源管理和调度器,它实现了Standalone作为其内置的资源管理和调度框架,这样进一步降低了Spark的使用门槛,使得所有人可以非常容器的部署和使用Spark。

Spark与Hadoop

狭义上

从狭义上看:Hadoop是一个分布式框架,由存储、资源调度、计算三部分组成

Spark是一个分布式计算引擎,是由Scala编写的计算框架,基于内存的快速、通用、可扩展的大数据分析引擎。


广义上

从广义上看:Spark是Hadoop生态中不可或缺的一部分。


MapReduce不足

表达能力有限

磁盘IO开销大

延迟高:任务之间有IO开销,在前一个任务完成之前,另一个任务无法开始。

相对于Spark,Spark的设计要更高效,Spark在借鉴MapReduce优点的同时,很好的解决了MapReduce所面临的问题:

两者对比

Spark的计算模式也属于MapReduce,是对MR框架的优化。


数据存储结构:MapReduce是磁盘HDFS,Spark是内存构建的弹性分布式数据集RDD

编程范式:Map+Reduce表达力欠缺,Spark提供了丰富操作使数据处理代码很短

运行速度:MapReduce计算中间结果存磁盘,Spark中间结果在内存中

任务速度:MapReduce任务以进程,需要数秒启动,Spark是小数据集读取在亚秒级

实际应用

批量处理(离线处理):通常时间跨度在分钟到小时

交互式查询:通常时间跨度在十秒到数十分钟

流处理(实时处理):通常跨度在数百毫秒到数秒

在面对上述的三个场景中,我们通常的解决方案是:


MapReduce

Hive

Impala 或 Storm

但是对应的也带来一些新的问题:


不同场景之间输入输出数据无法做到无缝共享,通常需要进行数据格式的转换、

不同的软件需要不同的开发和维护团队,带来了较高的维护和使用成本

比较难以通一个集群中的各个系统进行统一的资源协调和分配

系统架构

Spark运行包括如下:


Cluster Manager

Worker Node

Driver

Executor

ClusterManager

ClusterManager 是集群资源的管理者,Spark支持3中集群部署模式:


Standalone

YARN

Mesos

WorkerNode

WorkerNode是工作节点,负责管理本地资源。


Driver Program

运行应用的 main() 方法并且创建了 SparkContext。由ClusterManager分配资源,SparkContext发送Task到Executor上执行。


Executor

Executor在工作节点上运行,执行Driver发送的Task,并向Driver汇报计算结果。


部署模式

Standalone

独立模式,自带完整的服务,可单独部署到一个集群中,无需依赖其他任何的资源管理系统,从一定程度上说,该模式是其他模式的基础

Cluster Manager: Master

WorkerNode:Worker

仅支持粗粒度的资源分配方式

SparkOnYARN

YARN拥有强大的社区支持,且逐步成为大数据集群资源管理系统的标准

在国内生产环境中运用最广泛的部署模式

SparkOnYARN 支持的两种模式:yarn-cluster(生产环境),yarn-client(交互和调试)

Cluster Manager:ResourceManager

WorkNode:NodeManager

仅支持粗粒度的资源分配方式

SparkOnMesos

官方推荐模式,Spark开发之初就考虑到了支持Mesos

Spark运行在Mesos上会更加的灵活,更加自然

ClusterManager:MesosMaster

WorkNode: MesosSlave

支持粗粒度、细粒度的资源分配方式

粗粒度模式

Coarse-grained Mode:每个程序的运行由一个Driver和若干个Executor组成,其中每个Executor占用若干资源,内部可以运行多个Task。应用程序的各个任务正式运行之前,需要将运行环境中的资源全部申请好,且运行过程中需要一直占用着这些资源,即使不用,最后程序运行结束后,自动回收这些资源。


细粒度模式

鉴于粗粒度模式造成的大量资源的浪费,SparkOnMesos还提供了另一个调度模式就是细粒度模式。

这种模式类似于现在的云计算思想,核心是按需分配。


如何选择

生产环境中原则YARN,国内使用最广的模式

Spark的初学者,Standalone模式,简单

开发测试环境可选Standalone

数据量不太大、应用不复杂,可使用Standalone

相关术语

Application 用户提交的Spark应用程序,由集群中的一个Driver和许多的Executor组成

ApplicationJAR 一个包含Spark应用程序的JAR,JAR不应该包含Spark或者Hasoop的JAR

DriverProgram运行应用程序的main(),并创建SparkContext

ClusterManager管理集群资源的服务,如Standalone、YARN、Mesos

DeployMode区分Driver进程在何处运行,在Cluster模式下,在集群内部运行Driver,在Client模式下,Driver在集群外部运行

Worker Node 运行应用程序的工作节点

Executor 运行应用程序Task和保存数据,每个应用程序都有自己的Executors,并且和Executor相互独立

Task Executors 应用程序的最小单元

Job,在用户程序中,每次调用Action函数都会产生一个新的Job,也就是说每一个Action都会生成一个Job

Stage,一个Job被分解为多个Stage,每个Stage是一系列Task的集合


相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
7天前
|
大数据
【赵渝强老师】大数据主从架构的单点故障
大数据体系架构中,核心组件采用主从架构,存在单点故障问题。为提高系统可用性,需实现高可用(HA)架构,通常借助ZooKeeper来实现。ZooKeeper提供配置维护、分布式同步等功能,确保集群稳定运行。下图展示了基于ZooKeeper的HDFS HA架构。
|
1月前
|
SQL 存储 分布式计算
ODPS技术架构深度剖析与实战指南——从零开始掌握阿里巴巴大数据处理平台的核心要义与应用技巧
【10月更文挑战第9天】ODPS是阿里巴巴推出的大数据处理平台,支持海量数据的存储与计算,适用于数据仓库、数据挖掘等场景。其核心组件涵盖数据存储、计算引擎、任务调度、资源管理和用户界面,确保数据处理的稳定、安全与高效。通过创建项目、上传数据、编写SQL或MapReduce程序,用户可轻松完成复杂的数据处理任务。示例展示了如何使用ODPS SQL查询每个用户的最早登录时间。
90 1
|
1月前
|
存储 分布式计算 大数据
大数据-169 Elasticsearch 索引使用 与 架构概念 增删改查
大数据-169 Elasticsearch 索引使用 与 架构概念 增删改查
57 3
|
7天前
|
SQL 数据采集 分布式计算
【赵渝强老师】基于大数据组件的平台架构
本文介绍了大数据平台的总体架构及各层的功能。大数据平台架构分为五层:数据源层、数据采集层、大数据平台层、数据仓库层和应用层。其中,大数据平台层为核心,负责数据的存储和计算,支持离线和实时数据处理。数据仓库层则基于大数据平台构建数据模型,应用层则利用这些模型实现具体的应用场景。文中还提供了Lambda和Kappa架构的视频讲解。
【赵渝强老师】基于大数据组件的平台架构
|
7天前
|
Docker 微服务 容器
使用Docker Compose实现微服务架构的快速部署
使用Docker Compose实现微服务架构的快速部署
17 1
|
15天前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第27天】在大数据时代,数据湖技术凭借其灵活性和成本效益成为企业存储和分析大规模异构数据的首选。Hadoop和Spark作为数据湖技术的核心组件,通过HDFS存储数据和Spark进行高效计算,实现了数据处理的优化。本文探讨了Hadoop与Spark的最佳实践,包括数据存储、处理、安全和可视化等方面,展示了它们在实际应用中的协同效应。
59 2
|
17天前
|
分布式计算 大数据 Apache
Apache Spark & Paimon Meetup · 北京站,助力 LakeHouse 架构生产落地
2024年11月15日13:30北京市朝阳区阿里中心-望京A座-05F,阿里云 EMR 技术团队联合 Apache Paimon 社区举办 Apache Spark & Paimon meetup,助力企业 LakeHouse 架构生产落地”线下 meetup,欢迎报名参加!
84 3
|
16天前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第26天】本文详细探讨了Hadoop与Spark在大数据处理中的协同作用,通过具体案例展示了两者的最佳实践。Hadoop的HDFS和MapReduce负责数据存储和预处理,确保高可靠性和容错性;Spark则凭借其高性能和丰富的API,进行深度分析和机器学习,实现高效的批处理和实时处理。
56 1
|
7天前
|
分布式计算 资源调度 Hadoop
【赵渝强老师】部署Hadoop的本地模式
本文介绍了Hadoop的目录结构及本地模式部署方法,包括解压安装、设置环境变量、配置Hadoop参数等步骤,并通过一个简单的WordCount程序示例,演示了如何在本地模式下运行MapReduce任务。
|
1月前
|
SQL 存储 分布式计算
大数据-157 Apache Kylin 背景 历程 特点 场景 架构 组件 详解
大数据-157 Apache Kylin 背景 历程 特点 场景 架构 组件 详解
25 9