Spark性能调优03-数据本地化调优

1. task数据本地化级别

(1) PROCESS_LOCAL:进程本地化

(2) NODE_LOCAL:节点本地化

(3) NO_PREF:没有本地化级别

(4) RACK_LOCAL:机架本地化

(5) ANY:跨机架取数据

2. TaskScheduler发送task选择本地化级别的策略

比如计算需要的数据在node01这台服务器中的Executor1这个进程中,那么TaskScheduler会把TaskSet发往Executor1进程中执行,此时的数据本地化级别时PROCESS_LOCAL,Executor1是最佳的计算位置,如果发送的task在等待了3秒,重试了5次之后仍然没有执行,那么TaskScheduler就认为Executor1的资源不充足,不足以支撑计算,那么降低数据本地化级别,把task发往node01的另外一个进程Executor2中,这时的数据本地化级别为NODE_LOCAL,如果还无法执行,降低为RACK_LOCAL,ANY,直到Task可以开始计算

3. 查看某任务的数据本地化级别的方法

(1) 在Spark Web UI中查看

(2) 查看Spark作业的执行日志

4. 修改task数据本地化级别的方法

增加等待时间,默认3s,可以成倍数提高,按照6s,12s,24s…这样的方式来修改,这样可以快速找到最佳值,配置参数:

# 可以调整全部级别的task执行等待时间,也可以分别调整
spark.locality.wait         default(3s)
spark.locality.wait.process default(3s)
spark.locality.wait.node    default(3s)
spark.locality.wait.rack    default(3s)

在默认情况下,最初的数据本地化级别为PROCESS_LOCAL,如果等待了3s,重试5次后还没有开始执行task,那么会降低级别,再尝试开始执行task,比如,我们就想让task的数据本地化级别为PROCESS_LOCAL,那么把spark.locality.wait.process修改为一个很大的值,那么这个task会一直等待,直到本机的executor中已经加载过来了需要的数据,当然,我们不会这么做。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java闲聊

AvtiveMQ与SpringBoot结合

24170
来自专栏开发与安全

linux系统编程之管道(三):命名管道FIFO和mkfifo函数

进程间通信必须通过内核提供的通道,而且必须有一种办法在进程中标识内核提供的某个通道,前面讲过的匿名管道是用打开的文件描述符来标识的。如果要互相通信的几个进程没有...

36960
来自专栏编程坑太多

python多版本共存最好的解决方案-虚拟环境

20240
来自专栏乐沙弥的世界

CentOS 7下配置本地yum源及yum客户端

Linux下对于软件包的管理使用rpm管理方式。直接使用rpm包管理工具来进行rpm包的安装,升级,卸载时,对于最让人头疼的莫过与包之间的依赖关系。yum作为一...

53040
来自专栏xingoo, 一个梦想做发明家的程序员

Oracle卸载

1.关闭oracle所有的服务。可以在windows的服务管理器中关闭; 2.打开注册表:regedit 打开路径: HKEY_LOCAL_MACHINE...

343100
来自专栏Java技术栈

Spring Boot Starters启动器

Starters是什么? Starters可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包,你可以一站式集成Spring及其他技术,而不需要到处找示例...

32650
来自专栏水击三千

SpringMvc学习-环境搭建

最近在学习SpringMVC,首先来说说SpringMVC项目的搭建。 1.SpringMVC简介 spring Web MVC是一种基于Java的实现了Web...

30570
来自专栏云计算教程系列

​如何使用Nginx反向代理配置SSL加密的Jenkins

默认情况下,Jenkins自带内置的Winstone网络服务器,可以通过8080端口进行监听,方便入门。但是,只要您认真使用Jenkins,就应该使用SSL保护...

34640
来自专栏PPV课数据科学社区

【聚焦】企业数据收集网页采集解决方案 附PDF下载

原文:http://www.ppvke.com/Answer/file/download/file_name-5LyB5Lia5pWw5o2u5pS26ZuG6...

38150
来自专栏积累沉淀

struts2国际化

在struts2中需要做国际化的有: jsp页面的国际化,action错误信息的国际化,转换错误信息的国际化,校验错误信息的国际化 jsp页面的国际化 第一步 ...

25050

扫码关注云+社区

领取腾讯云代金券