我试图使用spark couchbase connector在aws胶水作业中运行Couchbase查询。我的查询是针对现有Couchbase桶的一个简单的N1Ql查询:
var queryResultRDD: RDD[CouchbaseQueryRow] = spark.sparkContext.couchbaseQuery(N1qlQuery.simple(CbN1qlQuery)) 如果我有一个长期运行的查询,我会收到以下错误消息:
Caused by: com.couchbase.client.java.error.QueryExecutionException: Timeout 1m15s exceeded
at com.couchbase.spark.connection.QueryAccessor$$anonfun$compute$1$$anonfun$apply$2$$anonfun$4.apply(QueryAccessor.scala:56)
at com.couchbase.spark.connection.QueryAccessor$$anonfun$compute$1$$anonfun$apply$2$$anonfun$4.apply(QueryAccessor.scala:53)
at rx.lang.scala.Observable$$anon$32.call(Observable.scala:1324)1m15超时设置可能来自Couchbase's 75s default query timeout,因此我尝试对查询调用进行add the query timeout setting directly,希望它将覆盖默认的超时设置:
var queryResultRDD: RDD[CouchbaseQueryRow] = sc.couchbaseQuery(N1qlQuery.simple(CbN1qlQuery), "bucket-name", Some(Duration(130, SECONDS)))将该持续时间降到不可能的低值(如1ms)会导致不同的查询超时错误。但是,如果我使持续时间更长,如上面所示,我仍然会收到相同的QueryExecutionException,其中超时仍然是1m15s。我还试图在Glue作业脚本中设置System属性:
System.setProperty("com.couchbase.env.timeout.queryTimeout", "1ms")然而,我仍然收到相同的1m15s超时错误。我还尝试以相同的方式设置spark.couchbase.timeout.queryTimeout属性,并得到了相同的结果。我还尝试在sparkSession构建器中设置查询超时配置,但没有进行任何更改:
val Spark = SparkSession
.builder()
.appName(DefaultName)
.config("spark.couchbase.nodes", CbNodes)
.config(s"spark.couchbase.bucket.$SourceBucketName", SourceBucketPassword)
.config("spark.couchbase.username", SourceBucketUserName)
.config("spark.couchbase.password", SourceBucketPassword)
.config("spark.ssl.enabled", CbSslEnabled)
.config("spark.ssl.keyStore", CbKeyStore)
.config("spark.ssl.keyStorePassword", CbKeyStorePassword)
.config("spark.couchbase.timeout.queryTimeout", "1ms")
.getOrCreate()如何覆盖这个1m15s查询超时设置?
发布于 2022-05-20 17:21:47
在查看了CouchbaseConfig class之后,我发现了配置应该是什么:
.config("com.couchbase.queryTimeout", "10")其中,querytimeout值以ms为单位。
https://stackoverflow.com/questions/72281076
复制相似问题