大数据基础之Spark

背景

Spark 是 2010 年由 UC Berkeley AMPLab 开源的一款 基于内存的分布式计算框架,2013 年被Apache 基金会接管,是当前大数据领域最为活跃的开源项目之一(http://spark.apache.org/)。

Spark 在 MapReduce 计算框架的基础上,支持计算对象数据可以直接缓存到内存中,大大提高了整体计算效率。特别适合于数据挖掘与机器学习等需要反复迭代计算的场景。

特性

高效:Spark提供 Cache 机制,支持需要反复迭代的计算或者多次数据共享,基于Spark 的内存计算比 Hadoop MapReduce 快100倍。

易用:Spark提供 20 多种数据集操作类型,并支持使用 Python 和 Scala 脚本开发应用。

先进架构:Spark采用 Scala 语言编写,基于 DAG 图的执行引擎,减少多次计算之间中间结果写到 HDFS 的开销。

应用场景

Spark之上有四种应用工具库。

Spark Streaming: 用于流式计算。

MLlib:用于机器学习(聚类、协同过滤等)。

Spark SQL:用于处理结构化数据。

GraphX:用于图和图并行计算的API。

目前主要应用在广告精准投放系统日志报表即时查询、以及推荐系统等业务场景。这些应用场景的共同特点是计算量大且效率要求高。

部署模式

Spark有三种部署模式。

Standalone:使用Spark自带的集群管理器。

Spark on Mesos:使用 Mesos 管理资源。

Spark on YARN:使用 YARN 管理资源。

任务流程

Spark重要组件包括 Driver Program(Driver) 和 Executor。以 Standalone(Driver 运行在 Client)模式为例介绍任务执行流程。

1. 客户端运行用户程序,启动 Driver。

2. Driver将作业转换为DAG图(类似数据处理的流程图),根据策略将DAG图划分为多个Stage,最终生成一系列最小可执行的Task。

3. Driver根据Task的需求,向Master申请运行Task所需的资源。

4. Master为Task调度分配满足需求的Worker节点,在Worker节点启动Exeuctor。

5. Exeuctor启动后向Driver注册。

6. Driver将Task调度到Exeuctor执行。

7. Executor执行结果写入文件或返回Driver。

原文发布于微信公众号 - 加米谷大数据(DtinoneBD)

原文发表时间:2018-04-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏测试开发架构之路

【转载】Impala和Hive的区别

Impala是基于Hive的大数据实时分析查询引擎,直接使用Hive的元数据库Metadata,意味着impala元数据都存储在Hive的metastore中...

1992
来自专栏鸿的学习笔记

Spark生态系统的顶级项目

Spark开发了一个丰富的生态系统,包括le 官方和第三方工具。 我们来看看5个以不同方式加强了Spark的第三方项目。

1032
来自专栏我是攻城师

Pig0.15集成Tez,让猪飞起来

3826
来自专栏CSDN技术头条

MongoDB + Spark: 完整的大数据解决方案

Spark介绍 按照官方的定义,Spark 是一个通用,快速,适用于大规模数据的处理引擎。 通用性:我们可以使用Spark SQL来执行常规分析, Spark ...

6199
来自专栏CSDN技术头条

Spark Streaming vs. Kafka Stream 哪个更适合你?

译者注:本文介绍了两大常用的流式处理框架,Spark Streaming和Kafka Stream,并对他们各自的特点做了详细说明,以帮助读者在不同的场景下对框...

6876
来自专栏叁金大数据

漫谈未来的HDFS

前面我们提到的HDFS,了解了HDFS的特性和架构。HDFS能够存储TB甚至PB规模的数据是有前提的,首先数据要以大文件为主,其次NameNode的内存要足够大...

1503
来自专栏灯塔大数据

塔说 | 常见Hadoop面试题及答案解析

导读:Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和...

3545
来自专栏包子铺里聊IT

五分钟深入 Hadoop 输入优化

当面试公司问起 Hadoop 经验时,我们当然不能只停留在 Mapper 干了什么、Reducer 干了什么。没有 Performance Tuning 怎么...

2677
来自专栏加米谷大数据

技术分享 | 提升Hadoop性能和利用率你知道有哪些吗?

时下流行的词汇是大数据和Hadoop。了解大数据的知道Hadoop有三个组件,即HDFS、MapReduce和Yarn。 HDFS代表Hadoop分布式文件系统...

3545
来自专栏聊聊技术

Apache Spark:大数据时代的终极解决方案

Apache Spark是基于Hadoop MapReduce的数据分析引擎,它有助于快速处理大数据。它克服了Hadoop的限制,正在成为最流行的大数据分析框架...

4833

扫码关注云+社区

领取腾讯云代金券