专栏首页加米谷大数据大数据基础之Spark

大数据基础之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)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 0基础大数据开发Spark要学习什么内容?

    Spark 是专为大规模数据处理而设计的快速通用的计算引擎。用来构建大型的、低延迟的数据分析应用程序。可用它来完成各种各样的运算,包括 SQL 查询、文本处理、...

    加米谷大数据
  • 10本值得你读的Apache Spark书籍

    Apache Spark是Apache的开源大数据框架,具有与SQL,流,图处理和机器学习有关的内置模块。它于2010年开源,从一开始就对大数据和相关技术产生了...

    加米谷大数据
  • Spark的发展历史

    Spark是一种通用的大数据计算框架,使用了内存内运算技术。今天加米谷大数据就来简单介绍一下Spark的简史。

    加米谷大数据
  • Spark快速大数据分析(图灵程序设计丛书)

    本书由 Spark 开发者及核心成员共同打造,讲解了网络大数据时代应运而生的、能高效迅捷地分析处理数据的工具——Spark,它带领读者快速掌握用 Spark 收...

    用户3157710
  • Livy:基于Apache Spark的REST服务

    Apache Spark提供的两种基于命令行的处理交互方式虽然足够灵活,但在企业应用中面临诸如部署、安全等问题。为此本文引入Livy这样一个基于Apache S...

    CSDN技术头条
  • Apache Spark:承诺与挑战

    如果您正在寻找处理大量数据的解决方案,那么现在有很多选择。根据您的使用情况以及您希望对数据执行的操作类型,您可以选择各种各样的数据处理框架,如Apache Sa...

    Hans362
  • 【Spark研究】如何用 Spark 快速开发应用?

    如果你还没有仔细研究过 Spark (或者还不知道 Spark 是什么),那么本文很好地介绍了 Spark。描述了基本的数据结构、shell ,并对其包含的 A...

    陆勤_数据人网
  • 大疆又发“黑科技”,可以手势操控的“晓” Spark 掌上无人机

    镁客网
  • 开源 sk-dist,超参数调优仅需 3.4 秒,sk-learn 训练速度提升 100 倍!

    这篇文章为大家介绍了一个开源项目——sk-dist。在一台没有并行化的单机上进行超参数调优,需要 7.2 分钟,而在一百多个核心的 Spark 群集上用它进行超...

    用户2769421
  • 开源sk-dist,超参数调优仅需3.4秒,sk-learn训练速度提升100倍

    【导语】这篇文章为大家介绍了一个开源项目——sk-dist。在一台没有并行化的单机上进行超参数调优,需要 7.2 分钟,而在一百多个核心的 Spark 群集上用...

    AI科技大本营

扫码关注云+社区

领取腾讯云代金券