分布式计算系统的精粹在于移动计算而非移动数据,但是在实际的计算过程中,总存在着移动数据的情况,除非是在集群的所有节点上都保存数据的副本。移动数据,将数据从一个节点移动到另一个节点进行计算,不但消耗了网络IO,也消耗了磁盘IO,降低了整个计算的效率。为了提高数据的本地性,除了优化算法(也就是修改spark内存,难度有点高),就是合理设置数据的副本。设置数据的副本,这需要通过配置参数并长期观察运行状态才能获取的一个经验值。

Spark中的数据本地性有三种:

  • PROCESS_LOCAL是指读取缓存在本地节点的数据
  • NODE_LOCAL是指读取本地节点硬盘数据
  • ANY是指读取非本地节点数据

通常读取数据PROCESS_LOCAL>NODE_LOCAL>ANY,尽量使数据以PROCESS_LOCAL或NODE_LOCAL方式读取。其中PROCESS_LOCAL还和cache有关,如果RDD经常用的话将该RDD cache到内存中,注意,由于cache是lazy的,所以必须通过一个action的触发,才能真正的将该RDD cache到内存中。

最近在做一个文本匹配的实验,发现处理的数据Locality Level都是ANY级别的,从而导致数据在网络上传输,造成效率低下,后来发现:

Spark中 Worker Id和Address中都使用的IP地址作为Worker的标识,而HDFS集群中一般都以hostname作为slave的标识,这样,Spark从 HDFS中获取文件的保存位置对应的是hostname,而Spark自己的Worker标识为IP地址,两者不同,因此没有将任务的Locality Level标记为NODE_LOCAL,而是ANY。

解决方法:在Standalone模式下,单独启动各个Worker节点,命令如下所示:

$SPARK_HOME/sbin/start-slave.sh -h <hostname> <masterURI>

例如:start-slave.sh -h slave1 spark://master1:7077

假设我在slave1上启动Worker节点,master1是主节点

hostname是Worker所在的hostname即slave1,启动masterURL是”spark://master1:7070”

Spark数据本地性相关推荐

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

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

  2. Spark中的数据本地性

    分布式数据并行环境下,保持数据的本地性是非常重要的内容,事关分布式系统性能高下. 概念: block : HDFS的物理空间概念,固定大小,最小是64M,可以是128,256 ..也就是说单个文件大于 ...

  3. 一文搞清楚 Spark 数据本地化级别

    Spark 数据本地化级别 文章首发于:大数据进击之路 RDD 源码 大家可以看到源码中的第五条注释说明,翻译过来的大概意思是提供一系列的最佳计算位置. 我之前一直不太清楚 spark 是如何内部实现 ...

  4. 低成本运行 Spark 数据计算

    作者 | 柳密 阿里巴巴阿里云智 导读:本节课主要介绍如何在 Serverless Kubernetes 集群中低成本运行 Spark 数据计算.首先简单介绍下阿里云 Serverless Kuber ...

  5. Spark数据倾斜的完美解决

    数据倾斜解决方案 数据倾斜的解决,跟之前讲解的性能调优,有一点异曲同工之妙. 性能调优中最有效最直接最简单的方式就是加资源加并行度,并注意RDD架构(复用同一个RDD,加上cache缓存).相对于前面 ...

  6. Spark数据倾斜解决方案(转)

    本文转发自技术世界,原文链接 http://www.jasongj.com/spark/skew/ Spark性能优化之道--解决Spark数据倾斜(Data Skew)的N种姿势  发表于 2017 ...

  7. 如何在 Serverless K8s 集群中低成本运行 Spark 数据计算?

    作者 | 柳密 阿里巴巴阿里云智能 本文整理自<Serverless 技术公开课> 导读:本节课主要介绍如何在 Serverless Kubernetes 集群中低成本运行 Spark 数 ...

  8. 解决Spark数据倾斜(Data Skew)的 N 种姿势 与 问题定位

    Spark性能优化之道--解决Spark数据倾斜(Data Skew)的N种姿势 本文结合实例详细阐明了Spark数据倾斜的问题定位和几种场景以及对应的解决方案,包括避免数据源倾斜,调整并行度,使用自 ...

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

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

最新文章

  1. 2022-2028年中国分离膜外壳行业市场调查研究及投资前景预测报告
  2. python post请求参数为list_浅谈python3发送post请求参数为空的情况
  3. JavaScript对象、JSON对象、JSON字符串的区别
  4. redis rua解决库存问题_【150期】面试官:Redis的各项功能解决了哪些问题?
  5. windows控制linux桌面图标,完全控制你的Windows桌面 (转)
  6. centos so查看_等保测评主机安全:CentOS密码修改周期与登录失败处理
  7. 文件实时上传至云服务器的方法,文件实时上传至云服务器的方法
  8. [原创]独立模式安装Hive
  9. 如何添加、管理和删除PDF高亮文本?
  10. 360怎么看电脑配置_电脑配置清单速查表-AMD
  11. 苹果手机各种尺寸列表
  12. es-从搜索中检索选定的字段
  13. 2021EC-final博弈论E题Prof. Pang and Poker
  14. HackerRank 题目目录
  15. python基础 Day1
  16. SharePoint Silverlight Clock 时钟
  17. 服务器换主板后找不到磁盘,服务器硬盘频繁丢失的非常奇怪无解问题
  18. 转载 ECSHOP 源码分析(includes/init.php)
  19. 查询塑料塑胶材料属性参数的网站数据库
  20. C语言进程(第三章,exec函数族,execl,execlp,execle,execv,execvp,execve)

热门文章

  1. Permission denied (publickey).
  2. 字体乱码的时候,可以使用英文下的写法
  3. Hibernate映射关系之多对多
  4. MC新手入门(二十八)------ 顺序结构程序
  5. delphi无边框移动_墨竹工卡县边框护栏网【价格美丽产品厂家】
  6. numberformatexception是什么异常_处理Java异常的9个最佳实践
  7. Oracle/MySQL/PostgreSQL考题等你挑战(附假期活动获奖名单)
  8. 做开发,这几种锁机制你不得不了解一下
  9. 如何只用一个小时定制一个行业AI 模型?
  10. OpenCV萌新福音:易上手的数字识别实践案例