我试图用Spark从Couchbase读取样本数据 . 以下是错误和运行的代码 .

看来我收到了身份验证错误,提到的用户名和密码与cbc命令一样 .

package com.demo.sparkstreaming

import com.couchbase.client.java.document.JsonDocument
import org.apache.spark.sql.SparkSession
import com.couchbase.spark._
/**
* Created by cloudera on 12/8/17.
*/
object SparkRead {



def main(args: Array[String]): Unit = {

  // The SparkSession is the main entry point into spark
  val spark = SparkSession
    .builder()
    .appName("KeyValueExample")
    .master("local[*]") // use the JVM as the master, great for testing
    .config("spark.couchbase.nodes", "192.168.169.101") // connect to couchbase on hostname
    .config("spark.couchbase.bucket.travel-sample","") // open the travel-sample bucket with empty password
    .config("com.couchbase.username", "test")
    .config("com.couchbase.password", "****")
    .getOrCreate()

  spark.sparkContext
    .couchbaseGet[JsonDocument](Seq("airline_10123")) // Load documents from couchbase
    .collect() // collect all data from the spark workers
    .foreach(println) // print each document content


 }
}

ERROR LOGS

com.couchbase.client.core.endpoint.kv.AuthenticationException:在com.couchbase.client.core.endpoint处的com.couchbase.client.core.endpoint.kv.KeyValueAuthHandler.checkIsAuthed(KeyValueAuthHandler.java:288)上的身份验证失败.kv.KeyValueAuthHandler.channelRead0(KeyValueAuthHandler.java:173)at com.couchbase.client.core.endpoint.kv.KeyValueAuthHandler.channelRead0(KeyValueAuthHandler.java:52)at com.couchbase.client.deps.io.netty.channel .simpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)at com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:357)at com.couchbase.client.deps.io.netty.channel .cbstractBhannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:343)位于com.couchbase.client.deps.io.net . .codec.MessageToMessageDecoder . channelRead(MessageToMessageDecoder.java:102)位于com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:357)的com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext . invokeChannelRead(AbstractChannelHandlerContext.java:343)at com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:336)at com.couchbase.client.deps.io.netty.channel.CombinedChannelDuplexHandler $在com.couchbase.client.deps.io.netty上的com.couchbase.client.deps.io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293)中委托ChannelHandlerContext.fireChannelRead(combinedChannelDuplexHandler.java:435) . handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267)at com.couchbase.client.deps.io.netty.channel.CombinedChannelDuplexHandler.channelRead(combinedChannelDuplexHandler.java:250)at com.couchbase.client.deps.i o.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:357)位于com.couchbase.client.deps的com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:343) . io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:336)位于com.couchbase.client的com.couchbase.client.deps.io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:287) . deps.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:357)位于com.couchbase.client的com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:343) . deps.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:336)at com.couchbase.client.deps.io.netty.channel.DefaultChannelPipeline $ HeadContext.channelRead(DefaultChannelPipeline.java) :1294)at com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:357)at com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java) :343)at com.couchbase.client.deps.io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:911)at com.couchbase.client.deps.io.netty.channel.nio.AbstractNioByteChannel $ NioByteUnsafe.read (AbstractNioByteChannel.java:131)at com.couchbase.client.deps.ionel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:566)at com.couchbase.client.deps.io.netty.channel.nio位于com.couchbase.client.deps.io.netty的com.couchbase.client.deps.io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:442)上的.NioEventLoop.processSelectedKeys(NioEventLoop.java:480) .util.concurrent.SingleThreadEventExecutor $ 2.run(SingleThreadEventExecutor.java:131)at com.couchbase.client.deps.io.netty.util.concur在java.lang.Thread.run(Thread.java:748)上的rent.DefaultThreadFactory $ DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)