卡夫卡水槽连接器无法连接到Couchbase

时间:2019-08-13 14:27:48

标签: apache-kafka couchbase

我在本地计算机Ubuntu VM上运行Apache Kafka和Couchbase。我有一个从MS SQL读取的SourceConnector和一个将写入Couchbase的接收器连接器。我目前在水槽连接器上遇到问题。

设置水槽连接器并检查其状态时,它正在运行。但是,在更新SQL DB中的记录并检查连接器状态后,出现此异常:

enter image description here

我已验证数据正在流入Kafka主题和流。唯一不起作用的部分是写入Couchbase。 (Couchbase尚未更新,加上连接器状态异常)。

这是我的连接器JSON配置:

{
"connector.class":"com.couchbase.connect.kafka.CouchbaseSinkConnector",
"tasks.max":"1",
"topics":"weconnect-customers-sink",
"connection.cluster_address":"127.0.0.1",
"connection.ssl.enabled":"false",
"connection.bucket":"accounts",
"connection.username":"Administrator",
"connection.password":"Couchbase",
"couchbase.durability.persist_to":"NONE",
"couchbase.durability.replicate_to":"NONE",
"couchbase.remove.document.id": "true",
"couchbase.document.id": "${/id}",
"auto.offset.reset":"latest",

"key.converter": "org.apache.kafka.connect.storage.StringConverter",
"value.converter":"org.apache.kafka.connect.json.JsonConverter",
"value.converter.schemas.enable":"false",

"transforms": "joltFields,replaceFields",

"transforms.joltFields.transformType": "chainr",
"transforms.joltFields.transformSpec": "[{\"operation\":\"shift\",\"spec\":{\"*\":\"&\",\"CHANNELS_*\":\"CHANNELS[]\",\"ADDRESS_CITY\": \"ADDRESS.CITY\",\"ADDRESS_COUNTRYCODE\":\"ADDRESS.COUNTRYCODE\",\"ADDRESS_POSTALCODE\":\"ADDRESS.POSTALCODE\",\"ADDRESS_REGION\":\"ADDRESS.REGION\",\"ADDRESS_STREETHOUSENUMBER\":\"ADDRESS.STREETHOUSENUMBER\", \"COMPANYCODE\":\"COMPANY.CODE\",\"CUSTOMERTYPE\":\"CUSTOMERTYPE.CODE\", \"DOCUMENT_TYPE\": \"DOCUMENTTYPE\"}}]",
"transforms.joltFields.type": "com.pvh.kafka.connect.transforms.JoltFields",

"couchbase.n1ql.clause.fields": "documentType:customer,company.code,customerNumber",
"couchbase.n1ql.clause": "WHERE",
"couchbase.n1ql.operation": "UPSERT",
"couchbase.document.mode": "N1QL",
"couchbase.subdocument.create_document": "false",
"couchbase.create_document": "true",

"transforms.replaceFields.type": "com.pvh.kafka.connect.transforms.ReplaceFields",
"transforms.replaceFields.schema": "{\"type\": \"record\",\"name\": \"CustomersValue\",\"namespace\": \"com.pvh.digitalshowroom\",\"fields\": [{\"name\": \"channels\",\"type\": [ \"null\",{\"type\": \"array\",\"items\": \"string\"}],\"default\": null,\"aliases\": [ \"CHANNELS\" ]},{\"name\": \"id\",\"type\": \"string\",\"aliases\": [ \"id\",\"ID\"]},{\"name\": \"customerNumber\",\"type\": \"string\",\"aliases\": [ \"customerNumber\",\"CUSTOMERNUMBER\"]},{\"name\": \"name\",\"type\": \"string\",\"aliases\": [ \"NAME\"]},{\"name\": \"languageCode\",\"type\": \"string\",\"aliases\": [ \"languagecode\",\"LANGUAGECODE\"]},{\"name\": \"phone\",\"type\": \"string\",\"aliases\": [ \"PHONE\"]},{\"name\": \"remarks\",\"type\": \"string\",\"aliases\": [ \"REMARKS\"]},{\"name\": \"vatCode\",\"type\": \"string\",\"aliases\": [ \"vatcode\",\"VATCODE\"]},{\"name\": \"address\",\"type\":{\"type\": \"record\",\"namespace\": \"com.pvh.digitalshowroom\",\"name\": \"address\",\"fields\": [{\"name\": \"city\",\"type\": \"string\",\"aliases\": [ \"CITY\",\"city\"]},{\"name\": \"postalCode\",\"type\": \"string\",\"aliases\": [ \"POSTALCODE\"]},{\"name\": \"region\",\"type\": \"string\",\"aliases\": [ \"REGION\"]},{\"name\": \"streetHouseNumber\",\"type\": \"string\",\"aliases\": [ \"STREETHOUSENUMBER\"]},{\"name\": \"countryCode\",\"type\": \"string\",\"aliases\": [ \"COUNTRYCODE\"]}]},\"aliases\": [ \"ADDRESS\"]},{\"name\": \"company\",\"type\":{\"type\": \"record\",\"namespace\": \"com.pvh.digitalshowroom\",\"name\": \"company\",\"fields\": [{\"name\": \"code\",\"type\": \"string\",\"aliases\": [ \"CODE\",\"COMPANYCODE\"]}]},\"aliases\": [ \"COMPANY\"]},{\"name\": \"customerType\",\"type\":{\"type\": \"record\",\"namespace\": \"com.pvh.digitalshowroom\",\"name\": \"customerType\",\"fields\": [{\"name\": \"code\",\"type\": \"string\",\"aliases\": [ \"CODE\",\"CUSTOMERTYPE\"]}]},\"aliases\": [ \"CUSTOMERTYPE\"]},{\"name\": \"doumentType\",\"type\": \"string\",\"aliases\": [ \"DOCUMENTTYPE\"]}]}"

}

有人可以告诉我我的配置出了什么问题吗?此配置在连接器的先前版本(3.3.0)中有效,但在当前版本(3.4.4)中无效。我唯一更改的是:

  • 将couchbase.document.id更改为$ {/ id}。 (以前是/ id,文档说要对此进行更改)
  • 添加了“ connection.ssl.enabled”:“ false”
  • 尝试了connection.cluster_address的以下所有值(无差异):127.0.0.1,localhost,10.0.2.15(本地IP),127.0.0.1:8091,localhost:8091、10.0.2.15:8091
  • (已验证我可以浏览至127.0.0.1:8091的Couchbase管理界面)

1 个答案:

答案 0 :(得分:0)

NoSuchMethodError表示连接器的类路径中某处可能存在Coucbase core-iojava-client库的不兼容版本。确保安装目录中没有这些库的任何旧版本(或连接器jar的 旧版本 )。