【问题标题】:error using couchbase-spark-connector. throws BackPressureException使用 couchbase-spark-connector 时出错。抛出 BackPressureException
【发布时间】:2016-01-04 23:01:21
【问题描述】:

我使用 AWS EMR 和 Spark 1.4.0 作为独立集群运行(不由 Yarn 或 Mesos 管理),我使用 couchbase-spark-connector 版本 1.0.0-beta 作为以及撰写本文时的couchbase-java-client 版本2.2.0-dp2

我有一个用 Couchbase 编写的视图,它只返回我的文档的键(大约 300M+ 个键)。

我编写了一个用 Scala 2.10.4 编写的 Spark 程序,对于从视图返回的每个键,我正在获取文档并希望将其全部保存到 AWS S3 文件系统。

我的问题是 Couchbase 向我抛出了一个异常类型:com.couchbase.client.core.BackpressureExceptiondocumentation:

确定在使用服务时需要在供应商方面退缩,因为消费者超载。

所以我的问题是如何修复这个异常而不被抛出。我想我想延迟我的请求,但我不知道该怎么做。

下面附上我的 Spark 代码:

val couchbaseKeys = sparkContext.couchbaseView(ViewQuery.from(couchbaseDesignName, couchbaseViewName)).map(_.id).couchbaseGet[JsonDocument]()
    couchbaseKeys.map(Projection.projectCouchbaseObject(_)).filter(_ != null).saveAsTextFile(pathForExportedOutput)

Projection 对象及其方法:

object Projection {

  val logger: Logger = LoggerFactory.getLogger(this.getClass)

  def projectCouchbaseObject(couchbaseObject: JsonDocument): String = {
    try {
      return couchbaseObject.id() + '\t' + couchbaseObject.content()
    }
    catch {
      case exception: Throwable => {
        logger.error("Failed project couchbase object. key was: " + couchbaseObject.id(), exception)
      }
    }

    return null
  }
}

【问题讨论】:

    标签: java scala apache-spark couchbase


    【解决方案1】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-26
      • 1970-01-01
      • 2014-09-20
      • 2017-05-05
      • 2017-07-12
      • 2021-01-10
      相关资源
      最近更新 更多