首页 > 解决方案 > 如何确保火花作业正在利用所有可用资源(利用所有容器)

问题描述

我有一个火花流作业,它从 kafka 读取数据并放入数据仓库。

它运行得非常好,但问题是当我监控日志时,我注意到来自我的应用程序的日志只在一个容器上,而容器的其余部分只显示 GC(分配失败)。尝试过使用 -num-executors 和 --executor-memory 的不同组合。是真的在利用集群的全部可用资源,还是只有一个工作节点在完成所有工作。

我正在使用 AWS EMR 来部署我的工作。集群有 1 个主节点(m5xLarge)和 2 个数据节点(m5xLarge)。每个节点上的可用内存 16 GB,4 个 vcpu。

来自其中一个容器的日志

2021-03-25T17:30:30.539+0000:[GC(分配失败)2021-03-25T17:30:30.539+0000:[ParNew:73307K->6385K(74944K),0.0072151 秒]161323K->95020KK2 ), 0.0073002 secs] [Times: user=0.02 sys=0.00, real=0.01 secs]
2021-03-25T17:30:31.249+0000:[GC(分配失败)2021-03-25T17:30:31.249+0000:[ParNew:73009K->4636K(74944K),0.0065039 秒] 161644K->94637KK2 ), 0.0065701 secs] [Times: user=0.01 sys=0.01, real=0.01 secs]
2021-03-25T17:30:31.457+0000:[GC(分配失败)2021-03-25T17:30:31.457+0000:[ParNew:71260K->3970K(74944K),0.0040602 秒] 161261K->93971KK2 ), 0.0041415 secs] [Times: user=0.02 sys=0.00, real=0.00 secs]
2021-03-25T17:30:31.700+0000:[GC(分配失败)2021-03-25T17:30:31.700+0000:[ParNew:70594K->5094K(74944K),0.0044768 秒]160595K->95095K(4 ), 0.0045439 秒] [时间:用户=0.02 系统=0.00,真实=0.00 秒]
2021-03-25T17:30:33.044+0000:[GC(分配失败)2021-03-25T17:30:33.044+0000:[ParNew:71718K->7049K(74944K),0.0131990 秒]161719K536->97050KK2 ), 0.0132825 secs] [Times: user=0.04 sys=0.00, real=0.02 secs]
2021-03-25T17:30:35.042+0000: [GC (分配失败) 2021-03-25T17:30:35.042+0000: [ParNew: 73673K->7211K(74944K), 0.0063486 秒] 163674K->97868KK2 ), 0.0064325 secs] [Times: user=0.03 sys=0.00, real=0.01 secs]
2021-03-25T17:30:35.202+0000:[GC(分配失败)2021-03-25T17:30:35.202+0000:[ParNew:73835K->8320K(74944K),0.0125162 秒]164492K->103499KK2( ), 0.0125880 secs] [Times: user=0.04 sys=0.00, real=0.02 secs]
2021-03-25T17:30:35.340+0000: [GC (分配失败) 2021-03-25T17:30:35.340+0000: [ParNew: 74904K->8320K(74944K), 0.0165272 秒] 170084K->116030K2( ), 0.0166063 secs] [Times: user=0.05 sys=0.01, real=0.02 secs]
2021-03-25T17:30:37.309+0000:[GC(分配失败)2021-03-25T17:30:37.309+0000:[ParNew:74944K->8319K(74944K),0.0116421 秒]182654K->117918K2( ), 0.0117176 secs] [Times: user=0.04 sys=0.00, real=0.01 secs]
2021-03-25T17:30:37.441+0000:[GC(分配失败)2021-03-25T17:30:37.441+0000:[ParNew:74943K->6171K(74944K),0.0188051 秒] 184542K->120606K26( ), 0.0188938 secs] [Times: user=0.05 sys=0.00, real=0.02 secs]
2021-03-25T17:30:37.652+0000:[GC(分配失败)2021-03-25T17:30:37.652+0000:[ParNew:72674K->8320K(74944K),0.0080351 秒]187109K->124677K2( ), 0.0081014 secs] [Times: user=0.03 sys=0.00, real=0.01 secs]

Spark 2.4.0 版 Scala 2.11.12 版

谢谢

标签: scalaapache-kafkaspark-streamingamazon-emr

解决方案


推荐阅读