没有合适的资源?快使用搜索试试~ 我知道了~
第2节 Spark安装配置文档地址:http://spark.apache.org/docs/latest/下载地址:http://spark.apache.o
资源详情
资源评论
资源推荐
大数据高速计算引擎Spark(上)【讲师:回灯】
课程内容:
MapReduce、Spark、Flink(实时) => 3代计算引擎;昨天、今天、未来
MapReduce、Spark:类MR的处理引擎;底层原理非常相似;数据分区、map task、reduce task、shuffle
第一部分 Spark Core
第1节 Spark概述
1.1 什么是Spark
Spark是当今大数据领域最活跃、最热门、最高效的大数据通用计算引擎
2009年诞生于美国加州大学伯克利分校AMP 实验室
2010年通过BSD许可协议开源发布
2013年捐赠给Apache软件基金会并切换开源协议到切换许可协议至 Apache2.0
2014年2月,Spark 成为 Apache 的顶级项目
2014年11月, Spark的母公司Databricks团队使用Spark刷新数据排序世界记录
Spark 成功构建起了一体化、多元化的大数据处理体系。在任何规模的数据计算中, Spark 在性能和扩展性上都更具
优势
Spark Core -- 离线
Spark SQL -- 离线、交互
Spark Streaming -- 实时
Spark GraphX -- 图处理
Spark原理
Spark 是一个快速、通用的计算引擎。Spark的特点:
速度快。与 MapReduce 相比,Spark基于内存的运算要快100倍以上,基于硬盘的运算也要快10倍以上。
Spark实现了高效的DAG执行引擎,可以通过基于内存来高效处理数据流;
使用简单。Spark支持 Scala、Java、Python、R的API,还支持超过80种高级算法,使用户可以快速构建不同的
应用。而且Spark支持交互式的Python和Scala的shell,可以非常方便地在这些shell中使用Spark集群来验证解
决问题的方法;
通用。Spark提供了统一的解决方案。Spark可以用于批处理、交互式查询(Spark SQL)、实时流处理(Spark
Streaming)、机器学习(Spark MLlib)和图计算(GraphX)。这些不同类型的处理都可以在同一个应用中无缝使
用。Spark统一的解决方案非常具有吸引力,企业想用统一的平台去处理遇到的问题,减少开发和维护的人力成
本和部署平台的物力成本;
兼容好。Spark可以非常方便地与其他的开源产品进行融合。Spark可以使用YARN、Mesos作为它的资源管理和
调度器;可以处理所有Hadoop支持的数据,包括HDFS、HBase和Cassandra等。这对于已经部署Hadoop集群
的用户特别重要,因为不需要做任何数据迁移就可以使用Spark的强大处理能力。Spark也可以不依赖于第三方
的资源管理和调度器,它实现了Standalone作为其内置的资源管理和调度框架,这样进一步降低了Spark的使
用门槛,使得所有人都可以非常容易地部署和使用Spark。此外,Spark还提供了在EC2上部署Standalone的
Spark集群的工具。
1.2 Spark 与 Hadoop
从狭义的角度上看:Hadoop是一个分布式框架,由存储、资源调度、计算三部分组成;
Spark是一个分布式计算引擎,由 Scala 语言编写的计算框架,基于内存的快速、通用、可扩展的大数据分析引擎;
从广义的角度上看,Spark是Hadoop生态中不可或缺的一部分;
MapReduce的不足:
表达能力有限
磁盘IO开销大
延迟高
任务之间的衔接有IO开销
在前一个任务执行完成之前,后一个任务无法开始。难以胜任复杂的、多阶段计算任务
MapReduce Spark
数据存储结构:磁盘HDFS文件系统的split
使用内存构建弹性分布式数据集RDD对数据进行运算和
cache
编程范式:Map + Reduce
仅提供两个操作,表达力欠缺
提供了丰富的操作,使数据处理逻辑的代码非常简短
计算中间结果落到磁盘,IO及序列化、反序列化
代价大
计算中间结果在内存中,维护存取速度比磁盘高几个数量
级
Task以进程的方式维护,需要数秒时间才能启动
任务
Task以线程的方式维护对于小数据集读取能够达到亚秒级
的延迟
Spark在借鉴MapReduce优点的同时,很好地解决了MapReduce所面临的问题。
备注:Spark的计算模式也属于MapReduce;Spark框架是对MR框架的优化;
在实际应用中,大数据应用主要包括以下三种类型:
批量处理(离线处理):通常时间跨度在数十分钟到数小时之间
交互式查询:通常时间跨度在数十秒到数分钟之间
流处理(实时处理):通常时间跨度在数百毫秒到数秒之间
当同时存在以上三种场景时,传统的Hadoop框架需要同时部署三种不同的软件。如:
MapReduce / Hive 或 Impala / Storm
这样做难免会带来一些问题:
不同场景之间输入输出数据无法做到无缝共享,通常需要进行数据格式的转换
不同的软件需要不同的开发和维护团队,带来了较高的使用成本
比较难以对同一个集群中的各个系统进行统一的资源协调和分配
Spark所提供的生态系统足以应对上述三种场景,即同时支持批处理、交互式查询和流数据处理:
Spark的设计遵循“一个软件栈满足不同应用场景”的理念(all in one),逐渐形成了一套完整的生态系统
既能够提供内存计算框架,也可以支持SQL即席查询、实时流式计算、机器学习和图计算等
Spark可以部署在资源管理器YARN之上,提供一站式的大数据解决方案
Spark 为什么比 MapReduce 快:
1、Spark积极使用内存。MR框架中一个Job 只能拥有一个 map task 和一个 reduce task。如果业务处理逻辑复杂,
一个map和一个reduce是表达不出来的,这时就需要将多个 job 组合起来;然而前一个job的计算结果必须写到
HDFS,才能交给后一个job。这样一个复杂的运算,在MR框架中会发生很多次写入、读取操作操作;Spark框架则
可以把多个map reduce task组合在一起连续执行,中间的计算结果不需要落地;
复杂的MR任务:mr + mr + mr + mr +mr ...
复杂的Spark任务:mr -> mr -> mr ......
2、多进程模型(MR) vs 多线程模型(Spark)。MR框架中的的Map Task和Reduce Task是进程级别的,而Spark Task
是基于线程模型的。MR框架中的 map task、reduce task都是 jvm 进程,每次启动都需要重新申请资源,消耗了不
必要的时间。Spark则是通过复用线程池中的线程来减少启动、关闭task所需要的系统开销。
1.3 系统架构
Spark运行架构包括:
Cluster Manager
Worker Node
Driver
Executor
Cluster Manager 是集群资源的管理者。Spark支持3种集群部署模式:Standalone、Yarn、Mesos;
剩余133页未读,继续阅读
ali-12
- 粉丝: 28
- 资源: 328
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0