分布式数据并行环境下,保持数据的本地性是非常重要的内容,事关分布式系统性能高下。

概念:

block : HDFS的物理空间概念,固定大小,最小是64M,可以是128,256 。。也就是说单个文件大于block的大小,肯定会被切分,被切分的数目大概是:比如文件是250M,block是64M,就会被分为4个block,64+64+64+58,最后一个block没有满,一个block只能有一个文件的内容,加上每个block一般有3个副本存在,那么这个文件在HDFS集群就有12个block分布,可能分布在datanode1,2,3,4  可能分布在datanode4,5,6,7 所以并不是所有的datanode都有这个文件的block

最理想的情况,我们希望一个文件的所有block在一个datanode上面都可以找到,这样可以在读数据的时候避免网络传输

partition: spark的计算数据概念,是RDD的最小单位,它的大小不是固定的,一般是根据集群的计算能力,以及block的数量来决定的,也就是说partition的个数我们是可以自己指定的

spark内部有2种分区策略,一种是hashpartition,一种是rangepartition,其实就是根据key,把k-v数据合理的划分为多个partition,然后对数据进行规划和计算

worker:spark计算集群中,非master节点,它的分布也是在某些node上面

rack:数据中心由一堆堆的rack组成,一个rack由多个datanode组成,在rack中的datanode可以看做本地数据,因为网络比较好

所以有data的node不一定上面有worker,同样有worker的node上面不一定有合适的数据,这样问题就抽象成为,如何让读取HDFS的时候,spark整体开销最小,这就是本地性的问题

因为上面3个block的数据不一样,所以我们在选择worker(h)的时候,要考虑哪个是最佳计算worker

考虑rack的网络本地性,h4 h3 h1 h2 h5 h6 h7 h8

不考虑rack的网络本地性,h1 h4 h5 h6 h2 h3 h7 h8

task运行在哪个机器h上面,是在DAGscheduler在进行stage的划分的时候,确定的

选出了计算节点的顺序,就可以告诉spark的partition(RDD),然后在h上启动executor/tasker,然后读取数据,h从哪个节点获得block呢?block的几个副本离h的远近不同,网络开销不一样

文章转自:https://www.cnblogs.com/jackie2016/p/5643100.html

Spark中的数据本地性相关推荐

  1. Spark数据本地性

    分布式计算系统的精粹在于移动计算而非移动数据,但是在实际的计算过程中,总存在着移动数据的情况,除非是在集群的所有节点上都保存数据的副本.移动数据,将数据从一个节点移动到另一个节点进行计算,不但消耗了网 ...

  2. spark数据本地性级别划分

    1.数据本地性级别划分 PROCESS_LOCAL: 要处理的数据在同一个本地进程, 即数据和Task在同一个Excutor JVM中. 这种情况是RDD的数据经过缓存,此时不需要网络传输,是最优lo ...

  3. 联邦学习中的数据异构性问题综述

    摘要 联邦学习中的数据异构性问题主要是由参与训练的各客户端的数据虽独立分布但不服从同一采样方法(Non-IID)所导致的,这一问题也导致模型精度的严重下降.如何缓解Non-IID带来的不利影响目前仍是 ...

  4. 个性化推荐中的数据稀疏性

    个性化推荐中数据稀疏性怎么理解 造成的原因是什么? 每个领域对稀疏性的定义和解决方法都不一样,拿感兴趣地点推荐来说. 假定我拥有一群在上海的用户和他们最近一个月所到过的地点的记录.现在我想根据他所去过 ...

  5. Spark精华问答 | 谈谈spark中的宽窄依赖

    总的来说,Spark采用更先进的架构,使得灵活性.易用性.性能等方面都比Hadoop更有优势,有取代Hadoop的趋势,但其稳定性有待进一步提高.我总结,具体表现在如下几个方面. 1 Q:Spark ...

  6. Spark中资源与任务的关系

    在介绍Spark中的任务和资源之前先解释几个名词: Dirver Program:运行Application的main函数(用户提交的jar包中的main函数)并新建SparkContext实例的程序 ...

  7. Spark 中 JVM 内存使用及配置详情、spark报错与调优、Spark内存溢出OOM异常

    一般在我们开发spark程序的时候,从代码开发到上线以及后期的维护中,在整个过程中都需要涉及到调优的问题,即一开始需要考虑如何把代码写的更简洁高效调优(即代码优化),待开发测试完成后,提交任务时综合考 ...

  8. Spark:大数据的“电光石火”

    原文: http://www.csdn.net/article/2013-07-08/2816149-Spark Spark:大数据的"电光石火" 发表于 2013-07-08 1 ...

  9. Spark:大数据的电花火石!

    什么是Spark?可能你很多年前就使用过Spark,反正当年我四六级单词都是用的星火系列,没错,星火系列的洋名就是Spark. 当然这里说的Spark指的是Apache Spark,Apache Sp ...

最新文章

  1. 高效程序猿之(四)VS2010其他技巧
  2. 面向对象方法为何有利于软件复用?
  3. Springboot验证表单数据和自定义验证
  4. 不想工作就想创业?我劝你看完这档综艺再决定
  5. Spring Boot——自定义Web配置类后无法访问/static文件夹下静态资源
  6. 【机器视觉】 HDevelop语言基础(三)-容器和保留字
  7. C++字符输入getchar()和字符输出putchar()
  8. JS结合Cookie实现验证码功能
  9. visual studio code安装_Deepin系统中如何安装Visual Studio Code
  10. 作为程序员,制霸了 Stack Overflow 是一种怎样的体验?
  11. VS code不用集成终端如何修改并推送分支?
  12. Python黑魔法 --- 异步IO( asyncio) 协程
  13. 计算机房装修对门的要求,机房建设标准要求
  14. 菠萝粉的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  15. 引导区坏 计算机无法启动,小白告诉你Win10无法正常启动修复引导文件教程
  16. 工程热力学学习笔记DE-2. Erster Hauptsatz der Thermodynamik
  17. 获取微信运动 php,【小程序+ thinkphp5】 获取微信运动数据
  18. Kore:开源C语言Web框架
  19. EasyNVR完美搭配腾讯云CDN/阿里云CDN进行RTMP、HLS直播加速的使用说明
  20. 从脑科学的角度分析物联网、 云计算、 大数据和互联网的关系

热门文章

  1. socket通信基础知识
  2. csv 逗号数量不一样_MySQL Workbeach导入CSV时的大坑,一直都是UTF-8问题,绕不过去了~。~...
  3. 央采数据库集采:甲骨文、微软、腾讯、阿里等 21 家中标
  4. Java 学习总结(187)—— 轻量级开源日志框架 tinylog 简介
  5. Maven学习总结(36)——Apache Maven 3.5.0抢鲜看
  6. 软件版本命名规范及各阶段说明
  7. Spring Boot学习总结(3)——SpringBoot魅力所在
  8. Java基础学习总结(60)——Java常用的八种排序算法
  9. Mysql学习总结(21)——MySQL数据库常见面试题
  10. python如何遍历二维数组的列元素_for循环获取二维数组的元素时的bug