apache-kafka - 如何在 YARN 中运行 Kafka 连接 worker ?

标签 apache-kafka hadoop-yarn apache-kafka-connect

我在玩Kafka-Connect .我有 HDFS connectorstand-alone mode 工作和 distributed mode .

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

我该如何获得 YARN执行 worker ?如果没有具体的方法,是否有关于如何让应用程序在 YARN 内运行的通用方法? ?

我用过YARN使用 SPARK 使用 spark-submit但是,我无法弄清楚如何让连接器在 YARN 中运行.

最佳答案

理论上你可以在 YARN 上运行任何东西,甚至是一个简单的 hello world 程序。这就是为什么说 Kafka-Connect 在 YARN 上运行在技术上是正确的。需要注意的是,让 Kafka-Connect 在 YARN 上运行目前需要大量的肘部油脂。有两种方法可以做到:

  • 直接与 YARN API 对话以获取容器、部署 Kafka-Connect 二进制文件并启动 Kafka-Connect。
  • 使用单独的 Slider 项目 https://slider.incubator.apache.org/docs/getting_started.html Stephane 在评论中已经提到过。

  • slider

    您必须阅读大量文档才能使其正常工作,但 Slider 背后的想法是,您可以让任何程序在 YARN 上运行,而无需处理 YARN API 并通过执行以下操作编写 YARN 应用程序主控:
  • 从您的程序中创建一个 slider 包
  • 为您的包定义配置
  • 使用 slider cli 将应用程序部署到 YARN

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

    备择方案

    顺便说一句,让 Kafka-Connect 部署在 Kubernetes 或 Mesos/Marathon 上可能会更容易。这样做的基本工作流程是:
  • 创建一个 Kafka-Connect docker 容器或只使用 confluent 的 docker container
  • 为 Kubernetes 或 Marathon 创建部署配置
  • 单击按钮/运行命令

  • 教程
  • 一个很好的 Mesos/Marathon 教程可以找到 here
  • Kubernetes 教程 here
  • Confluent Kubernetes Helm 图表 here
  • 关于apache-kafka - 如何在 YARN 中运行 Kafka 连接 worker ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34861593/

    相关文章:

    apache-kafka - PySpark 结构化流 + Kafka 错误(由 : java. lang.ClassNotFoundException : org. apache.spark.sql.sources.v2.StreamWriteSupport 引起)

    apache-spark - 如何处理 yarn 客户端中运行时间过长的任务(与其他工作相比)?

    java - Kafka connect 是否为 Cassandra 提供 java 驱动程序

    apache-kafka - Kafka中broker.id的重要性?

    Python Kafka消费者读取已读消息

    apache-kafka - 卡夫卡 : Delete idle consumer group id

    hadoop - 如何从不同主机外部访问在docker容器(覆盖)中运行的服务

    api - 纱 API : Getting Yarn Aggregated Logs for application by API

    apache-kafka - 更改 Debezium 连接器使用的主题名称

    apache-kafka - Docker环境启动分布式Kafka connect后创建Kafka connector