当前位置: 首页 > 知识库问答 >
问题:

得到BusyPoolException com.datastax.spark.connector.writer.QueryExecutor,我做错了什么?

卫弘图
2023-03-14

我使用的是SPARK-SQL-2.4.1、SPARK-Cassandra-Connector2.11-2.4.1和java8以及apache Cassandra3.0版本。

我有如下所示的spark-submit或spark集群环境,可以加载20亿条记录。

--executor-cores 3 
--executor-memory 9g 
--num-executors 5 
--driver-cores 2 
--driver-memory 4g 
cassandra.concurrent.writes=1500
cassandra.output.batch.size.rows=10
cassandra.output.batch.size.bytes=2048
cassandra.output.batch.grouping.key=partition 
cassandra.output.consistency.level=LOCAL_QUORUM
cassandra.output.batch.grouping.buffer.size=3000
cassandra.output.throughput_mb_per_sec=128

当我检查日志时,我看到警告com.datastax.spark.connector.writer.QueryExecutor-BusyPoolException

怎么解决这个?

共有1个答案

杜建章
2023-03-14

cassandra.concurrent.writes的值不正确,这意味着同时发送1500个并发批处理。但是默认情况下,Java驱动程序允许1024个同时请求。通常,如果该参数的数值过高,可能会导致节点过载,并导致任务重试。

另外,其他设置也是不正确的--如果您SEPIFYcassandra.output.batch.size.rows,那么它的值将覆盖cassandra.output.batch.size.bytes的值。有关更多详细信息,请参见Spark Cassandra连接器参考的相应部分。

性能调优的一个方面是拥有正确数量的Spark分区,从而达到良好的并行性--但这实际上取决于您的代码、Cassandra集群中有多少节点等。

附言。另外,请注意配置参数应该以spark.cassandra.开始,而不是以简单的cassandra.开始--如果您以这种形式指定了它们,那么这些参数将被忽略,并使用默认值。

 类似资料:
  • 我正在做一个项目,我的意图是运行一个玉米作业,并发送邮件给我的朋友,祝他们生日,我能够从MySQL DB获取电子邮件,并将其与当前日期进行比较,但当涉及到发送电子邮件时,我得到NullPointerException。 我确信应用程序属性没有问题,我在其他项目中也使用了它们,它们的功能正常 这是我得到以下信息的错误

  • 11:15:57创建表如果不存在tblcompany(companyid INT(11)无符号NOT NULL,custfirst VARCHAR(50),custlast VARCHAR(50),company VARCHAR(50),custphone VARCHAR(50), custemail VARCHAR(50),主键(companyid),索引(companyid),约束外键(com

  • 问题内容: 我有一些代码来计算圆的属性: 它计算周长,但不计算其余部分。 问题答案: 是一个,也一个,这意味着不能在第二个打印语句中使用。试试那里。 回想一下,这是浮点数,而整数。在的文档中对此进行了概述(请参阅“ 格式化字符串语法”)。

  • 我正在使用EclipseIDE编程。在完成有关Apache POI的教程后: https://www.youtube.com/watch?v=RsrF2Ku7ad4 我通过eclipse和以下链接创建了一个可执行jar:http://help.eclipse.org/mars/index.jsp?topic=/org.eclipse.jdt.doc.user/tasks/tasks-37.htm

  • 我试图发布一个新的条目到MongoDB,我知道这个问题是我在服务器文件中调用我的路由的地方,但我不知道如何解决这个问题。我需要能够测试在邮递员的API和张贴到数据库。 我得到以下错误: /users/ryan/desktop/leasequery/operations-backend/node_modules/express/lib/router/index.js:458抛出新的TypeError

  • 我正在用spark处理数据,它可以处理一天的数据(40G),但用OOM处理一周的数据失败了: null