Exposer Kafka sur deux réseaux différents

Une installation Big Data nécessite généralement d’avoir plusieurs interfaces réseaux, nous allons voir comment paramétrer Kafka pour écouter sur plus d’une.

La procédure décrite dans cette article a été testé sur CDH 5.7.1 avec Kafka 2.0.1.5 installé en parcels.

L’un des clusters sur lesquels nous travaillons a la configuration réseau suivante :

  • Un réseau “data” exposant les noeuds clients, Kafka et les noeuds master
  • Un réseau “interne” dédié au cluster pour nos workers

Nous utilisons Kafka puor l’ingestion de données et pour dispatcher des données enrichiers vers un autre système exposant des interfaces utilisateurs avec :

  • Un job Spark Streaming consumant des topics Kafka depuis YARN (réseau “interne”)
  • Le système front consumant des topics Kafka depuis l’extérieur (réseau “data”)

Ainsi nous avons besoin de pouvoir atteindre Kafka sur deux réseaux différents. Pour que cela fonctionne il que les noeuds Kafka aient le même hostname sur les deux réseaux et que nous appliquions la configuration suivante sur chacun des brokers Kafka dans la section kafka.properties safety valve  :

Et c’est tout !

NB: avec cette configuration, Kafka écoute sur toutes les interfaces et non plus celle par défaut. Théoriquement, la configuration suivante permet d’indiquer des IPs spécifiques :

cependant l’exception suivante est lancée au démarrage :

et des variations de “Each listener must have a different protocol” en changeant les ports.

Par |2018-06-05T22:36:40+00:00March 9th, 2018|Blog|0 commentaire

À propos de l'auteur :

Consultant Big Data @ Adaltas depuis 2015, j'aime découvrir de nouvelles choses et expérimenter avec les nouvelles technologies en plus de mon métier de tous les jours

Laisser un commentaire