Spark随笔(二):深入学习
一、如何选择粗粒度和细粒度
从底层往上引申来理解粗粒度与细粒度。
一层:一个类,具有三个属性值。为了查询这个类的所有实例,细粒度查询的程度为属性值,即依次查询每个实例化对象的属性值,查询三次;粗粒度按对象查询,直接查询该类的所有实例化对象,查询一次。查询结果是相同的,但是查询的方式却不同。这一类的实例有Database中的查询操作,整表查询和逐步查询。
二层:一个数据集,包含有多个对象。当对数据集进行操作时,细粒度的处理方式会获取数据集中的每个对象,然后执行相应的操作,执行的次数为对象的个数;粗粒度直接对整个数据集进行操作,将数据集中的对象按序执行操作,并不在乎其中的对象的特点。数据集应用粗粒度的实例即Spark的RDDs。
三层:一个分布式应用,会让集群中的一些节点循环执行它所提供的计算。对节点分配资源时,细粒度的分配方式会检查应用执行所需要的每个节点,然后为这些节点分配资源;粗粒度的分配方式则以应用为单位,直接将应用所需的资源分配给应用,由应用来进行处理。分布式系统应用细粒度的实例即Mesos。
因此,粗粒度会忽略对象整体的内部细节,或者说是将内部细节在计算的过程中进行同化,达到以块为执行单位的效果;细粒度则注重对象的任何一个属性及执行步骤,或者说注意底层计算的重用部分,达到以点为执行单位的效果。
RDDs的操作中narrow dependencies是将一个RDD转换为新的RDD,操作的对象是RDD数据集,对RDD内部的<K,V>直接执行相应的map操作。因而,在进行写操作时一般是以整个RDD为单位进行写操作,采用粗粒度的方式更佳;而在进行读操作时,需要读取RDD时采用粗粒度寻址方式,而需要读取RDD中的内容进行action操作时,可以采用细粒度的寻址方式。
Mesos采用细粒度的共享方式,这样做的一个好处是,尽管有些任务并不是同时执行细粒度的task,但是长任务和短任务仍然能够共享空间。框架决定需要哪些资源时是根据任务的长短来决定的,长任务一般需要更多的资源。而后Mesos为框架分配资源(这个策略是可以由用户指定的),但是却由框架来决定接收哪些资源,接受的资源可以用来执行任务(长任务或者短任务),不接受的资源由Mesos回收分配给其他的框架,这样既避免了长任务得不到资源的尴尬,也避免了长任务占据太多资源而导致短任务得不到执行。这种方法对待长任务和短任务的方法是否可以推广到其他方面?当Spark中的进程被判断为straggler后,它和正常进程的关系类似于长任务和短任务,至少它们的资源需求应该类似,对straggler推测执行固然能够解决一些问题,但是如果在它们申请资源时进行两次资源的判定,保证starggler的执行过程不影响正常进程的执行,会不会提高系统的性能?
二、系统中功能的分配
Mesos的中心思想:定义一个能够保证资源共享利用率的尽可能小的接口,其他的工作都推给frameworks去做。
(未完,待续)
Spark随笔(二):深入学习的更多相关文章
- 201871010136-赵艳强《面向对象程序设计(java)》第十二周学习总结
201871010136-赵艳强<面向对象程序设计(java)>第十二周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh ...
- 毕业设计 之 二 PHP学习笔记(一)
毕业设计 之 二 PHP学习笔记(一) 作者:20135216 平台:windows10 软件:XAMPP,DreamWeaver 一.环境搭建 1.XAMPP下载安装 XAMPP是PHP.MySQL ...
- Java基础知识二次学习-- 第一章 java基础
基础知识有时候感觉时间长似乎有点生疏,正好这几天有时间有机会,就决定重新做一轮二次学习,挑重避轻 回过头来重新整理基础知识,能收获到之前不少遗漏的,所以这一次就称作查漏补缺吧!废话不多说,开始! 第一 ...
- 201521123061 《Java程序设计》第十二周学习总结
201521123061 <Java程序设计>第十二周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对 ...
- 201521123072《java程序设计》第十二周学习总结
201521123072<java程序设计>第十二周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对象 ...
- 201521123038 《Java程序设计》 第十二周学习总结
201521123038 <Java程序设计> 第十二周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student ...
- 201771010134杨其菊《面向对象程序设计java》第十二周学习总结
第十二周学习总结 第一部分:理论知识 内容概要: AWT与Swing简介:框架的创建:图形程序设计: 显示图像: 1.AWT组件: 2.Swing 组件层次关系 3 .AWT与Swing的关系:大部分 ...
- VBA二次学习笔记(1)——文件操作
说明(2018-9-1 11:20:46): 1. 上班三个月了,累的一逼,真的是钱少事多离家远,每天早上六点起,晚上八点回.哎,少壮不努力啊! 2. 三个月没写博客了,上一篇已经是5.29的了,真的 ...
- 《Linux内核设计与实现》 第一二章学习笔记
<Linux内核设计与实现> 第一二章学习笔记 第一章 Linux内核简介 1.1 Unix的历史 Unix的特点 Unix很简洁,所提供的系统调用都有很明确的设计目的. Unix中一切皆 ...
- 《Linux内核设计与实现》第一、二章学习笔记
<Linux内核设计与实现>第一.二章学习笔记 姓名:王玮怡 学号:20135116 第一章 Linux内核简介 一.关于Unix ——一个支持抢占式多任务.多线程.虚拟内存.换页.动态 ...
随机推荐
- Cookie与Session的区别
cookie机制 Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器.IETF RFC 2965 HTTP State Management Mechanism 是通用c ...
- [课程设计]Scrum 2.8 多鱼点餐系统开发进度(下单一览页面-菜式一览功能的最终实现)
Scrum 2.8 多鱼点餐系统开发进度 (下单一览页面-菜式一览功能的最终实现) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队 ...
- js与jquery的用法
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />后面加上 ...
- 从零开始学习jQuery(转)
本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery ( ...
- 提取data.frame中的部分数据(不含列标题和行标题)
?unlist Given a list structure x, unlist simplifies it to produce a vector which contains all th ...
- 使用bootstrap框架的模态框与ckeditor产生冲突,ckeditor的弹出窗不可用时的解决方法
这样可以解决冲突 $.fn.modal.Constructor.prototype.enforceFocus = function () { modal_this = this $(document) ...
- Ubuntu快捷键
https://linux.cn/article-3025-1.html 超级键操作 1.超级键(Win键)–打开dash. 2.长按超级键– 启动Launcher.并快捷键列表. 3.按住超级键,再 ...
- My97日期控件 选择日期区间
<script language="javascript" type="text/javascript" src="My97DatePicker ...
- 解决T400\T500\W500等安装win10驱动后黑屏问题
T400.W500.T500等机型有双显卡的机型,在安装WIn10后会在驱动后黑屏,但可见启动画面: 原因:没有对应的双显卡驱动程序,导致系统无法正确识别显卡: 解决方法:开机按F1进入Bios,在显 ...
- Python之SQLAlchemy学习--外键约束问题
以下问题赞为解决: # class User(Base):# __tablename__ = 'user'# #表的结构# id = Column(String(20), primary_key=Tr ...