Spark 概述

举报
Smy1121 发表于 2019/06/21 19:53:11 2019/06/21
【摘要】 Apache Spark™ is a fast and general engine for large-scale data processing.

Spark 是什么?

● 官方文档解释:Apache Spark™ is a fast and general engine for large-scale data processing.


通俗的理解:Spark是基于内存计算的大数据并行计算框架。Spark基于内存计算,提高了在大数据环境下数据处理的实时性,同时保证了高容错性和高可伸缩性,允许用户将Spark 部署在大量廉价硬件之上,形成集群。


● 扩展了MapReduce计算模型;相比与MapReduce编程模型,Spark提供了更加灵活的DAG(Directed Acyclic Graph) 编程模型, 不仅包含传统的map、reduce接口, 还增加了filter、flatMap、union等操作接口,使得编写Spark程序更加灵活方便。


● 高效支持多种计算模式;Spark 不仅可以做离线运算,还可以做流式运算以及迭代式运算。


Spark 组成---大一统软件栈

image.png


Spark Core

● Spark Core 实现了Spark 的基本功能,包含任务调度、内存管理、错误恢复、与存储系统交互等模块。

● RDD(resilient distributed dataset,弹性分布式数据集)的API 定义。RDD是一个抽象的数据集,提供对数据并行和容错的处理。初次使用RDD时,其接口有点类似Scala的Array,提供map,filter,reduce等操作。但是,不支持随机访问。刚开始不太习惯,但是逐渐熟悉函数编程和RDD 的原理后,发现随机访问数据的场景并不常见。


Spark SQL

● Spark SQL 是Spark 用来操作结构化数据的程序包。

● Spark SQL 直接兼容Hive SQL。

● 多数据源(Hive表、Parquet、JSON等);Spark SQL 可以操作Hive表,可以读取Parquet文件(列式存储结构),可以读取JSON文件,还可以处理hdfs上面的文件。

● SQL与RDD编程结合使用。

● 从Shark演变到Spark SQL。


Spark Streaming

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

● 微批处理(Storm、Flink)—从批处理到流处理


Spark MLlib

● Spark 提供的包含常见机器学习(ML)功能的库。

● 分类、回归、聚类、协同过滤等

● 模型评估、数据导入等额外的支持功能

● Mahout(Runs on distributed Spark, H2O, and Flink)


GraphX

● GraphX是Spark 提供的图计算和图挖掘的库。

● 与Spark Streaming 和Spark SQL 类似,GraphX 也扩展了Spark 的RDD API,能用来创建一个顶点和边都包含任意属性的有向图

● GraphX还支持针对图的各种计算和常见的图算法。



Spark与Hadoop的关系

Spark与Hadoop的关系---青于于蓝

image.png

Spark与Hadoop的关系---相辅相成

image.png

Spark的竞争对手---Flink


● Flink是先有流处理后有批处理

● Pipeline vs Stage

● http://note.youdao.com/share/?id=f3b0a1832e4ee43e3e3635913d5e00e1&type=note


Spark的竞争对手---Storm/JStorm

● Storm仅限于流计算(topology)

● JStorm参照Flink改进了Storm

Spark的竞争对手---Hadoop3.x


http://news.cnw.com.cn/news-international/htm2016/20160603_327510.shtml


【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。