Kafka 消费者

卡夫卡消费者

支持的管道类型:
  • 数据收集器

卡夫卡消费者源从阿帕奇卡集群中的单个主题读取数据。要使用多个线程从多个主题中读取,请使用 Kafka 多主题使用者

配置 Kafka 使用者时,可以配置使用者组名称、主题和 ZooKeeper 连接信息。

您可以将 Kafka 使用者配置为使用融合架构注册表。融合模式注册表是 Avro 模式的分布式存储层,它使用 Kafka 作为其底层存储机制。

您可以根据需要添加其他 Kafka 配置属性。您还可以将源配置为使用 Kafka 安全功能。

Kafka 使用者包括记录标头属性,使您能够在管道处理中使用有关记录的信息。

胶印管理

使用者组标识的 Kafka 使用者源首次收到来自主题的消息时,将为该使用者组和主题创建偏移条目。偏移条目是在动物园守护者或卡夫卡中创建的,具体取决于您的卡夫卡版本和代理配置。

Kafka 使用者源根据存储的偏移条目是否存在开始在主题中接收消息:

无存储偏移

当使用者组和主题组合没有以前存储的偏移量时,Kafka 使用者源将使用“自动偏移重置”属性来确定要读取的第一条消息。您可以将源设置为从最早的消息、最新消息或特定时间戳开始读取主题中的消息。默认设置是最早的消息,这将导致源读取主题中的所有现有消息。

以前存储的偏移量

当使用者组和主题组合具有先前存储的偏移量时,Kafka 使用者源将接收从存储的偏移量之后的下一个未处理消息开始的消息。例如,停止并重新启动管道时,处理将从上次提交的偏移量恢复。

其他卡夫卡属性

您可以将自定义卡夫卡配置属性添加到卡夫卡使用者。

添加 Kafka 配置属性时,请输入确切的属性名称和值。Kafka 使用者不会验证属性名称或值。

注意:卡夫卡使用者源使用以下卡夫卡配置属性。源忽略以下属性的用户定义值:
  • 自动提交启用
  • group.id
  • 动物园管理员.连接

记录标头属性

Kafka 使用者源创建记录标头属性,其中包含有关记录的原始文件的信息。当源处理 Avro 数据时,它将 Avro 架构包含在 avroSchema 记录标头属性中。

您可以使用记录:属性记录:属性或默认值函数来访问属性中的信息。有关使用记录标头属性的详细信息,请参阅使用标头属性

Kafka 使用者源创建以下记录标头属性:
  • avroSchema - 在处理 Avro 数据时,提供 Avro schema.
  • 卡夫卡时间戳 - 来自卡夫卡消息标头的时间戳。如果启用了“包括时间戳”属性,则创建。
  • 卡夫卡时间戳类型 - 来自卡夫卡消息标头的时间戳类型。如果启用了“包括时间戳”属性,则创建。
  • 偏移量 - 记录源自的偏移量。
  • 分区 - 记录源自的分区。
  • 主题 - 记录源自的主题。

启用安全性

您可以将卡夫卡消费者源配置为通过 SSL/TLS 和/或 Kerberos 进行安全连接。

启用 SSL/红绿灯系统

执行以下步骤,使卡夫卡消费者源能够使用 SSL/TLS 连接到卡夫卡。您可以使用相同的步骤来配置 Kafka 创建器。

  1. 要使用 SSL/TLS 进行连接,请首先确保按照卡夫卡文档中所述,将卡夫卡配置为使用 SSL/TLS。
  2. 在舞台的“常规”选项卡上,将“舞台库”属性设置为相应的“卡夫卡”版本。
  3. 在“卡夫卡”选项卡上,添加“夫卡”配置属性并将其设置为 SSL
  4. 然后添加并配置以下 SSL 卡夫卡属性:
    • 信任库位置
    • 信任库
    当 Kafka 代理需要客户端身份验证时 - 当 ssl.client.auth 代理属性设置为“必需”时 , 添加并配置以下属性:
    • 位置
    • 密码
    • .key密码
    某些代理可能还需要添加以下属性:
    • ssl.enabled.协议
    • 信任库类型
    • 密钥库类型

    有关这些属性的详细信息,请参阅 Kafka 文档。

例如,以下属性允许阶段使用 SSL/TLS 通过客户端身份验证连接到卡夫卡:

启用 Kerberos (SASL)

使用 Kerberos 身份验证时,数据收集器将使用 Kerberos 主体和密钥选项卡连接到 Kafka。

执行以下步骤,使卡夫卡消费者源能够使用 Kerberos 连接到卡夫卡:

  1. 要使用 Kerberos,请首先确保按照 Kafka 文档中的说明为 Kerberos 配置了 Kafka
  2. 确保为数据收集器启用了 Kerberos 身份验证,如 Kerberos 身份验证中所述。
  3. 根据您的安装和认证类型,添加 Kafka 客户机所需的 Java 认证和授权服务 (JAAS) 配置属性:
    • 在没有 LDAP 认证的情况下安装 RPM、压缩包或 Cloudera 管理器 - 如果数据收集器不使用 LDAP 认证,请在数据收集器计算机上创建一个单独的 JAAS 配置文件。将以下登录部分添加到文件中:KafkaClient
      <span style="color:#333333"><span style="background-color:#eeeeee"><code>KafkaClient {
          com.sun.security.auth.module.Krb5LoginModule required
          useKeyTab=true
          keyTab="<keytab path>"
          principal="<principal name>/<host name>@<realm>";
      };</code></span></span>
      例如:
      <span style="color:#333333"><span style="background-color:#eeeeee"><code>KafkaClient {
          com.sun.security.auth.module.Krb5LoginModule required
          useKeyTab=true
          keyTab="/etc/security/keytabs/sdc.keytab"
          principal="sdc/sdc-01.streamsets.net@EXAMPLE.COM";
      };</code></span></span>
      然后修改SDC_JAVA_OPTS环境变量,以包括以下定义 JAAS 配置文件路径的选项:
      <span style="color:#333333"><span style="background-color:#eeeeee"><code>-Djava.security.auth.login.config=<JAAS config path></code></span></span>

      使用安装类型所需的方法修改环境变量

    • 使用 LDAP 认证的 RPM 或压缩包安装 - 如果在 RPM 或压缩包安装中启用了 LDAP 认证,请将属性添加到数据收集器使用的 JAAS 配置文件 - 该文件。将以下登录部分添加到文件末尾:$SDC_CONF/ldap-login.confKafkaClientldap-login.conf
      <span style="color:#333333"><span style="background-color:#eeeeee"><code>KafkaClient {
          com.sun.security.auth.module.Krb5LoginModule required
          useKeyTab=true
          keyTab="<keytab path>"
          principal="<principal name>/<host name>@<realm>";
      };</code></span></span>
      例如:
      <span style="color:#333333"><span style="background-color:#eeeeee"><code>KafkaClient {
          com.sun.security.auth.module.Krb5LoginModule required
          useKeyTab=true
          keyTab="/etc/security/keytabs/sdc.keytab"
          principal="sdc/sdc-01.streamsets.net@EXAMPLE.COM";
      };</code></span></span>
    • 使用 LDAP 身份验证进行云汇管理器安装 - 如果在云印管理器安装中启用了 LDAP 身份验证,请在云端管理器中为流集服务启用 LDAP 配置文件替换(ldap.login.file.allow.替换)属性。

      如果启用了“使用安全阀编辑 LDAP 信息”属性,并且“数据收集器高级配置代码段(安全阀)”字段中配置了 LDAP 认证,那么将 JAAS 配置属性添加到同一个 ldap-login.conf 安全阀中。

      如果 LDAP 认证是通过 LDAP 属性而不是 ldap-login.conf 安全值配置的,请将 JAAS 配置属性添加到数据收集器高级配置代码段(安全阀)中,以用于生成的 ldap 登录名附加.conf 字段。

      将以下登录部分添加到相应的字段中,如下所示:KafkaClient

      <span style="color:#333333"><span style="background-color:#eeeeee"><code>KafkaClient {
          com.sun.security.auth.module.Krb5LoginModule required
          useKeyTab=true
          keyTab="_KEYTAB_PATH"
          principal="<principal name>/_HOST@<realm>";
      };</code></span></span>
      例如:
      <span style="color:#333333"><span style="background-color:#eeeeee"><code>KafkaClient {
          com.sun.security.auth.module.Krb5LoginModule required
          useKeyTab=true
          keyTab="_KEYTAB_PATH"
          principal="sdc/_HOST@EXAMPLE.COM";
      };</code></span></span>

      Cloudera 管理器会生成相应的密钥表路径和主机名。

  4. 在舞台的“常规”选项卡上,将“舞台库”属性设置为相应的“卡夫卡”版本。
  5. 在“卡夫卡”选项卡上,添加“安全协议”配置属性,并将其设置为SASL_PLAINTEXT
  6. 然后,添加 sasl.kerberos.service.name 配置属性ÿ
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JAVASoftEngineer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值