Apache Kafka on HDInsight(预览版)简介

Apache Kafka 是开源分布式流式处理平台,可用于构建实时流数据管道和应用程序。 Kafka 还提供类似于消息队列的消息中转站功能,可在其中向命名的数据流发布和订阅信息。 Kafka on HDInsight 在 Azure 云中提供托管的、高度可缩放且高度可用的服务。

为何使用 Kafka on HDInsight?

Kafka 提供以下功能:

  • 发布-订阅消息模式:Kafka 提供生成者 API 用于向 Kafka 主题发布记录。 订阅某个主题时,会用到使用者 API。

  • 流处理:Kafka 通常与 Apache Storm 或 Spark 配合使用,以实现实时流式处理。 Kafka 0.10.0.0(HDInsight 版本 3.5)中引入了流式处理 API,可用于构建流式处理解决方案,而无需使用 Storm 或 Spark。

  • 水平规模:Kafka 分区可对 HDInsight 群集中节点进行流式处理。 使用者进程可与单个分区相关联,在使用记录时提供负载均衡。

  • 有序传送:在每个分区内,记录按接收顺序存储在流中。 通过在使用者进程与分区之间建立一对一的关联,可以保证记录按顺序处理。

  • 容错:可以在节点之间复制分区以提供容错能力。

  • 与 Azure 托管磁盘集成:托管磁盘为 HDInsight 群集中虚拟机使用的磁盘提供更高的规模和吞吐量。

    默认情况下,已为 Kafka on HDInsight 启用托管磁盘。 可以在 HDInsight 创建过程中配置每个节点使用的磁盘数。 有关托管磁盘的详细信息,请参阅 Azure 托管磁盘

    有关为 Kafka on HDInsight 配置托管磁盘的信息,请参阅提高 Kafka on HDInsight 的可伸缩性

用例

  • 消息传送:由于支持发布-订阅消息模式,Kafka 通常用作消息中转站。

  • 活动跟踪:由于 Kafka 提供有序的日志记录,因此可用于跟踪和重建活动, 例如,网站上或应用程序内的用户操作。

  • 聚合:使用流处理可以从不同的流聚合信息,并将信息组合并集中化为操作数据。

  • 转换:使用流处理可将多个输入主题的数据组合并扩充为一个或多个输出主题。

体系结构

Kafka 群集配置

下图显示了一个典型 Kafka 配置,该配置利用使用者组、分区和复制提供带容错功能的事件并行读取。 Apache ZooKeeper 专为并发、能恢复和低延迟的事务构建,因为它管理 Kafka 群集的状态。 Kafka 将记录存储在主题中。 记录由生成者生成,由使用者使用。 生成者从 Kafka 中转站检索记录。 HDInsight 群集中的每个辅助角色节点都是一个 Kafka 中转站。 将为每个使用者创建一个分区,从而允许对流数据进行并行处理。 利用复制功能将分区分布到各个节点上,以防止发生节点(中转站)服务中断。 用 (L) 表示的分区是给定分区的前导者。 生成方流量将根据由 ZooKeeper 管理的状态路由到每个节点的前导者。

Important

Kafka 无法识别 Azure 数据中心内的基础硬件(机架)。 若要确保基础硬件上的所有分区都正确地进行平衡,请参阅配置数据的高可用性 (Kafka)

后续步骤

单击以下链接了解如何使用 Apache Kafka on HDInsight: