如何覆盖 aws glue 作业中的 couchbase 查询超时?
How do I override the couchbase query timeout in aws glue job?
我正在尝试 运行 使用 spark couchbase connector 在 aws glue 作业中进行 Couchbase 查询。我的查询是针对现有 Couchbase 存储桶的简单 N1Ql 查询:
var queryResultRDD: RDD[CouchbaseQueryRow] = spark.sparkContext.couchbaseQuery(N1qlQuery.simple(CbN1qlQuery))
如果我有很长的 运行ning 查询,我会收到以下错误消息:
Caused by: com.couchbase.client.java.error.QueryExecutionException: Timeout 1m15s exceeded
at com.couchbase.spark.connection.QueryAccessor$$anonfun$compute$$anonfun$apply$$anonfun.apply(QueryAccessor.scala:56)
at com.couchbase.spark.connection.QueryAccessor$$anonfun$compute$$anonfun$apply$$anonfun.apply(QueryAccessor.scala:53)
at rx.lang.scala.Observable$$anon.call(Observable.scala:1324)
1 分 15 秒的超时设置可能来自 Couchbase's 75s default query timeout, so I tried to add the query timeout setting directly 查询调用,希望它会覆盖默认超时设置:
var queryResultRDD: RDD[CouchbaseQueryRow] = sc.couchbaseQuery(N1qlQuery.simple(CbN1qlQuery), "bucket-name", Some(Duration(130, SECONDS)))
将持续时间降低到 1 毫秒之类不可能的低值会导致不同的查询超时错误。但是,如果我如上所示延长持续时间,我仍然会收到相同的 QueryExecutionException,其中超时仍为 1 分钟 15 秒。我还尝试在 Glue 作业脚本中设置系统 属性:
System.setProperty("com.couchbase.env.timeout.queryTimeout", "1ms")
但我仍然收到相同的 1 分 15 秒超时错误。我也尝试以相同的方式设置 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()
如何覆盖这个 1 分 15 秒的查询超时设置?
我在查看了 CouchbaseConfig class 配置应该是什么之后想通了:
.config("com.couchbase.queryTimeout", "10")
其中查询超时值以毫秒为单位。
我正在尝试 运行 使用 spark couchbase connector 在 aws glue 作业中进行 Couchbase 查询。我的查询是针对现有 Couchbase 存储桶的简单 N1Ql 查询:
var queryResultRDD: RDD[CouchbaseQueryRow] = spark.sparkContext.couchbaseQuery(N1qlQuery.simple(CbN1qlQuery))
如果我有很长的 运行ning 查询,我会收到以下错误消息:
Caused by: com.couchbase.client.java.error.QueryExecutionException: Timeout 1m15s exceeded
at com.couchbase.spark.connection.QueryAccessor$$anonfun$compute$$anonfun$apply$$anonfun.apply(QueryAccessor.scala:56)
at com.couchbase.spark.connection.QueryAccessor$$anonfun$compute$$anonfun$apply$$anonfun.apply(QueryAccessor.scala:53)
at rx.lang.scala.Observable$$anon.call(Observable.scala:1324)
1 分 15 秒的超时设置可能来自 Couchbase's 75s default query timeout, so I tried to add the query timeout setting directly 查询调用,希望它会覆盖默认超时设置:
var queryResultRDD: RDD[CouchbaseQueryRow] = sc.couchbaseQuery(N1qlQuery.simple(CbN1qlQuery), "bucket-name", Some(Duration(130, SECONDS)))
将持续时间降低到 1 毫秒之类不可能的低值会导致不同的查询超时错误。但是,如果我如上所示延长持续时间,我仍然会收到相同的 QueryExecutionException,其中超时仍为 1 分钟 15 秒。我还尝试在 Glue 作业脚本中设置系统 属性:
System.setProperty("com.couchbase.env.timeout.queryTimeout", "1ms")
但我仍然收到相同的 1 分 15 秒超时错误。我也尝试以相同的方式设置 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()
如何覆盖这个 1 分 15 秒的查询超时设置?
我在查看了 CouchbaseConfig class 配置应该是什么之后想通了:
.config("com.couchbase.queryTimeout", "10")
其中查询超时值以毫秒为单位。