Exemplo de streaming do Apache Spark (DStream) com o Apache Kafka no HDInsight

Saiba como usar o Apache Spark para transmitir dados para dentro ou fora do Apache Kafka no HDInsight usando DStreams. Este exemplo usa uma Jupyter Notebook que é executado no cluster Spark.

Observação

As etapas neste documento criam um grupo de recursos do Azure que contém um Spark no HDInsight e um Kafka no cluster de HDInsight. Esses clusters são ambos localizados em uma Rede Virtual do Azure, que permite que o cluster Spark se comunique diretamente com o cluster Kafka.

Quando você terminar as etapas neste documento, lembre-se de excluir os clusters para evitar cobranças em excesso.

Importante

Este exemplo usa DStreams, que é uma tecnologia de streaming do Spark mais antiga. Para obter um exemplo que utiliza recursos de streaming do Spark mais recentes, consulte o documento Streaming estruturado do Spark com Apache Kafka.

Criar os clusters

O Apache Kafka no HDInsight não fornece acesso para agentes de Kafka pela Internet pública. Qualquer coisa que se comunique com Kafka deve estar na mesma rede virtual do Azure que os nós no cluster Kafka. Para este exemplo, clusters de Spark e Kafka estão localizados em uma rede virtual do Azure. O diagrama a seguir mostra como a comunicação flui entre os clusters:

Diagram of Spark and Kafka clusters in an Azure virtual network.

Observação

Embora Kafka em si esteja limitado a comunicação na rede virtual, outros serviços do cluster, como o SSH e Ambari podem ser acessados pela Internet. Para obter mais informações sobre as portas públicas disponíveis com o HDInsight, consulte portas e URIs usados pelo HDInsight.

Enquanto você pode criar uma rede virtual do Azure, Kafka e clusters de Spark manualmente, é mais fácil usar um modelo do Azure Resource Manager. Use as seguintes etapas para implantar uma rede virtual do Azure, Kafka e clusters de Spark para sua assinatura do Azure.

  1. Use o botão a seguir para entrar no Azure e abra o modelo do Gerenciador de Recursos no portal do Azure.

    Deploy to Azure button for new cluster

    Aviso

    Para garantir a disponibilidade do Kafka no HDInsight, o cluster deve conter pelo menos quatro nós de trabalho. Este modelo cria um cluster do Kafka com quatro nós de trabalho.

    Este modelo cria um cluster do HDInsight 4.0 para Kafka e Spark.

  2. Use as seguintes informações para preencher as entradas na seção Implantação personalizada:

    Propriedade Valor
    Resource group Crie um grupo ou selecione um existente.
    Local Escolha um local geograficamente perto de você.
    Nome do Cluster de Base Esse valor é usado como o nome de base dos clusters Spark e Kafka. Por exemplo, a inserção de hdistreaming cria um cluster Spark chamado spark-hdistreaming e um cluster Kafka chamado kafka-hdistreaming.
    Nome de usuário de logon do cluster O nome do usuário administrador dos clusters Spark e Kafka.
    Senha de logon do cluster A senha do usuário administrador dos clusters Spark e Kafka.
    Nome de usuário do SSH O usuário SSH para criar para os clusters Spark e Kafka.
    Senha SSH A senha para o usuário SSH dos clusters Kafka e Spark.

    HDInsight custom deployment parameters.

  3. Leia Termos e Condições, e depois selecione Concordo com os termos e condições declarados acima.

  4. Por fim, selecione Comprar. Demora cerca de 20 minutos para criar os clusters.

Depois que os recursos tiverem sido criados, uma página de resumo será exibida.

Resource group summary for the vnet and clusters.

Importante

Observe que os nomes dos clusters HDInsight são spark-BASENAME e kafka-BASENAME, em que BASENAME é o nome fornecido para o modelo. Você usa esses nomes em etapas posteriores ao se conectar aos clusters.

Usar os blocos de anotações

O código do exemplo descrito neste documento está disponível em https://github.com/Azure-Samples/hdinsight-spark-scala-kafka.

Excluir o cluster

Aviso

A cobrança de clusters HDInsight é proporcional por minuto, independentemente de você utilizá-los ou não. Certifique-se de excluir o cluster após utilizá-lo. Consulte como excluir um cluster HDInsight.

Como as etapas neste documento criam ambos os clusters no mesmo grupo de recursos do Azure, você pode excluir o grupo de recursos no portal do Azure. Excluir o grupo remove todos os recursos criados por este documento, a rede Virtual do Azure e a conta de armazenamento usada pelos clusters.

Próximas etapas

Neste exemplo, você aprendeu a usar o Spark para ler e gravar em Kafka. Use os links a seguir para descobrir outras maneiras de trabalhar com Kafka: