楼主: a1032077316
521 1

[学习笔记] 【学习笔记】大规模数据处理12:我们为什么需要spark 在学一个新技术之前,你 ... [推广有奖]

  • 4关注
  • 3粉丝

已卖:14份资源

本科生

83%

还不是VIP/贵宾

-

威望
0
论坛币
3130 个
通用积分
112.1189
学术水平
0 点
热心指数
6 点
信用等级
0 点
经验
13150 点
帖子
112
精华
0
在线时间
3 小时
注册时间
2017-1-17
最后登录
2021-11-27

楼主
a1032077316 发表于 2019-7-27 21:00:08 来自手机 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
大规模数据处理12:我们为什么需要spark
在学一个新技术之前,你有必要先了解这门技术出现的意义。这样,你才能更好地理解:它是应用到什么场景的?与同类工具相比,它的优缺点是什么?什么时候用它比其它工具好(或差)?……
MapReduce被硅谷一线公司淘汰的两大主要原因:高昂的维护成本、时间性能“达不到”用户的期待。
1.MapReduce模型的抽象层次低,大量的底层逻辑都需要开发者手工完成。
2.只提供Map和Reduce两个操作
举个例子,两个数据集的Join是很基本而且常用的功能,但是在MapReduce的世界中,需要对这两个数据集做一次Map和Reduce才能得到结果。这样框架对于开发者非常不友好。正如第一讲中提到的,维护一个多任务协调的状态机成本很高,而且可扩展性非常差。
3.在Hadoop中,每一个Job的计算结果都会存储在HDFS文件存储系统中,所以每一步计算都要进行硬盘的读取和写入,大大增加了系统的延迟。 由于这一原因,MapReduce对于迭代算法的处理性能很差,而且很耗资源。因为迭代的每一步都要对HDFS进行读写,所以每一步都需要差不多的等待时间。
只支持批数据处理,欠缺对流数据处理的支持
Spark最基本的数据抽象叫做弹性分布式数据集RDD,它代表一个可以被分区的只读数据集,它内部可以有很多分区,每个分区又有大量的数据记录,相对于Hadoop的MapReduce会将中间数据存放到硬盘中,Spark会把中间数据缓存在内存中,从而减少了很多由于硬盘读写而导致的延迟,大大加快了处理速度。
Spark第一次启动时需要把数据载入到内存,之后的迭代可以直接在内存里利用中间结果做不落地的运算。所以,后期的迭代速度快到可以忽略不计。在当今机器学习和人工智能大热的环境下,Spark无疑是更好的数据处理引擎。
在任务task级别上,spark的并行机制是多线程模型,而MapReduce是多进程模型。多进程模型便于细粒度控制每个任务占用的资源,但会消耗较多的启动时间
但是,Spark并不是一个完全替代Hadoop的全新工具。 因为Hadoop还包含了很多组件。
1.数据存储层:分布式文件存储系统HDFS,分布式数据库存储的Hbase;
2.数据处理层:进行数据处理的MapReduce,负责集群和资源管理的Yarn
3.数据访问层: Hive Pig Mahout
此外,作为通用的数据处理平台,Spark有五个主要的扩展库,分别是支持结构化数据的Spark SQL、处理实时数据的Spark Streaming、用于机器学习的MLlib、用于图计算的GraphX、用于统计分析的SparkR。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Spark 学习笔记 Park 数据处理 什么需要

已有 1 人评分论坛币 收起 理由
经管之家编辑部 + 80 精彩帖子

总评分: 论坛币 + 80   查看全部评分

沙发
经管之家编辑部 在职认证  发表于 2019-7-27 21:12:31
学习笔记奖!

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2026-1-4 01:21