在 databricks 中使用具有基本身份验证的融合 kafka-schema-registry-client 和托管融合模式注册表
Posted
技术标签:
【中文标题】在 databricks 中使用具有基本身份验证的融合 kafka-schema-registry-client 和托管融合模式注册表【英文标题】:using confluent kafka-schema-registry-client with basic auth with managed confluent schema registry in databricks 【发布时间】:2021-11-30 12:09:51 【问题描述】:在我的 spark 应用程序中,我有以下 scala 代码
val restService = new RestService(schemaRegistryUrl)
val props = Map(
"basic.auth.credentials.source" -> "USER_INFO",
"basic.auth.user.info" -> "%s:%s".format(key, secret)
).asJava
val schemaRegistryClient = new CachedSchemaRegistryClient(restService, 100, props)
// later:
schemaRegistryClient.getSchemaById(id) // fails with 401
我已经验证,我可以使用相同的基本身份验证凭据从其他 API 获取相同 ID 的架构。但是使用代码时,我收到了一个身份验证错误 - 401。所以很明显我在这里遗漏了一些东西,我很乐意在这里寻求帮助。
restService 和 SchemaRegistry 6.2.1 的版本(我相信是最新的)
请注意,当我通过相同的模式注册表使用相同的凭据运行此代码时,这在本地工作,当我使用具有相同连接变量的 python 时,它在 databricks 上工作。仅使用 databricks 中的 Scala 我得到 401
【问题讨论】:
【参考方案1】:所以答案结果是,当我放弃META-INF
时,我的程序集构建放弃了一些重要的东西,不是放弃它,而是明智地选择我需要的东西需要一些努力,但最终还是奏效了。然后就成功了。
还发现,我使用的 avro 版本 (1.10) 的 Confluent 架构注册表客户端版本与 Databricks (3/3.1) 中仅支持 1.8 的现有 spark 版本不兼容
【讨论】:
以上是关于在 databricks 中使用具有基本身份验证的融合 kafka-schema-registry-client 和托管融合模式注册表的主要内容,如果未能解决你的问题,请参考以下文章
具有基本身份验证的 Exchange Online 和 EWS 停止工作
<Spring Security> 在同一应用程序中具有 OAuth2 和基本身份验证
它是不是需要在任何具有基本身份验证的请求中传递用户名:密码组合?
使用 HttpComponentsMessageSender 的具有基本身份验证的 WebServiceTemplate