O que é Apache Kafka em Azure HDInsightWhat is Apache Kafka in Azure HDInsight

O Apache Kafka é uma plataforma de transmissão em fluxo distribuída de código aberto que pode ser utilizada para criar aplicações e pipelines de dados de transmissão em fluxo em tempo real.Apache Kafka is an open-source distributed streaming platform that can be used to build real-time streaming data pipelines and applications. O Kafka também fornece a funcionalidade de mediador de mensagem semelhante a uma fila de mensagens, onde pode publicar e subscrever fluxos de dados nomeados.Kafka also provides message broker functionality similar to a message queue, where you can publish and subscribe to named data streams.

Seguem-se as características específicas do Kafka no HDInsight:The following are specific characteristics of Kafka on HDInsight:

  • É um serviço gerido que fornece um processo de configuração simplificado.It's a managed service that provides a simplified configuration process. O resultado é uma configuração que é testada e suportada pela Microsoft.The result is a configuration that is tested and supported by Microsoft.

  • A Microsoft fornece um Contrato de Nível de Serviço (SLA) de 99,9% de tempo de atividade do Kafka.Microsoft provides a 99.9% Service Level Agreement (SLA) on Kafka uptime. Para obter mais informações, veja o documento Informações do SLA para o HDInsight.For more information, see the SLA information for HDInsight document.

  • Utiliza os Managed Disks do Azure como arquivo de cópias de segurança do Kafka.It uses Azure Managed Disks as the backing store for Kafka. Os Managed Disks podem fornecer até 16 TB de armazenamento por mediador Kafka.Managed Disks can provide up to 16 TB of storage per Kafka broker. Para obter informações sobre a configuração de discos geridos com Kafka no HDInsight, consulte Aumentar a escalabilidade de Apache Kafka no HDInsight.For information on configuring managed disks with Kafka on HDInsight, see Increase scalability of Apache Kafka on HDInsight.

    Para obter mais informações sobre os discos geridos, consulte Azure Managed Disks.For more information on managed disks, see Azure Managed Disks.

  • O Kafka foi concebido com uma única vista dimensional de um bastidor.Kafka was designed with a single dimensional view of a rack. O Azure separa um bastidor em duas dimensões: Domínios de Atualização (UD) e Domínios de Falha (FD).Azure separates a rack into two dimensions - Update Domains (UD) and Fault Domains (FD). A Microsoft oferece ferramentas que reequilibram as réplicas e partições do Kafka em UDs e FDs.Microsoft provides tools that rebalance Kafka partitions and replicas across UDs and FDs.

    Para mais informações, consulte A elevada disponibilidade com Apache Kafka no HDInsight.For more information, see High availability with Apache Kafka on HDInsight.

  • O HDInsight permite-lhe alterar o número de nós de trabalho (que alojam o mediador Kafka) após a criação do cluster.HDInsight allows you to change the number of worker nodes (which host the Kafka-broker) after cluster creation. O escalonamento pode ser executado a partir do portal do Azure, do Azure PowerShell e de outras interfaces de gestão do Azure.Scaling can be performed from the Azure portal, Azure PowerShell, and other Azure management interfaces. Para o Kafka, deve reequilibrar as réplicas de partições após as operações de dimensionamento.For Kafka, you should rebalance partition replicas after scaling operations. Reequilibrar partições permite ao Kafka tirar partido do novo número de nós de trabalho.Rebalancing partitions allows Kafka to take advantage of the new number of worker nodes.

    Para mais informações, consulte A elevada disponibilidade com Apache Kafka no HDInsight.For more information, see High availability with Apache Kafka on HDInsight.

  • Os registos do Monitor Azure podem ser utilizados para monitorizar o Kafka no HDInsight.Azure Monitor logs can be used to monitor Kafka on HDInsight. O Azure Monitor regista informações de nível de máquina virtual, tais como métricas de disco e NIC, e métricas JMX de Kafka.Azure Monitor logs surfaces virtual machine level information, such as disk and NIC metrics, and JMX metrics from Kafka.

    Para mais informações, consulte os registos do Apache Kafka no HDInsight.For more information, see Analyze logs for Apache Kafka on HDInsight.

Apache Kafka na arquitetura HDInsightApache Kafka on HDInsight architecture

O diagrama seguinte mostra uma configuração do Kafka comum que utiliza grupos de consumidores, particionamento e replicação para oferecer leitura paralela de eventos com tolerância a falhas:The following diagram shows a typical Kafka configuration that uses consumer groups, partitioning, and replication to offer parallel reading of events with fault tolerance:

Diagrama de configuração do cluster do Kafka

O Apache ZooKeeper gere o estado do cluster do Kafka.Apache ZooKeeper manages the state of the Kafka cluster. O Zookeeper foi concebido para transações em simultâneo, resilientes e de baixa latência.Zookeeper is built for concurrent, resilient, and low-latency transactions.

O Kafka armazena os registos (dados) em tópicos.Kafka stores records (data) in topics. Os registos são produzidos por produtores e consumidos por consumidores.Records are produced by producers, and consumed by consumers. Os produtores enviam os registos para mediadores Kafka.Producers send records to Kafka brokers. Cada nó de trabalho no cluster HDInsight é um mediador Kafka.Each worker node in your HDInsight cluster is a Kafka broker.

Registos de partição de tópicos em mediadores.Topics partition records across brokers. Quando consumir registos, pode utilizar até um consumidor por partição para alcançar o processamento paralelo dos dados.When consuming records, you can use up to one consumer per partition to achieve parallel processing of the data.

A replicação é utilizada para duplicar as partições nos nós, ao proteger contra interrupções do nó (mediador).Replication is employed to duplicate partitions across nodes, protecting against node (broker) outages. A partição assinalada com (L) no diagrama é a partição líder dessa partição específica.A partition denoted with an (L) in the diagram is the leader for the given partition. O tráfico do produtor é encaminhado para o líder de cada nó mediante a utilização do estado gerido pelo ZooKeeper.Producer traffic is routed to the leader of each node, using the state managed by ZooKeeper.

Porquê usar o Apache Kafka no HDInsight?Why use Apache Kafka on HDInsight?

Seguem-se as tarefas comuns e os padrões que podem ser efetuados com o Kafka no HDInsight:The following are common tasks and patterns that can be performed using Kafka on HDInsight:

UtilizarUse DescriçãoDescription
Replicação de dados apache kafkaReplication of Apache Kafka data Kafka fornece o utilitário MirrorMaker, que replica dados entre os clusters kafka.Kafka provides the MirrorMaker utility, which replicates data between Kafka clusters. Para obter informações sobre a utilização do MirrorMaker, consulte tópicos Replicate Apache Kafka com Apache Kafka no HDInsight.For information on using MirrorMaker, see Replicate Apache Kafka topics with Apache Kafka on HDInsight.
Padrão de mensagens de subscrição de publicaçãoPublish-subscribe messaging pattern Kafka fornece um Produtor API para publicar registos a um tópico kafka.Kafka provides a Producer API for publishing records to a Kafka topic. A API de Consumidor é utilizada ao subscrever um tópico.The Consumer API is used when subscribing to a topic. Para mais informações, consulte Start with Apache Kafka no HDInsight.For more information, see Start with Apache Kafka on HDInsight.
Processamento de fluxosStream processing Kafka é frequentemente usado com Apache Storm ou Spark para processamento de fluxo em tempo real.Kafka is often used with Apache Storm or Spark for real-time stream processing. O Kafka 0.10.0.0 (versão 3.5 e 3.6 do HDInsight) introduziu uma API de transmissão em fluxo que lhe permite criar soluções de transmissão em fluxo, sem precisar do Storm ou do Spark.Kafka 0.10.0.0 (HDInsight version 3.5 and 3.6) introduced a streaming API that allows you to build streaming solutions without requiring Storm or Spark. Para mais informações, consulte Start with Apache Kafka no HDInsight.For more information, see Start with Apache Kafka on HDInsight.
Dimensionamento horizontalHorizontal scale As divisórias kafka fluem através dos nós do cluster HDInsight.Kafka partitions streams across the nodes in the HDInsight cluster. Os processos de consumidor podem estar associados a partições individuais para fornecer balanceamento de carga ao consumir registos.Consumer processes can be associated with individual partitions to provide load balancing when consuming records. Para mais informações, consulte Start with Apache Kafka no HDInsight.For more information, see Start with Apache Kafka on HDInsight.
Entrega em encomendaIn-order delivery Dentro de cada divisória, os registos são armazenados no fluxo na ordem em que foram recebidos.Within each partition, records are stored in the stream in the order that they were received. Ao associar um processo de consumidor por partição, pode garantir que os registos são processados por ordem.By associating one consumer process per partition, you can guarantee that records are processed in-order. Para mais informações, consulte Start with Apache Kafka no HDInsight.For more information, see Start with Apache Kafka on HDInsight.
MensagensMessaging Uma vez que suporta o padrão de mensagens de subscrição de publicação, Kafka é frequentemente usado como corretor de mensagens.Since it supports the publish-subscribe message pattern, Kafka is often used as a message broker.
Rastreio de atividadesActivity tracking Uma vez que Kafka fornece registos em ordem, pode ser usado para rastrear e recriar atividades.Since Kafka provides in-order logging of records, it can be used to track and re-create activities. Por exemplo, ações do utilizador num site ou numa aplicação.For example, user actions on a web site or within an application.
AgregaçãoAggregation Utilizando o processamento de fluxo, pode agregar informações de diferentes streams para combinar e centralizar a informação em dados operacionais.Using stream processing, you can aggregate information from different streams to combine and centralize the information into operational data.
TransformaçãoTransformation Utilizando o processamento de fluxo, pode combinar e enriquecer dados de vários tópicos de entrada em um ou mais tópicos de saída.Using stream processing, you can combine and enrich data from multiple input topics into one or more output topics.

Passos seguintesNext steps

Utilize as seguintes ligações para saber como utilizar o Apache Kafka no HDInsight:Use the following links to learn how to use Apache Kafka on HDInsight: