Partager via


Comment connecter un cluster Kafka à une machine virtuelle dans un réseau virtuel différent

Ce document répertorie les étapes à suivre pour configurer la connectivité entre la machine virtuelle et HDI Kafka résidant dans deux réseaux virtuels différents.

  1. Créez deux réseaux virtuels différents où le cluster Kafka HDInsight et la machine virtuelle seront hébergés respectivement. Pour plus d’informations, consultez Créer un réseau virtuel à l’aide du portail Azure

    Notes

    Ces deux réseaux virtuels doivent être appairés, de sorte que les adresses IP de leurs sous-réseaux ne doivent pas se chevaucher. Si vous souhaitez en savoir plus, veuillez consulter la rubrique Connecter des réseaux virtuels à l’aide de l’appairage de réseaux virtuels en utilisant le Portail Azure

  2. Assurez-vous que l’état du peering s’affiche comme étant connecté.

    Capture d’écran montrant le peering d’événements Kafka.

  3. Une fois les étapes ci-dessus terminées, nous pouvons créer un cluster HDInsight Kafka dans un seul réseau virtuel. Pour plus d’informations, consultez Créer un cluster Apache Kafka

  4. Créez une machine virtuelle dans le deuxième réseau virtuel. Lors de la création de la machine virtuelle, spécifiez le deuxième nom de réseau virtuel où cette machine virtuelle doit être déployée. Pour plus d’informations, consultez Créer une machine virtuelle Linux dans le portail Azure

  5. Après cette étape, nous pouvons copier les entrées du fichier /etc/host du nœud principal Kafka vers la machine virtuelle.

    Capture d’écran montrant la sortie de fichier hôte.

  6. Supprimez les entrées de chaîne headnodehost du fichier. Par exemple, l’image ci-dessus contient une entrée headnodehost pour l’IP 10.0.0.16.

  7. Une fois ces entrées effectuées, essayez d’atteindre le tableau de bord Kafka Ambari à l’aide de la commande curl à l’aide du nom de domaine complet hn0 ou hn1 en tant que

    De la machine virtuelle Linux

    curl hn0-vnetka.glarbkztnoqubmzjylls33qnse.bx.internal.cloudapp.net:8080 
    

    Sortie :

    “<!-- 
    * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file  distributed with this work for   additional information regarding copyright ownership.  The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.  You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. 
    
    --> 
    
    <!DOCTYPE html> 
    <html lang="en"> 
    
    <head> 
    
      <meta charset="utf-8"> 
      <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
      <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
      <link rel="stylesheet" href="stylesheets/vendor.css"> 
      <link rel="stylesheet" href="stylesheets/app.css"> 
      <script src="javascripts/vendor.js"></script> 
      <script src="javascripts/app.js"></script> 
    
      <script> 
       $(document).ready(function() { 
           require('initialize'); 
           // make favicon work in firefox 
           $('link[type*=icon]').detach().appendTo('head'); 
           $('#loading').remove(); 
       }); 
    
     </script> 
    
     <title>Ambari</title> 
     <link rel="shortcut icon" href="/img/logo.png" type="image/x-icon"> 
     </head> 
     <body> 
      <div id="loading">...Loading...</div> 
      <div id="wrapper"> 
      <!-- ApplicationView --> 
      </div> 
      <footer> 
    
         <div class="container footer-links"> 
    
             <a data-qa="license-link" href="http://www.apache.org/licenses/LICENSE-2.0" target="_blank">Licensed under the Apache License, Version 2.0</a>.        <br> 
    
             <a data-qa="third-party-link" href="/licenses/NOTICE.txt" target="_blank">See third-party tools/resources that Ambari uses and their respective authors</a> 
    
          </div> 
    
      </footer> 
    
    </body> 
    
    </html>”
    

    De la machine virtuelle Windows

    Capture d’écran montrant la sortie de la machine virtuelle Windows.

    Notes

    1. Dans la machine virtuelle Windows, des noms d’hôte statiques sont ajoutés dans les hôtes de fichiers présents dans le chemin d’accès C:\Windows\System32\drivers\etc\
    2. Ce document suppose que le serveur Ambari est actif sur hn0. Si le serveur Ambari est actif sur hn1, utilisez le nom de domaine complet de hn1 pour accéder à l’interface utilisateur Ambari.
  8. Vous pouvez également envoyer des messages à la rubrique kafka et lire les rubriques à partir de la machine virtuelle. Pour cela, vous pouvez essayer d’utiliser cet exemple d’application Java, https://github.com/Azure-Samples/hdinsight-kafka-java-get-started

    Veillez à créer la rubrique dans le cluster Kafka à l’aide de la commande

    java -jar kafka-producer-consumer.jar create <topic_name> $KAFKABROKERS
    
  9. Après avoir créé la rubrique, nous pouvons utiliser les commandes ci-dessous pour produire et consommer. $KAFKABROKERS doit être remplacé de manière appropriée par le nom de domaine complet et le port du nœud Worker du répartiteur, comme indiqué dans la documentation.

    java -jar kafka-producer-consumer.jar producer test $KAFKABROKERS `
    java -jar kafka-producer-consumer.jar consumer test $KAFKABROKERS 
    
  10. Après cette étape, vous obtenez une sortie en tant que

    Sortie du producteur :

    Capture d’écran montrant la machine virtuelle de sortie du producteur Kafka.

    Sortie du consommateur :

    Capture d’écran montrant la sortie du consommateur Kafka.