Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 获取busypool异常com.datastax.spark.connector.writer.QueryExecutor,我做错了什么?_Apache Spark_Cassandra_Apache Spark Sql_Datastax Java Driver_Spark Cassandra Connector - Fatal编程技术网

Apache spark 获取busypool异常com.datastax.spark.connector.writer.QueryExecutor,我做错了什么?

Apache spark 获取busypool异常com.datastax.spark.connector.writer.QueryExecutor,我做错了什么?,apache-spark,cassandra,apache-spark-sql,datastax-java-driver,spark-cassandra-connector,Apache Spark,Cassandra,Apache Spark Sql,Datastax Java Driver,Spark Cassandra Connector,我正在使用spark-sql-2.4.1、spark-cassandra-connector_2.11-2.4.1以及java8和apache cassandra 3.0版本 我的spark submit或spark cluster环境如下,可加载20亿条记录 --executor-cores 3 --executor-memory 9g --num-executors 5 --driver-cores 2 --driver-memory 4g 使用以下配置 这项工作大约需要2个小时

我正在使用spark-sql-2.4.1、spark-cassandra-connector_2.11-2.4.1以及java8和apache cassandra 3.0版本

我的spark submit或spark cluster环境如下,可加载20亿条记录

--executor-cores 3 
--executor-memory 9g 
--num-executors 5 
--driver-cores 2 
--driver-memory 4g 
使用以下配置

这项工作大约需要2个小时,时间实在太长了

当我查看日志时,我看到 警告com.datastax.spark.connector.writer.QueryExecutor-BusyPool异常


如何解决此问题?

您的cassandra.concurrent.writes值不正确-这意味着您同时发送1500个并发批。但默认情况下。通常,若此参数的数值太大,可能会导致节点过载,并导致任务重试

此外,其他设置也不正确-如果指定cassandra.output.batch.size.rows,则其值将覆盖cassandra.output.batch.size.bytes的值。有关更多详细信息,请参阅

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


另外,请注意,配置参数应以spark.cassandra.开始,而不是简单的cassandra.-如果您在此表单中指定了分区键,那么这些参数将被忽略,并使用默认值。

@BdLearner分区键的选择应基于用于从Cassandra获取数据的访问模式-这实际上取决于您的用例,通常很难说。我建议学习DS220课程-这里有一些关于如何正确设计分区键的示例
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