Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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
Spark cassandra连接器NoHostAvailableException将进行多次读取_Cassandra_Apache Spark_Spark Cassandra Connector - Fatal编程技术网

Spark cassandra连接器NoHostAvailableException将进行多次读取

Spark cassandra连接器NoHostAvailableException将进行多次读取,cassandra,apache-spark,spark-cassandra-connector,Cassandra,Apache Spark,Spark Cassandra Connector,在mapPartition中执行多重选择时。 我按行处理2个准备好的请求 对于建议,代码如下所示 source.mapPartitions { partition => lazy val prepared: PreparedStatement = ... cc.withSessionDo { session => partition.map{ row => session.execute(prepared.bind(row.get

在mapPartition中执行多重选择时。 我按行处理2个准备好的请求

对于建议,代码如下所示

 source.mapPartitions { partition =>
   lazy val prepared: PreparedStatement = ...
   cc.withSessionDo { session =>
       partition.map{ row =>
          session.execute(prepared.bind(row.get("id"))
       }
   }
 }
当批次达到约400行时,它抛出一个

Caused by: com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: /localhost:9042 (com.datastax.driver.core.ConnectionException: [/localhost:9042] Pool is CLOSING))
at com.datastax.driver.core.RequestHandler.reportNoMoreHosts(RequestHandler.java:216)
at com.datastax.driver.core.RequestHandler.access$900(RequestHandler.java:45)
at com.datastax.driver.core.RequestHandler$SpeculativeExecution.sendRequest(RequestHandler.java:276)
at com.datastax.driver.core.RequestHandler.startNewExecution(RequestHandler.java:118)
at com.datastax.driver.core.RequestHandler.sendRequest(RequestHandler.java:94)
at com.datastax.driver.core.SessionManager.execute(SessionManager.java:552)
at com.datastax.driver.core.SessionManager.executeQuery(SessionManager.java:589)
at com.datastax.driver.core.SessionManager.executeAsync(SessionManager.java:97)
... 25 more
它已尝试更改配置,以查看是否可以执行某些操作,但错误仍在弹出

  .set("spark.cassandra.output.batch.size.rows", "auto")
  .set("spark.cassandra.output.concurrent.writes", "500")
  .set("spark.cassandra.output.batch.size.bytes", "100000")
  .set("spark.cassandra.read.timeout_ms", "120000")
  .set("spark.cassandra.connection.timeout_ms" , "120000")
这种代码在中起作用,但可能有些东西我还没有看到

引发异常后,下一个流批处理连接到cassandra没有问题

我有没有让我的卡桑德拉暂停太多的同时请求


我将cassandra 2.1.3与spark connector 1.4.0-M3和driver 2.1.7.1一起使用

您是否尝试减小输入分割大小和页面大小?否,您可以建议值吗?视情况而定,所以只需降低20%运行并检查是否有改进,重复。从什么开始降低20%?这个参数(spark.cassandra.input.split.size_in_mb)没有对接,我在文档中看到了100K。我能试试八万吗?我还尝试.set(“spark.cassandra.output.throughput\u mb\u peru_second”,“1”)(一个非常慢的值)这是有帮助的,但我有同样的问题是尝试80k。什么版本的连接器?并非所有版本都有MB每秒。您是否尝试减小输入拆分大小和页面大小?不,您可以建议值吗?取决于,所以只需降低20%运行并检查是否有改进,重复。从什么开始降低20%?这个参数(spark.cassandra.input.split.size_in_mb)没有对接,我在文档中看到了100K。我能试试八万吗?我还尝试.set(“spark.cassandra.output.throughput\u mb\u peru_second”,“1”)(一个非常慢的值)这是有帮助的,但我有同样的问题是尝试80k。什么版本的连接器?并非所有版本都有每秒MB的内存