卡夫卡消费者
支持的管道类型:
|
配置 Kafka 使用者时,可以配置使用者组名称、主题和 ZooKeeper 连接信息。
您可以将 Kafka 使用者配置为使用融合架构注册表。融合模式注册表是 Avro 模式的分布式存储层,它使用 Kafka 作为其底层存储机制。
您可以根据需要添加其他 Kafka 配置属性。您还可以将源配置为使用 Kafka 安全功能。
Kafka 使用者包括记录标头属性,使您能够在管道处理中使用有关记录的信息。
胶印管理
使用者组标识的 Kafka 使用者源首次收到来自主题的消息时,将为该使用者组和主题创建偏移条目。偏移条目是在动物园守护者或卡夫卡中创建的,具体取决于您的卡夫卡版本和代理配置。
无存储偏移
当使用者组和主题组合没有以前存储的偏移量时,Kafka 使用者源将使用“自动偏移重置”属性来确定要读取的第一条消息。您可以将源设置为从最早的消息、最新消息或特定时间戳开始读取主题中的消息。默认设置是最早的消息,这将导致源读取主题中的所有现有消息。
以前存储的偏移量
当使用者组和主题组合具有先前存储的偏移量时,Kafka 使用者源将接收从存储的偏移量之后的下一个未处理消息开始的消息。例如,停止并重新启动管道时,处理将从上次提交的偏移量恢复。
其他卡夫卡属性
您可以将自定义卡夫卡配置属性添加到卡夫卡使用者。
添加 Kafka 配置属性时,请输入确切的属性名称和值。Kafka 使用者不会验证属性名称或值。
- 自动提交启用
- group.id
- 动物园管理员.连接
记录标头属性
Kafka 使用者源创建记录标头属性,其中包含有关记录的原始文件的信息。当源处理 Avro 数据时,它将 Avro 架构包含在 avroSchema 记录标头属性中。
您可以使用记录:属性
或记录:属性或默认值
函数来访问属性中的信息。有关使用记录标头属性的详细信息,请参阅使用标头属性。
- avroSchema - 在处理 Avro 数据时,提供 Avro schema.
- 卡夫卡时间戳 - 来自卡夫卡消息标头的时间戳。如果启用了“包括时间戳”属性,则创建。
- 卡夫卡时间戳类型 - 来自卡夫卡消息标头的时间戳类型。如果启用了“包括时间戳”属性,则创建。
- 偏移量 - 记录源自的偏移量。
- 分区 - 记录源自的分区。
- 主题 - 记录源自的主题。
启用安全性
您可以将卡夫卡消费者源配置为通过 SSL/TLS 和/或 Kerberos 进行安全连接。
启用 SSL/红绿灯系统
执行以下步骤,使卡夫卡消费者源能够使用 SSL/TLS 连接到卡夫卡。您可以使用相同的步骤来配置 Kafka 创建器。
- 要使用 SSL/TLS 进行连接,请首先确保按照卡夫卡文档中所述,将卡夫卡配置为使用 SSL/TLS。
- 在舞台的“常规”选项卡上,将“舞台库”属性设置为相应的“卡夫卡”版本。
- 在“卡夫卡”选项卡上,添加“卡夫卡”配置属性并将其设置为 SSL。
- 然后添加并配置以下 SSL 卡夫卡属性:
- 信任库位置
- 信任库
当 Kafka 代理需要客户端身份验证时 - 当 ssl.client.auth 代理属性设置为“必需”时 , 添加并配置以下属性:- 位置
- 密码
- .key密码
某些代理可能还需要添加以下属性:- ssl.enabled.协议
- 信任库类型
- 密钥库类型
有关这些属性的详细信息,请参阅 Kafka 文档。
例如,以下属性允许阶段使用 SSL/TLS 通过客户端身份验证连接到卡夫卡:

启用 Kerberos (SASL)
使用 Kerberos 身份验证时,数据收集器将使用 Kerberos 主体和密钥选项卡连接到 Kafka。
执行以下步骤,使卡夫卡消费者源能够使用 Kerberos 连接到卡夫卡:
- 要使用 Kerberos,请首先确保按照 Kafka 文档中的说明为 Kerberos 配置了 Kafka。
- 确保为数据收集器启用了 Kerberos 身份验证,如 Kerberos 身份验证中所述。
- 根据您的安装和认证类型,添加 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.conf
KafkaClient
ldap-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 管理器会生成相应的密钥表路径和主机名。
- 在没有 LDAP 认证的情况下安装 RPM、压缩包或 Cloudera 管理器 - 如果数据收集器不使用 LDAP 认证,请在数据收集器计算机上创建一个单独的 JAAS 配置文件。将以下登录部分添加到文件中:
- 在舞台的“常规”选项卡上,将“舞台库”属性设置为相应的“卡夫卡”版本。
- 在“卡夫卡”选项卡上,添加“安全协议”配置属性,并将其设置为SASL_PLAINTEXT。
- 然后,添加 sasl.kerberos.service.name 配置属