Spark入门(一)—核心概念简介

Spark 天涯孤鸟 1949℃ 0评论

kafka producer

一、Spark是什么

Spark是一个用来实现快速而通用的集群计算的平台。
在速度方面,Spark扩展了广泛使用的MapReduce计算模型,而且高效的支持更多计算模式,包括交互式查询和流处理。Spark的一个主要特点就是能够在内存中计算,因此速度更快。不过即使是必须在磁盘上进行复杂的计算,Spark依然比MapReduce更加高效。
Spark适用于以下场景:批处理,迭代算法、交互式查询、流处理。

二、Spark软件栈

Spark项目包含多个紧密集成的组件。Spark的核心是一个有很多计算任务组成的、运行在多个工作机器或者是一个计算集群上的应用进行调度、分发以及监控的计算引擎。
Spark的各个组件如下图:

kafka producer

(一)、Spark Core

Spark Core 实现了Spark的基本功能,包含任务调度、内存管理、错误恢复、与存储系统交换等模块。Spark Core中还包含了对弹性分布式数据集(简称RDD)的API定义。RDD表示分别在多个计算节点上可以并行操作的元素集合,是Spark主要的编程抽象。Spark Core提供了创建和操作这些集合的多个API.

(二)、Spark SQL

Spark SQL 是Spark用来操作结构化数据的程序包。通过Spark SQL,我们可以使用SQL或者Apache Hive版本的SQL方言(HQL)来查询数据。Spark SQL支持多种数据源,比如Hive表、Parquet以及JSON等。

(三)、Spark Streaming

Spark Streaming是Spark提供的对实时数据进行流式计算的组件。

(四)、MLib

Spark还包含了一个提供常见的机器学习功能的程序库,叫作MLib。MLib提供了很多种机器学习算法,包括分类、回归、聚类、协同过滤等,还提供了模型评估、数据导入等额外的支持功能。

(五)、GraphX

GraphX是用来操作图的程序库,可以进行并行的图计算。

(六)、集群管理器

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


转载请注明:猫头鹰工作室 » Spark入门(一)—核心概念简介

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址