gpt4 book ai didi

python - 使用 Direct Kafka API 运行 Spark 流应用程序所需的最佳资源是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 14:50:30 26 4
gpt4 key购买 nike

我正在使用直接 Kafka API 运行我的 Spark 流应用程序,批处理间隔为 1 分钟,并且还在我的应用程序代码中使用 Pandas 和 Pyspark。

下面是我的集群配置:3个数据节点,每个数据节点容量为8核,12GB RAM。

我提供了带有以下参数的spark-submit作业,

--master yarn
--deploy-mode cluster
--executor-memory 2G
--total-executor-cores 4
--num-executors 11

但是我的 SPARK UI 显示我的事件批处理正在进入 QUEUE 状态,

config("spark.streaming.backpressure.enabled", "true") \
.config("spark.streaming.kafka.maxRatePerPartition","200") \

根据回答的一些帖子/问题,我在 Spark 配置中设置了以下选项,如下所示,以避免作业进入队列状态,

如果在申请处理的任何阶段有错误,请纠正我?

最佳答案

首先,正如 @Marie 在评论中提到的,pandas 部分将在驱动程序上本地执行。如果你想这样做,就必须增加--driver-memory,这有点违背了分布式处理的目的。话虽这么说,最好将批处理间隔从 5-10 秒开始,然后慢慢增加。除了可以调整的参数之外,还有 spark.streaming.concurrentJobs 由于原因 here 在文档中没有直接提及。 。逐渐增加该值(从 10 开始),看看什么最适合。有很多关于流媒体应用程序优化的博客文章,其中介绍了设置,其中一些您已经执行过。您可能还想添加 "spark.serializer": "org.apache.spark.serializer.KryoSerializer" ,其好处已解释 here .

关于python - 使用 Direct Kafka API 运行 Spark 流应用程序所需的最佳资源是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45916645/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com