前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大数据基础之Spark

大数据基础之Spark

作者头像
加米谷大数据
发布2018-07-25 17:43:40
2960
发布2018-07-25 17:43:40
举报
文章被收录于专栏:加米谷大数据加米谷大数据

背景

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。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-04-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 加米谷大数据 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档