Kafka Connect分布在哪个节点上应用于Azure Kafka for HD Insight?

我们在内部运行了很多连接器,我们需要转到Azure.这些内部部署机器在4个节点上运行Kafka Connect API.我们在所有这些机器上部署此API执行此操作:

export CLASSPATH=/path/to/connectors-jars

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

我们在Azure Kafka上部署了Kafka用于HD Insight.我们需要至少2个运行分布式Connect API的节点,我们不知道在哪里部署它们:

>在头节点上(我们仍然不知道它们的用途)
>在工作节点上(kafka经纪人居住的地方)
>在边缘节点上

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

最佳答案

where kafka brokers live

理想情况下,没有.批处理大量记录时,Connect会占用大量内存.该内存最好留给代理的页面缓存.

On edge nodes

可能不是.这是用户与群集交互的地方.你不希望他们戳你的配置或意外地以其他方式搞乱这些过程.例如,我们有人填充边缘节点本地磁盘,因为他们正在将大量数据复制到“边缘”内外.

On head nodes

也许?但话说回来,那些只是集群管理服务,可能没有什么内存.

更好的解决方案 – 在Azure中仅运行Kafka Connect的HD Insights之外运行专用实例.也许在Kubernetes中将它们作为容器运行,因为它们是完全无状态的服务,只需要访问您的源.接收器和Kafka经纪人用于传输数据.这样,它们可以与Hortonworks和HDInsights提供的内容分开升级和配置.

点赞