【原创】问题定位分享(19)spark task在executors上分布不均

最近提交一个spark应用之后发现执行非常慢,点开spark web ui之后发现卡在一个job的一个stage上,这个stage有100000个task,但是绝大部分task都分配到两个executor上,其他executor非常空闲,what happened?

查看spark task分配逻辑发现,有一个data locality即数据本地性的特性,详见 https://www.cnblogs.com/barneywill/p/10152497.html
即会按照locality级别的优先级来分配任务,数据本地性的优先级是:PROCESS_LOCAL, NODE_LOCAL, NO_PREF, RACK_LOCAL, ANY,并且在优先级之间还有一个delay,

spark.locality.wait

进一步查看目前集群的部署结构,发现datanode和nodemanager并没有部署到一块,所以spark在分配NODE_LOCAL类型task的时候,只有两个executor满足条件,所以绝大部分任务都分配到这两个executor上,通过设置

spark.locality.wait=0

解决问题;

原文地址:https://www.cnblogs.com/barneywill/p/10152659.html

时间: 2024-08-29 16:57:13

【原创】问题定位分享(19)spark task在executors上分布不均的相关文章

利用HTML5定位功能,实现在百度地图上定位

利用HTML5定位功能,实现在百度地图上定位 代码如下: <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <title>HTML5定位</title>     <script type="text/javascript" src="http://lib.sinaapp

利用HTML5定位功能,实现在百度地图上定位(转)

原文:利用HTML5定位功能,实现在百度地图上定位 代码如下: 测试浏览器:ie11定位成功率100%,Safari定位成功率97%,(add by zhj :在手机上测试(用微信内置浏览器打开),无论使用WIFI还是移动4G联网, 定位精度都是蛮高的,误差在几十米内) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>

Matlab与C++混合编程 编写独立外部应用程序时出现“无法定位序数3906于动态链接库LIBEAY32.dll上”错误

出现“无法定位序数3906于动态链接库LIBEAY32.dll上”错误,这种错误一般是同名函数出现在两个不同的头文件中了. 笔者的这个错误是由于 #include "mat.h" //#include "mex.h" /* 出现无法定位序数3906于冬天链接库LIBEAY32,all上 错误的解决方案,就是注释掉此行然后“生成--清理选定内容.重新生成”.初步分析,应该是重复包含头文件.以及所包含的头文件中双重定义函数名造成的模糊指定错误 .2016-1-24 *

19.3,19.4,19.6 安装zabbix(上中下 )19.5 忘记Admin密码如何做;

19.1 Linux监控平台介绍 常见开源监控软件: 1. cacti.nagios.zabbix.smokeping.open-falcon等等 2. cacti.smokeping偏向于基础监控,成图非常漂亮 3. cacti.nagios.zabbix服务端监控中心,需要php环境支持,其中zabbix和cacti都需要mysql作为数据存储,nagios不用存储历史数据,注重服务或者监控项的状态,zabbix会获取服务或者监控项目的数据,会把数据记录到数据库里,从而可以成图 4. ope

spark执行在yarn上executor内存不足异常ERROR YarnScheduler: Lost executor 542 on host-bigdata3: Container marked as failed: container_e40_1550646084627_1007653_01_000546 on host: host-bigdata3. Exit status: 143.

当spark跑在yarn上时 单个executor执行时,数据量过大时会导致executor的memory不足而使得rdd  最后lost,最终导致任务执行失败 其中会抛出如图异常信息 如图中异常所示 对应解决方法可以加上对应的参数调优(这个配置可以在总的处理数据量在几百TB或者1~3PB级别的数据处理时解决executor-memory不足问题) --num-executors=512 --executor-cores=8 --executor-memory=32g --driver-memo

[文章分享]开始在 Intel&reg; IoT 平台上使用 Intel&reg; XDK IoT 版

摘要:[文章分享]开始在 Intel? IoT 平台上使用 Intel? XDK IoT 版 Intel? XDK是一套Intel自己的开发工具! 为了因应IOT的趋势-Intel也出了Intel? XDK Iot版! 就让我们来看看要如何使用Intel? XDK在我们的Intel? IoT 平台上吧! 文章连结:https://software.intel.com/en-us/articles/install-the-intel-xdk-iot-edition ? 原文:大专栏  [文章分享]

【原创】问题定位分享(16)spark写数据到hive外部表报错ClassCastException: org.apache.hadoop.hive.hbase.HiveHBaseTableOutputFormat cannot be cast to org.apache.hadoop.hive.ql.io.HiveOutputFormat

spark 2.1.1 spark在写数据到hive外部表(底层数据在hbase中)时会报错 Caused by: java.lang.ClassCastException: org.apache.hadoop.hive.hbase.HiveHBaseTableOutputFormat cannot be cast to org.apache.hadoop.hive.ql.io.HiveOutputFormat at org.apache.spark.sql.hive.SparkHiveWrit

【原创】问题定位分享(18)beeline连接spark thrift有时会卡住

spark 2.1.1 beeline连接spark thrift之后,执行use database有时会卡住,而use database 在server端对应的是 setCurrentDatabase, 经过排查发现当时spark thrift正在执行insert操作, org.apache.spark.sql.hive.execution.InsertIntoHiveTable protected override def doExecute(): RDD[InternalRow] = {

【原创】大叔问题定位分享(33)oozie提交任务报错ArithmeticException: / by zero

oozie提交workflow后执行task报错: 2019-07-04 17:19:00,559 ERROR [RMCommunicator Allocator] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: ERROR IN CONTACTING RM. java.lang.ArithmeticException: / by zero at org.apache.hadoop.mapreduce.v2.app.rm.R