Spark简单介绍

spark是什么?

spark是基于内存计算的通用大数据并行计算框架,是一个快速、通用可扩展的大数据分析引擎。它给出了大一统的软件开发栈,适用于不同场合的分布式场景,如批处理、迭代算法、交互式查询、流处理、机器学习和图计算。

spark组件

在这里插入图片描述
图1 spark软件栈
SparkSQL:提供了类sql方式操作结构化半结构化数据。

SparkStreaming:提供了近乎实时的流式数据处理,与storm相比有更高的吞吐量。

SparkMl:提供了常见的机器学习算法库,包括分类、回归、聚类、协同工过滤等,还提供模型评估、数据处理等额外功能,使得机器学习能够更加方便的在分布式大数据环境下,快速的对数据进行处理形成模型后提供在线服务。

Graphx:用来操作图的程序库,可以进行并行的图计算。支持各种常见的图算法,包括page rank、Triangle Counting等。

spark架构

在这里插入图片描述

图2整体架构图

Spark采用了分布式架构的master-slave模型,

Master节点对应图中的Cluster Manager节点。Sl控制整个集群、监控work节点负责资源管理和调度,支持spark本身的standlone、Apache Mesos、hadoop yarn等集中模式,

Work node节点,从节点,在yarn中可以称之为NodeManager,负责控制计算节点,启动Executor进程负责从节点应用的执行。Task是其中分配到计算节点的计算单元

Driver:执行用户的业务逻辑启动其中的main函数,创建sparkContext,sc是整个应用的上下文,控制应用的生命周期。

具体的执行过程为:

用户在某个spark client提交应用以cluster或者client模式运行,若是以client方式提交任务,则提交节点为driver,若是以cluster模式,Cluster Manager会分配某个Work节点为driver来启动应用。

driver会向master或者资源管理器按照任务设置的cpu和内存信息等申请执行的资源,并启动executor,之后在执行程序过程中会形成RDD Graph,其中又包含两阶段调度,首先是RDD Graph由DAGSchedule转化成不同stage dag 提交给TaskScheduler,由TaskScheduler把 taskSet提交给executor执行。

spark的主要应用

主要是用与数据处理和数据科学应用,数据处理主要是数据工程师用来数据的查询分析、实时流数据处理等,数据科学主要是算法工程师对数据进行训练建模预测。在国内外大企业中spark集群得到广泛使用。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

house.zhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值