Spark数据本地性

1、文件系统本地性

  第一次运行时数据不在内存中,需要从HDFS上取,任务最好运行在数据所在的节点上

2、内存本地性

  第二次运行,数据已经在内存中,所有任务最好运行在该数据所在内存的节点上

3、LRU置换

  如果数据只缓存在内存中而并没有缓存到磁盘上,此时数据被置换出内存,则从HDFS上读取;

  如果数据不仅缓存到内存而且还缓存到磁盘上,此时数据被置换出内存,则从磁盘上直接读取;

BlockManage.scala

putBlockInfo.synchronized {
      var marked = false
      try {
        if (level.useMemory) {
          // Save it just to memory first, even if it also has useDisk set to true; we will
          // drop it to disk later if the memory store can‘t hold it.
          val res = data match {
        ...
        }
          size = res.size
          res.data match {
            case Right(newBytes) => bytesAfterPut = newBytes
            case Left(newIterator) => valuesAfterPut = newIterator
          }
          // Keep track of which blocks are dropped from memory
          res.droppedBlocks.foreach { block => updatedBlocks += block }
        }
......

注:只要设置了内存存储,即使也设置了磁盘存储,也只会先存在内存中,不是一开始就存放在磁盘上,只有当内存不够时才会置换到磁盘上去

详情参照:http://download.csdn.net/detail/u013424982/7191967

 

 

Spark数据本地性,布布扣,bubuko.com

时间: 2024-08-04 15:51:26

Spark数据本地性的相关文章

Spark中的数据本地性

分布式数据并行环境下,保持数据的本地性是非常重要的内容,事关分布式系统性能高下. 概念: block : HDFS的物理空间概念,固定大小,最小是64M,可以是128,256 ..也就是说单个文件大于block的大小,肯定会被切分,被切分的数目大概是:比如文件是250M,block是64M,就会被分为4个block,64+64+64+58,最后一个block没有满,一个block只能有一个文件的内容,加上每个block一般有3个副本存在,那么这个文件在HDFS集群就有12个block分布,可能分

TaskScheduler内幕天机:Spark shell案例,TaskScheduler和SchedulerBackend、FIFO与FAIR、Task运行时本地性算法详解

TaskSchedulerBackend与SchedulerBackend FIFO与FAIR两种调度模式 Task数据本地性资源的分配 一.TaskScheduler运行过程(Spark-shell角度) 1.启动Spark-shell 当我们spark-shell本身的时候命令终端返回来的主要是ClientEndpoint和SparkDeploySchedulerBakcend.这是因为此时还没有任何应用程序Job的触发,这是启动Application本身而已,所以主要就是实例化SparkC

第三十六课 Spark之TaskScheduler Spark shell案例运行日志详解、TaskScheduler和SchedulerBackend、FIFO与FAIR、Task运行时本地性算法详

</pre></h2><div><p>本节课内容:</p><p>1.     TaskSchedulerBackend与SchedulerBackend</p><p>2.     FIFO与FAIR两种调度模式</p><p>3.     Task数据本地性资源的分配</p></div><h3>一.Scheduler运行过程(Spark-shell角度)

Spark教程——(11)Spark程序本地执行和集群执行的差异

本地执行Spark SQL程序: package com.fc //import common.util.{phoenixConnectMode, timeUtil} import org.apache.spark.sql.SQLContext import org.apache.spark.sql.functions.col import org.apache.spark.{SparkConf, SparkContext} /* 每天执行 */ object costDay { def mai

Spark 数据倾斜及其解决方案

本文首发于 vivo互联网技术 微信公众号 https://mp.weixin.qq.com/s/lqMu6lfk-Ny1ZHYruEeBdA 作者简介:郑志彬,毕业于华南理工大学计算机科学与技术(双语班).先后从事过电子商务.开放平台.移动浏览器.推荐广告和大数据.人工智能等相关开发和架构.目前在vivo智能平台中心从事 AI中台建设以及广告推荐业务.擅长各种业务形态的业务架构.平台化以及各种业务解决方案. 本文从数据倾斜的危害.现象.原因等方面,由浅入深阐述Spark数据倾斜及其解决方案.

Spark数据本地化--&gt;如何达到性能调优的目的

Spark数据本地化-->如何达到性能调优的目的 1.Spark数据的本地化:移动计算,而不是移动数据 2.Spark中的数据本地化级别: TaskSetManager 的 Locality Levels 分为以下五个级别: PROCESS_LOCAL  NODE_LOCAL NO_PREF    RACK_LOCAL ANY PROCESS_LOCAL   进程本地化:task要计算的数据在同一个Executor中     NODE_LOCAL    节点本地化:速度比 PROCESS_LOC

Chrome扩展开发之三——Chrome扩展中的数据本地存储和下载

目录: 0.Chrome扩展开发(Gmail附件管理助手)系列之〇——概述 1.Chrome扩展开发之一——Chrome扩展的文件结构 2.Chrome扩展开发之二——Chrome扩展中脚本的运行机制和通信方式 3.Chrome扩展开发之三——Chrome扩展中的数据本地存储和下载 4.Chrome扩展开发之四——Gmail API的简单介绍 5.Chrome扩展开发之五——OAuth2的理解 6.Chrome扩展开发之六——GmailAssist核心功能的实现(包括Gmail API的使用中的

IOS数据本地存储的四种方式--

注:借鉴于:http://blog.csdn.net/jianjianyuer/article/details/8556024 在IOS开发过程中,不管是做什么应用,都会碰到数据保存问题.将数据保存到本地,能够让程序更加流畅,不会出现让人厌恶的菊花状,使得用户的体验更好.下面是介绍数据保存的方式 第一.NSKeyedArchiver:采用归档的形式来保存数据.(归档——解档)———大量数据和频繁读写不合适使用 1.归档器的作用是将任意的对象集合转换为字节流.这听起来像是NSPropertyLis

Spark性能优化之道——解决Spark数据倾斜(Data Skew)的N种姿势

原创文章,转载请务必将下面这段话置于文章开头处.本文转发自技术世界,原文链接 http://www.jasongj.com/spark/skew/ 摘要 本文结合实例详细阐明了Spark数据倾斜的几种场景以及对应的解决方案,包括避免数据源倾斜,调整并行度,使用自定义Partitioner,使用Map侧Join代替Reduce侧Join,给倾斜Key加上随机前缀等. 为何要处理数据倾斜(Data Skew) 什么是数据倾斜 对Spark/Hadoop这样的大数据系统来讲,数据量大并不可怕,可怕的是