一、如何选择粗粒度和细粒度

  从底层往上引申来理解粗粒度与细粒度。

  一层:一个类,具有三个属性值。为了查询这个类的所有实例,细粒度查询的程度为属性值,即依次查询每个实例化对象的属性值,查询三次;粗粒度按对象查询,直接查询该类的所有实例化对象,查询一次。查询结果是相同的,但是查询的方式却不同。这一类的实例有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随笔(二):深入学习的更多相关文章

  1. 201871010136-赵艳强《面向对象程序设计(java)》第十二周学习总结

    201871010136-赵艳强<面向对象程序设计(java)>第十二周学习总结   项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh ...

  2. 毕业设计 之 二 PHP学习笔记(一)

    毕业设计 之 二 PHP学习笔记(一) 作者:20135216 平台:windows10 软件:XAMPP,DreamWeaver 一.环境搭建 1.XAMPP下载安装 XAMPP是PHP.MySQL ...

  3. Java基础知识二次学习-- 第一章 java基础

    基础知识有时候感觉时间长似乎有点生疏,正好这几天有时间有机会,就决定重新做一轮二次学习,挑重避轻 回过头来重新整理基础知识,能收获到之前不少遗漏的,所以这一次就称作查漏补缺吧!废话不多说,开始! 第一 ...

  4. 201521123061 《Java程序设计》第十二周学习总结

    201521123061 <Java程序设计>第十二周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对 ...

  5. 201521123072《java程序设计》第十二周学习总结

    201521123072<java程序设计>第十二周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对象 ...

  6. 201521123038 《Java程序设计》 第十二周学习总结

    201521123038 <Java程序设计> 第十二周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student ...

  7. 201771010134杨其菊《面向对象程序设计java》第十二周学习总结

    第十二周学习总结 第一部分:理论知识 内容概要: AWT与Swing简介:框架的创建:图形程序设计: 显示图像: 1.AWT组件: 2.Swing 组件层次关系 3 .AWT与Swing的关系:大部分 ...

  8. VBA二次学习笔记(1)——文件操作

    说明(2018-9-1 11:20:46): 1. 上班三个月了,累的一逼,真的是钱少事多离家远,每天早上六点起,晚上八点回.哎,少壮不努力啊! 2. 三个月没写博客了,上一篇已经是5.29的了,真的 ...

  9. 《Linux内核设计与实现》 第一二章学习笔记

    <Linux内核设计与实现> 第一二章学习笔记 第一章 Linux内核简介 1.1 Unix的历史 Unix的特点 Unix很简洁,所提供的系统调用都有很明确的设计目的. Unix中一切皆 ...

  10. 《Linux内核设计与实现》第一、二章学习笔记

    <Linux内核设计与实现>第一.二章学习笔记 姓名:王玮怡  学号:20135116 第一章 Linux内核简介 一.关于Unix ——一个支持抢占式多任务.多线程.虚拟内存.换页.动态 ...

随机推荐

  1. NSDate获取当前时区的时间

    [NSDate date]获取的是GMT时间,要想获得某个时区的时间,以下代码可以解决这个问题 NSDate *date = [NSDate date]; NSTimeZone *zone = [NS ...

  2. [转] 浅谈Linux系统的启动流程

    原文:http://blog.csdn.net/justdb/article/details/9621271 版权声明:本文为博主原创文章. Linux系统的启动时通过读取不同的配置文件,执行相应的S ...

  3. 用excel绘制基因芯片热力图

    1.  首先我们通过一些方法得到了如下的数据,基于篇幅以及为了教学隐去了其他一些信息. 2. 选中表达数据,执行 开始—条件格式—色阶 选择一个合适的色阶: 3. 选择好颜色之后得到了如下结果:

  4. 特征创建:Reference Characteristic、Template

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  5. css取消input、select默认样式(手机端)

    IOS端: background-color:transparent; border-color:transparent; andorid端: 仅仅使用上面的代码还不够,可以发现select框在某些浏 ...

  6. Scrum Meeting 10-20151216

    任务安排 姓名 今日任务 明日任务 困难 董元财 网络连接框架优化 网络连接框架优化 无 胡亚坤 优化商品搜索界面 优化商品搜索界面 无 刘猛 请假(参加编译测试) 无 马汉虎 请假(参加编译测试) ...

  7. (五)socket实践编程

    1.服务器端程序编写 (1)socket(2)bind(3)listen(4)accept,返回值是一个fd,accept正确返回就表示我们已经和前来连接我的客户端之间建立了一个TCP连接了,以后我们 ...

  8. Android显示基础--单位与尺寸

    px:是像素的意思,屏幕可以显示的最小元素单位,单独一个像素点非常小,肉眼都无法看到. pt:是磅数的意思,1磅等于七十二分之一英寸,pt一般用作字体的单位. dp:密度无关像素的意思,也被称为dip ...

  9. jqGrid表格控件

    一. jqGrid的加载. 1.引用相关头文件 引入CSS: <link type="text/css" rel="stylesheet" href=&q ...

  10. HTML5和CSS3登录页面制作实录

    本文详细介绍使用HTML5 和CSS3 制作一个登录页面的完整过程. View demo login.html <form id="login"> <h1> ...