我试图用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)