雪花卡夫卡连接器疑惑和疑问
Posted
技术标签:
【中文标题】雪花卡夫卡连接器疑惑和疑问【英文标题】:Snowflake Kafka connector doubts and questions 【发布时间】:2022-01-05 12:05:34 【问题描述】:我使用 3 个服务器集群进行 Kafka 配置,使用 Snowflake 连接器 REST API 将数据推送到 Snowflake 数据库:所有这些都是在 AWS 上运行的 3 个不同的虚拟机
1.这里,我们需要3个kafka单独的服务器zookeeper-services需要在集群中启动并运行,否则只有1个就足够了,好像需要在所有3个服务器zookeeper服务中执行,是否需要不同的端口配置,例如:
1.a:zookeeper.connect=xx.xx.xx.xxx:2181, xx.xx.xx.xxx:2182, xx.xx.xx.xxx:2183 否则应该在所有 servers.properties 文件中为 2181
1.b:PLAINTEXT://localhost:9091 in server1, PLAINTEXT://localhost:9092 and PLAINTEXT://localhost:9093 (即使在此它应该是 localhost else IP 地址) 需要给出吗?
1.c:server.1=
1.d:Clientport=2181 需要在所有 3 个 VM 中的服务中相同,否则它需要不同?
1.e:每个服务器上的 listeners = PLAINTEXT://your.host.name:9092 是否应该有单独的 port 之类的 VM-Server1:9092、VM-Server2:9093、VM-Server3:9094。否则,主服务器 IP 应在服务器 2 和服务器 3 的工作节点中给出,否则该工作节点自己的服务器 IP
关于配置项 "tasks.max":"1" 的 REST-API 的连接器配置应该是什么。因为我要为 Kafka 使用 3 个服务器集群,并且将在所有 3 台机器上启动 3 个 distribute-connector
我得到重复,如果我在第二台服务器中启动分布式连接器的服务,如何避免这些重复记录。但是是的,如果它只有 1 个分布式连接器正在运行服务,那么就没有重复。请提出建议,因为如果只有 1 个分布式连接器服务启动并运行,则延迟会增加。
创建 /data/zookeeper/myid 文件,并为 zookeeper1 赋值 1,为 zookeeper2 赋值 2,为 zookeeper3 赋值 3。当您在不同的 VM 中时是否需要这样做?
分布式连接器服务一旦开始执行一段时间,然后就会断开连接
需要遵循的 3 服务器集群架构和最佳实践的任何其他参数
【问题讨论】:
【参考方案1】:Kafka 和 Zookeeper
您只需要一个 Kafka 代理和 Zookeeper 服务器,尽管拥有更多可以提供容错。您无需在 Zookeeper 中手动创建任何内容,例如 myid
文件。
端口不需要相同,但如果是,显然更容易绘制网络图并自动配置。
关于 Kafka 监听器,请阅读 this post。对于 Zookeeper,如果您想创建集群,请按照其文档进行操作。
或者使用 Amazon MSK / Confluent Cloud 等代替 EC2,这一切都为您完成。
卡夫卡连接
tasks.max
可以任意多,但是如果您有 source 连接器,那么多个线程可能会导致重复,是的。
【讨论】:
你的意思是说在虚拟机中,端口需要不同吧?对于每个单独的 vm-server。 我们如何限制重复,即使在单个服务器以及集群环境中也是如此。请指导。因为即使在单节点和双节点集群中我也会得到重复。由于数据消耗的分区是5。所以这5个分区被用来抽数据。如果像你上面说的,如果我们只取tasks.max=1,那么如何实现并行性和吞吐量性能。请帮忙 每台唯一机器的端口可以相同。使它们不同的唯一原因是,如果您在同一台机器上运行多个 Kafka 进程或 Zookepeer 服务器。我从来没有使用过这个连接器,所以我没有关于重复的建议,但是如果只有一个任务,那么只有一个进程从 Snowflake 中提取数据并写入 Kafka。如果连接器中有跟踪“进度”的内容(通过主键、时间戳或数据库中的其他属性),则不应有重复项。 对于未来的问题,我建议你在他们的论坛上提出一个问题,或者在这里提出问题github.com/snowflakedb/snowflake-kafka-connector/issues以上是关于雪花卡夫卡连接器疑惑和疑问的主要内容,如果未能解决你的问题,请参考以下文章
卡夫卡连接错误:java.lang.NoClassDefFoundError:org/apache/http/conn/HttpClientConnectionManager