Spark概述

Spark

什么是Spark

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

Spark 内置模块

在这里插入图片描述

Spark Core: 实现Spark的基本功能,包含任务调度吗,内容管理,错误恢复,与存储系统交互等模块。Spark Core中还包含对弹性分布式数据集(简称RDD)的API定义。

Spark SQL: 是spark用来操作结构化数据的程序包,通过SparkSQL,我们可以使用SQL或者ApacheHive版本的SQL方法(HQL)。SparkSQL支持多种数据源,比如Hive表,parquet,以及JSON。

Spark Streaming: 是Spark提供对针对实时数据进行流式处理的组件,提供了用来采集数据的API,并且与SparkCore中的RDD API高度对应。

Spark MLlib: 提供常见的机器学习(ML)功能的程序库。包括分类、回归、聚类、协同过滤等,还提供了模型评估、数据 导入等额外的支持功能。

集群管理器: Spark 设计为可以高效地在一个计算节点到数千个计算节点之间伸缩计算。为了实现这样的要求,同时获得最大灵活性,Spark 支持在各种集群管理器(Cluster Manager)上运行,包括 Hadoop YARN、Apache Mesos,以及 Spark 自带的一个简易调度器,叫作独立调度器。

Spark 运行模式

Spark运行模式分为本地模式,Standalone 模式,和Yarn模式

本地模式:
  • local: 所有计算都运行在一个线程当中,没有任何并行计算,通常我们在本机执行一些测试代码,或者练手,就用这种模式;

  • local[K]: 指定使用几个线程来运行计算,比如local[4]就是运行4个Worker线程。通常我们的Cpu有几个Core,就指定几个线程,最大化利用Cpu的计算能力;

  • local[*]: 这种模式直接帮你按照Cpu最多Cores来设置线程数了。

使用案例

	bin/spark-submit \
	--class <main-class>       //你的应用的启动类 (如 org.apache.spark.examples.SparkPi)
	--master <master-url> \     // 指定 Master 的地址,默认为 Local
	--deploy-mode <deploy-mode> \   //是否发布你的驱动到 worker 节点(cluster) 或者作为一个本地客户端
	--conf <key>=<value> \				//任意的 Spark 配置属性, 格式 key=value.
	... # other options
	<application-jar> \				//打包好的应用 jar,包含依赖. 这个 URL 在集群中全局可见。
	[application-arguments]

提交流程:

  • 提交任务分析:
    在这里插入图片描述

角色介绍:

  • Driver(驱动器):

    • 1)把用户程序转为任务
    • 2)跟踪 Executor 的运行状况
    • 3)为执行器节点调度任务
    • 4)UI 展示应用运行状况
  • Executor(执行器):

    • 1)负责运行组成 Spark 应用的任务,并将结果返回给驱动器进程
    • 2)通过自身的块管理器(Block Manager)为用户程序中要求缓存的 RDD 提供内存式存储。RDD 是直接缓存在 Executor 进程内的,因此任务可以在运行时充分利用缓存数据加速运算
Standalone 模式

构建一个由 Master+Slave 构成的 Spark 集群,Spark 运行在集群中。
在这里插入图片描述

Yarn 模式
  • Spark 客户端直接连接 Yarn,不需要额外构建 Spark 集群。有 yarnclient 和 yarn-cluster 两种模式,主要区别在于:Driver 程序的运行节点。
    • yarn-client:Driver 程序运行在客户端,适用于交互、调试,希望立即看到 app 的输出
    • yarn-cluster:Driver 程序运行在由 RM(ResourceManager)启动的 AP(APPMaster)适用于生产环境。
      在这里插入图片描述
Mesos 模式

Spark 客户端直接连接 Mesos;不需要额外构建 Spark 集群。国内应用比较少,更多的是运用 yarn 调度。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值