如何在YARN中运行Kafka连接工作程序?

时间:2016-01-18 18:27:47

标签: apache-kafka yarn apache-kafka-connect

我正在玩Kafka-Connect。我在stand-alone modedistributed mode中都HDFS connector工作了。

他们advertise工作人员(负责运行连接器)可以通过YARN进行管理但是,我还没有看到任何描述如何实现这一目标的文档。

如何让YARN执行工作人员?如果没有具体的方法,是否有关于如何让应用程序在YARN内运行的通用方法?

我已使用YARNspark-submit与SPARK结合使用,但我无法弄清楚如何让连接器在YARN中运行。

1 个答案:

答案 0 :(得分:7)

理论上你可以在YARN上运行任何东西,甚至是一个简单的hello world程序。这就是说Kafka-Connect在YARN上运行的原因在技术上是正确的。需要注意的是,让Kafka-Connect在YARN上运行将会使用相当数量的肘部油脂。有两种方法可以做到:

  1. 直接与YARN API联系以获取容器,部署Kafka-Connect二进制文件并启动Kafka-Connect。
  2. 使用Stephane已在评论中提到的单独的Slider项目https://slider.incubator.apache.org/docs/getting_started.html
  3. 滑块

    您必须阅读相当多的文档才能使其正常工作,但Slider背后的想法是,您可以在YARN上运行任何程序而无需处理YARN API并通过执行编写YARN app master以下内容:

    • 从程序中创建滑块包
    • 为您的包定义配置
    • 使用滑块cli将您的应用程序部署到YARN

    Slider为您处理容器部署和故障容器的恢复,这很好。当YARN 3.0发布时,Slider也正在成为YARN的原生部分。

    替代

    另外作为旁注,让Kafka-Connect在Kubernetes或Mesos / Marathon上部署可能会更容易。这样做的基本工作流程是:

    • 创建Kafka-Connect泊坞窗容器或只使用汇合docker container
    • 为Kubernetes或Marathon
    • 创建部署配置
    • 单击按钮/运行命令

    教程

    • 可以找到一个好的Mesos / Marathon教程here
    • Kubernetes教程here
    • Confluent Kubernetes Helm Charts here