当前位置: 首页 > 知识库问答 >
问题:

使用经过身份验证的ConFluent Schema注册表配置Spark结构化流

申颖逸
2023-03-14

我在Spark流中使用Kafka源来接收在Confluent Cloud中使用Datagen生成的记录。我打算使用融合模式注册表,

目前,这是我面临的例外情况:*

线程"main"io.confluent.kafka.schemaregistry.client.rest.exceptions.RestClientException中的异常:未经授权;错误代码:401

融合云的模式注册表需要传递一些我不知道如何输入的身份验证数据:

basic.auth.credentials.source=USER_INFO
schema.registry.basic.auth.user.info=secret: secret

我认为我必须将此身份验证数据传递给CachedSchemareGistrCyclient,但我不确定是否传递,以及如何传递。

// Setup the Avro deserialization UDF
   schemaRegistryClient = new CachedSchemaRegistryClient(schemaRegistryUrl, 128)
    kafkaAvroDeserializer = new AvroDeserializer(schemaRegistryClient)
    spark.udf.register("deserialize", (bytes: Array[Byte]) =>
      kafkaAvroDeserializer.deserialize(bytes)

如果我试图以身份向模式注册表发送身份验证

val restService = new RestService(schemaRegistryURL)

  val props = Map(
    "basic.auth.credentials.source" -> "USER_INFO",
    "schema.registry.basic.auth.user.info" -> "secret:secret"
  ).asJava

  var schemaRegistryClient = new CachedSchemaRegistryClient(restService, 100, props)

我得到< code >无法解析重载的构造函数CachedSchemaRegistryClient ,似乎只有2个参数要发送到CachedSchemaRegistryClient。

如何解决此问题?

我遇到了这篇文章,但在这里他们没有对融合云中的模式注册表应用任何身份验证。

共有1个答案

狄晟睿
2023-03-14

这段代码对我有用:

private val schemaRegistryUrl = "<schemaregistryURL>"   
val props = Map("basic.auth.credentials.source" -> "USER_INFO",
 "schema.registry.basic.auth.user.info" -> "<api-key>:<api-secret>").asJava

 private val schemaRegistryClient = new CachedSchemaRegistryClient(schemaRegistryUrl, 100,props)

我们需要确保在转换为JAVA时进行正确的导入:

 import scala.collection.JavaConverters.mapAsJavaMapConverter
 类似资料:
  • 我一直在寻找使用各种AWS服务来处理我们下一个主要项目的基础设施。我们开始研究EC2实例上的docker容器,但在进一步研究AWS Lambda之后,这似乎是一条值得探索的道路。 使用AWS Lambda范例,我们只需使用Lambda函数作为逻辑粘合剂,将数据和事件(来自其他AWS服务)保存在一起。 例如,如果我们产品的用户创建了一个新记录,AWS Lambda可以在该事件中触发,我们可以调用La

  • 我试着用laravel做一个登录/注册的简单应用。。。我目前使用的是5.2版本的laravel。 在路线上,我写道: 所以现在当我尝试注册用户在localhost:8888/auth/register-我填写字段,但当我点击注册然后我得到错误消息: 用户中的FatalErrorException。php第8行:找不到类“lightlight\Foundation\Auth\User” 那么我如何在

  • 我的代码在这里:代码重新发布是因为我想问一个更直接的问题。如何在未经身份验证的用户和经过身份验证的用户之间切换?我的未经验证的文件似乎已缓存,我使用了以下方法: 在我剩下的api代码之前,它仍然不能工作。谢谢你的帮助 注意:我知道它不起作用,因为我在切换配置/凭据提供程序后立即使用lambda进行调用,并且只有授权用户才能调用此方法。 编辑@behrooziAWS答案: API代码: 完整错误:B

  • 我们的项目由Java后端(spring web应用程序)以及iOS和Android客户端应用程序组成。现在我们需要向Java后端添加客户端应用程序的身份验证。其想法是首次使用外部web服务注册用户。在这一步中,用户提供完整的凭证(登录和“大”密码),并选择一些PIN进行进一步授权。在这个主要步骤成功完成后,用户应该能够使用他的登录名和PIN(他之前自己选择的)进行身份验证。这些登录名和pin应该存

  • 我们已将Schema注册表和Kafka Connect设置为使用基本身份验证。一些连接器似乎正在运行。但其中一些出现错误: " io . confluent . Kafka . schemaregistry . client . rest . exceptions . rest client exception:未授权;错误代码:401 " 如何给Kafka Connect提供模式注册的凭证?我应

  • 我正在尝试创建一个应用程序,我必须注册用户,我正在使用Firebase进行注册,一旦我将所有数据放入register,然后进入Firebase数据库,我发现我自己并不是在测试模式下创建数据库的注册用户。你能解释一下我可能做错了什么吗? 注册用户代码: 我正在使用实时数据库 规则Firebase: