分布式 Kafka Connect 应该部署在 Azure Kafka 的哪些节点上以实现 HD Insight?

Ser*_*cio 5 azure apache-kafka apache-kafka-connect

我们在本地运行大量连接器,需要转到 Azure。这些本地计算机在 4 个节点上运行 Kafka Connect API。我们部署此 API 在所有这些机器上执行此操作:

导出 CLASSPATH=/path/to/connectors-jars

/usr/hdp/current/kafka-broker/bin/connect-distributed.shdistributed.properties

我们在 Azure Kafka 上部署了 Kafka 以实现 HD Insight。我们需要至少 2 个节点运行分布式 Connect API,但我们不知道将它们部署在哪里:

  • 在头节点上(我们仍然不知道它们的用途)
  • 在工作节点上(kafka 经纪人所在的位置)
  • 在边缘节点上

我们还有 Azure AKS 运行容器。我们应该在 AKS 上部署分布式 Connect API 吗?

cri*_*007 1

卡夫卡经纪人居住的地方

理想情况下,不会。对大量记录进行批处理时,Connect 会使用大量内存。该内存最好留给代理的页面缓存。

在边缘节点上

可能不会。这是用户与集群交互的地方。您不希望他们刺探您的配置或以其他方式意外地搞乱流程。例如,我们有人填满了边缘节点的本地磁盘,因为他们正在将大量数据复制进出“边缘”。

在头节点上

或许?但话又说回来,这些仅用于集群管理服务,并且可能内存很少。


更好的解决方案 - 在 Azure 中的 HD Insights 之外运行仅运行 Kafka Connect 的专用实例。也许将它们作为 Kubernetes 中的容器运行,因为它们是完全无状态的服务,只需要访问您的源。接收器和用于传输数据的 Kafka 代理。这样,它们就可以独立于 Hortonworks 和 HDInsights 提供的功能进行升级和配置。