我们在本地运行很多连接器,我们需要转到azure。这些本地计算机在4个节点上运行kafka connect api。我们在所有这些机器上部署此api执行此操作:
export classpath=/path/to/jars连接器
/usr/hdp/current/kafka broker/bin/connect-distributed.sh distributed.properties文件
我们在azure kafka上部署了kafka,用于hd insight。我们需要至少2个运行分布式连接api的节点,但我们不知道在何处部署它们:
在头部节点上(我们仍然不知道它们的用途)
在worker节点上(kafka代理所在的位置)
在边节点上
我们还有运行容器的azure aks。我们应该在aks上部署分布式连接api吗?
1条答案
按热度按时间ru9i0ody1#
Kafka经纪人住哪里
理想情况下,不会。批量处理大量记录时,connect会占用大量内存。该内存最好留给代理的页缓存。
在边节点上
可能不会。这就是用户与集群交互的地方。你不会希望他们戳你的配置或不小心弄乱了其他方式的进程。例如,我们让某人填充边缘节点本地磁盘,因为他们在“边缘”中复制大量数据。
头部节点上
也许 吧?但话说回来,它们只用于集群管理服务,可能内存很少。
更好的解决方案-在azure的hd insights之外运行仅运行kafka connect的专用示例。也许在kubernetes中将它们作为容器运行,因为它们是完全无状态的服务,只需要访问您的源代码。接收器和Kafka代理传输数据。通过这种方式,它们可以与hortonworks和hdinsights提供的功能分开升级和配置。