大数据组件之Spark简介

简介

Apache Spark是一个统一的分析引擎,用于大规模数据处理。相对于 MapReduce 的批处理计算,Spark 可以带来上百倍的性能提升,因此它成为继 MapReduce 之后,最为广泛使用的分布式计算框架。

它为Java,Scala,Python和R以及支持一般执行图的优化引擎提供高级API。它还支持丰富的高级工具集,包括SQL和结构化数据处理的Spark SQL,MLLIB用于机器学习,图形处理的Graphx,以及用于增量计算和流处理的结构化流。

架构

Spark应用程序在集群中以独立的进程集合运行,由主程序中创建的SparkContext对象进行调度(称之为驱动程序 Driver Program)。

为了在集群中运行,SparkContext需要连接到几种集群管理器(用于分配应用资源,可以是自己独立的集群管理器、Mesos或YARN)上,一旦建立连接,Spark将获取到集群中的具体执行器(用于对你的应用进行计算和存储的进程)。接下来,SparkContext传送jar或python文件到执行器,并将task发送到执行器中执行。

有几点需要注意:

  1. 每一个应用都有自己的执行进程,它们将存在于应用的整个生命周期并以多线程方式运行任务。这有利于对不同的应用进行隔离,无论是调度侧(每个driver调度自己的任务)还是执行侧(不同应用的任务运行在不同的jvm进程中,如何做到,待验证??)。另外,同时也意味着不能在不同的Spark应用间进行数据共享(在没有使用统一存储系统时)
  2. Spark与集群管理器无关。这话怎么说呢,不是必须组件吗,怎么无关了!!是这样,一旦Spark获取到了执行进程,他们将不再通过集群管理器进行交互,而是直接进行通信
  3. 驱动程序必须能够接收即将到来的执行器请求,所以,它是一个运行在网络可达的工作节点上
  4. 任务调度尽可能的离工作节点近,最好是在同一局域网内,如果想远程发送请求,最好是对其局域网内的驱动进行远程调用,并通过其提交操作指令。

集群管理器有以下几个

  1. Standalone
  2. Apache Mesos
  3. Hadoop YARN
  4. Kuernetes

 

术语含义
ApplicationSpark 应用程序,由集群上的一个 Driver 节点和多个 Executor 节点组成。
Driver program主运用程序,该进程运行应用的 main() 方法并且创建 SparkContext
Cluster manager集群资源管理器(例如,Standlone Manager,Mesos,YARN)
Worker node执行计算任务的工作节点
Executor位于工作节点上的应用进程,负责执行计算任务并且将输出数据保存到内存或者磁盘中
Task被发送到 Executor 中的工作单元
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值