SlideShare une entreprise Scribd logo
2
Plus lue
6
Plus lue
11
Plus lue
Apache Zookeeper



"From a certain point onward, there is no longer any turning back.
         That is the point that must be reached." - Kafka




                           Michael Morello
                             @barkbay
                                                                     1
Pourquoi ?

●   Pourquoi s'intéresser au problème de consensus ?
    –   Parce que c'est le même que celui des transactions
        distribuées
    –   Parce qu'aujourd'hui les traitements sont répartis sur plusieurs
        machines
    –   Parce qu'il faut accepter que ces machines et le réseau qui
        les relie ne soient pas fiables


                                                                           2
Qu'est ce qu'un consensus ?


●   Soit un système composé de N processus et un domaine
    de valeurs D
●   Chaque processus possède une valeur initiale v0 dans D
    → Il y a consensus si l'ensemble des processus évaluent
    une même valeur finale vf


                                                              3
Fallacies of Distributed Computing
●   Pourquoi est-ce difficile ?
    1. Le réseau n'est pas fiable
    2. La latence n'est pas nulle
    3. La bande passante n'est pas infinie
    4. Le réseau n'est pas sécurisé
    5. La topologie change
    6. Il y a plusieurs administrateurs
    7. Transporter une donnée a un coût
    8. Le réseau n'est pas homogène
       Fallacies of Distributed Computing - Peter Deutsch @Sun Microsystems   4
Est-ce possible ?

●   Théorème de M. Fisher, N. Lynch et M. Paterson
    (1985)
      Dans un modèle de communication asynchrone et si l'on
      considère que les processus peuvent connaître des
      défaillances alors il n'existe pas de solution



                                                              5
Dans la pratique...
●   2 Phase Commit :
    –  Bloquant, haute vulnérabilité aux pannes, ne gère pas un "fail-stop" du
       coordinateur, utilisable seulement pour coordonner un faible nombre de
       processus
●   3 Phase Commit :
    –  Non bloquant, plus résistant que 2PC, mais gère de manière incomplète un
       "fail-recover" du coordinateur
●   Algorithme de Paxos :
    –   Algorithme de consensus basé sur un quorum de participants
    –   Pas de coordinateur, pas de "Single Point of Failure"
    –   Robuste, fonctionne tant qu'il y a une majorité de participants           6
Zookeeper Atomic Broadcast

●   Zookeeper implémente un algorithme inspiré de
    Paxos appelé ZAB : Zookeeper Atomic Broadcast
●   Paxos est efficace mais ZAB apporte quelques
    améliorations :
    – Par exemple il garantit dans quel ordre les
      transactions sont appliquées alors que Paxos
      ne le permet pas.
                                                 7
Et ça sert à quoi ?
      ●
          Leader Election : attribuer un rôle spécifique à 1 JVM1 en
          particulier parmi N
      ●   Group Membership : regrouper de manière logique des
          JVM
      ●   (Double) Barriers : synchronisation de N JVM
      ●   Sections critiques : partage de verrous ou de
          sémaphores entre plusieurs JVM

                                                                                8
1 : Il existe aussi des API pour d'autres langages comme le C, Perl et Python
Et ça sert à quoi (encore)

●   Architecture orientée service : annuaire de services
    hautement disponible et cohérent
●   Centre de configuration de processus dynamique et
    hautement disponible
●   Système de message (à la JMS) hautement disponible,
    haute performance, et avec conservation de l'ordre des
    messages (Kafka, Hedwig)

                                                             9
Qui l'utilise ?




                  Et bien d'autres.......   10
Le modèle de programmation
●   Modèle simple : Zookeeper expose une arborescence et les données
    sont stockées dans les nœuds de l'arbre :
    /parent : data1
        |­ fils1 : data2
        `­ fils2 : data3
●   Ces nœuds sont appelés ZNodes
●   La mise à jour des nœuds se fait de manière atomique grâce à ZAB
●   Les clients peuvent être immédiatement notifiés d'une mise à jour des
    données.
                                                                            11
Programmation de + haut niveau

                    Netflix Curator1 est une bibliothèque
                    développée par Netflix qui offre une API de
                    haut niveau afin de faciliter l'utilisation de
                    Zookeeper :
                     –   Gestion plus aisée de la connexion au cluster
                         Zookeeper et des problèmes
                     –   Offre des recettes de bases (leader, lock, cache...)
                     –   Extension : annuaire de service

                                                                         12
1 : https://github.com/Netflix/curator
Points d'attention
●   Zookeeper conserve les données en mémoire et la taille des données associées à
    un Znode ne peut (par défaut) dépasser 1Mo
●   Les "watches" qui notifient immédiatement les clients d'une mise à jour des
    données ne sont exécutés qu'une seule fois et dans un même "thread"
●   Corollaire du point précédent : certains événements peuvent être manqués et il
    faut faire attention aux problèmes de synchronisation.
●   Attention à l'effet de troupeau (Herd Effect) si trop de clients surveillent le même
    Znode lorsque celui-ci est modifié.
●   En Java : attention aux longues pauses du garbage collector qui peuvent faire
    croire au cluster que le client s'est déconnecté.


                                                                                           13
Question ?



                  Michael Morello
             michael.morello@gmail.com
                    @barkbay



                                         14

Contenu connexe

PDF
Apache Kafka, Un système distribué de messagerie hautement performant
PDF
Monitoring kubernetes with prometheus
PDF
A la découverte de kubernetes
PDF
Installation hadoopv2.7.4-amal abid
PDF
Grafana Loki: like Prometheus, but for Logs
PDF
MirrorMaker: Beyond the Basics with Mickael Maison
PDF
Kafka Streams State Stores Being Persistent
PPTX
MeetUp Monitoring with Prometheus and Grafana (September 2018)
Apache Kafka, Un système distribué de messagerie hautement performant
Monitoring kubernetes with prometheus
A la découverte de kubernetes
Installation hadoopv2.7.4-amal abid
Grafana Loki: like Prometheus, but for Logs
MirrorMaker: Beyond the Basics with Mickael Maison
Kafka Streams State Stores Being Persistent
MeetUp Monitoring with Prometheus and Grafana (September 2018)

Tendances (20)

PPTX
Kafka Tutorial - Introduction to Apache Kafka (Part 1)
PDF
Formation libre OpenStack en Français
PDF
Best Practices for ETL with Apache NiFi on Kubernetes - Albert Lewandowski, G...
PDF
BigData_Chp3: Data Processing
PPSX
Docker Kubernetes Istio
PPTX
Apache kafka
PDF
GoldenGateテクニカルセミナー3「Oracle GoldenGate Technical Deep Dive」(2016/5/11)
PDF
Présentation docker et kubernetes
PPTX
Big Data Business Wins: Real-time Inventory Tracking with Hadoop
PDF
Apache ZooKeeper
PDF
Integrating Google Cloud Dataproc with Alluxio for faster performance in the ...
PDF
cLoki: Like Loki but for ClickHouse
PDF
Alphorm.com Formation Kubernetes : Installation et Configuration
PDF
Kafka tiered-storage-meetup-2022-final-presented
PPTX
Kafka 101
PDF
Apache Hadoop YARNとマルチテナントにおけるリソース管理
PPTX
Securing Hadoop with Apache Ranger
PPTX
Zookeeper Architecture
PDF
kubernetes, pourquoi et comment
PDF
Kubernetes 101
Kafka Tutorial - Introduction to Apache Kafka (Part 1)
Formation libre OpenStack en Français
Best Practices for ETL with Apache NiFi on Kubernetes - Albert Lewandowski, G...
BigData_Chp3: Data Processing
Docker Kubernetes Istio
Apache kafka
GoldenGateテクニカルセミナー3「Oracle GoldenGate Technical Deep Dive」(2016/5/11)
Présentation docker et kubernetes
Big Data Business Wins: Real-time Inventory Tracking with Hadoop
Apache ZooKeeper
Integrating Google Cloud Dataproc with Alluxio for faster performance in the ...
cLoki: Like Loki but for ClickHouse
Alphorm.com Formation Kubernetes : Installation et Configuration
Kafka tiered-storage-meetup-2022-final-presented
Kafka 101
Apache Hadoop YARNとマルチテナントにおけるリソース管理
Securing Hadoop with Apache Ranger
Zookeeper Architecture
kubernetes, pourquoi et comment
Kubernetes 101
Publicité

En vedette (20)

PPTX
Introduction to Apache ZooKeeper
PPTX
Comment l’architecture événementielle révolutionne la communication dans le S...
PPTX
Apache Kafka 0.8 basic training - Verisign
PPTX
Introduction to Kafka and Zookeeper
PPTX
Définir un cluster sous hadoop avec apache ambari
PDF
Apache Storm - Introduction au traitement temps-réel avec Storm
PDF
Spark, ou comment traiter des données à la vitesse de l'éclair
PPTX
Apache kafka
PPTX
Hadoop et son écosystème
PPTX
KEY
ApacheCon Europe 2012 -Big Search 4 Big Data
PDF
Spark : 5 moyens simples et rapides pour exploiter vos Big Data avec Spark et...
PPTX
Experience with Kafka & Storm
PDF
Présentation du stockage RAID
PPTX
Curation
PDF
Архитектура хранилища бинарных данных на Одноклассниках (Александр Христофоро...
PDF
HDFS HA : Stockage à haute disponibilité par Damien Hardy
PDF
Apache kafka big data track
PPTX
Apache Kafka at LinkedIn
Introduction to Apache ZooKeeper
Comment l’architecture événementielle révolutionne la communication dans le S...
Apache Kafka 0.8 basic training - Verisign
Introduction to Kafka and Zookeeper
Définir un cluster sous hadoop avec apache ambari
Apache Storm - Introduction au traitement temps-réel avec Storm
Spark, ou comment traiter des données à la vitesse de l'éclair
Apache kafka
Hadoop et son écosystème
ApacheCon Europe 2012 -Big Search 4 Big Data
Spark : 5 moyens simples et rapides pour exploiter vos Big Data avec Spark et...
Experience with Kafka & Storm
Présentation du stockage RAID
Curation
Архитектура хранилища бинарных данных на Одноклассниках (Александр Христофоро...
HDFS HA : Stockage à haute disponibilité par Damien Hardy
Apache kafka big data track
Apache Kafka at LinkedIn
Publicité

Similaire à Présentation de Apache Zookeeper (20)

PPTX
Perfug BOF devoxx2017.pptx
ODP
Noyau temps réel freertos cheriet mohammed el amine
PDF
Hibernate vs le Cloud computing
PDF
Hibernate vs le_cloud_computing
PDF
Hibernate vs le_cloud_computing
PPTX
Exchange 2013 Bonnes pratiques
PDF
Diagnostic performances
PDF
Big Data ou comment retrouver une aiguille dans une botte de foin
PDF
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...
ODT
A la découverte d'abus
PDF
Softshake 2013 - Yarn dans la vraie vie, retour d'expérience et bonnes pratiq...
PDF
Programmation concurrente en Java
PDF
Apache solr andré bois-crettez 08
PDF
Des solutions de synchronisation de données
PDF
Cours ALGR M1.pdf
PPT
Introduction à Rmpi
PDF
WS User Group - Spring Batch - Xebia
PPTX
Quoi de neuf à Devoxx France 2017 ?
PPTX
Formation Google App Engine
ODP
Solr retour d'experience
Perfug BOF devoxx2017.pptx
Noyau temps réel freertos cheriet mohammed el amine
Hibernate vs le Cloud computing
Hibernate vs le_cloud_computing
Hibernate vs le_cloud_computing
Exchange 2013 Bonnes pratiques
Diagnostic performances
Big Data ou comment retrouver une aiguille dans une botte de foin
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...
A la découverte d'abus
Softshake 2013 - Yarn dans la vraie vie, retour d'expérience et bonnes pratiq...
Programmation concurrente en Java
Apache solr andré bois-crettez 08
Des solutions de synchronisation de données
Cours ALGR M1.pdf
Introduction à Rmpi
WS User Group - Spring Batch - Xebia
Quoi de neuf à Devoxx France 2017 ?
Formation Google App Engine
Solr retour d'experience

Dernier (8)

PDF
Courrierx.co Partage 4 Étapes Pour Envoyer Facilement Des Lettres En Ligne
PDF
1 - M2 API S2IN - GC - Introduction - 010225.pdf
PDF
REGLEMENT _INTERIEUR REGLEMENT _INTERIEUR REGLEMENT _INTERIEUR
PDF
REGLEMENT _INTERIEUR REGLEMENT _INTERIEUR SH
PPTX
24102022SA communication interpersonelle3 - Copie [Enregistrement automatique...
PPTX
Product lunch about tech and ai and network
PPTX
Arbre des défauts/suite cours lean M.pptx
PPTX
la_logistique_longue_et_courte_distance_au_defi_de_la_transition_-_marie-chri...
Courrierx.co Partage 4 Étapes Pour Envoyer Facilement Des Lettres En Ligne
1 - M2 API S2IN - GC - Introduction - 010225.pdf
REGLEMENT _INTERIEUR REGLEMENT _INTERIEUR REGLEMENT _INTERIEUR
REGLEMENT _INTERIEUR REGLEMENT _INTERIEUR SH
24102022SA communication interpersonelle3 - Copie [Enregistrement automatique...
Product lunch about tech and ai and network
Arbre des défauts/suite cours lean M.pptx
la_logistique_longue_et_courte_distance_au_defi_de_la_transition_-_marie-chri...

Présentation de Apache Zookeeper

  • 1. Apache Zookeeper "From a certain point onward, there is no longer any turning back. That is the point that must be reached." - Kafka Michael Morello @barkbay 1
  • 2. Pourquoi ? ● Pourquoi s'intéresser au problème de consensus ? – Parce que c'est le même que celui des transactions distribuées – Parce qu'aujourd'hui les traitements sont répartis sur plusieurs machines – Parce qu'il faut accepter que ces machines et le réseau qui les relie ne soient pas fiables 2
  • 3. Qu'est ce qu'un consensus ? ● Soit un système composé de N processus et un domaine de valeurs D ● Chaque processus possède une valeur initiale v0 dans D → Il y a consensus si l'ensemble des processus évaluent une même valeur finale vf 3
  • 4. Fallacies of Distributed Computing ● Pourquoi est-ce difficile ? 1. Le réseau n'est pas fiable 2. La latence n'est pas nulle 3. La bande passante n'est pas infinie 4. Le réseau n'est pas sécurisé 5. La topologie change 6. Il y a plusieurs administrateurs 7. Transporter une donnée a un coût 8. Le réseau n'est pas homogène Fallacies of Distributed Computing - Peter Deutsch @Sun Microsystems 4
  • 5. Est-ce possible ? ● Théorème de M. Fisher, N. Lynch et M. Paterson (1985) Dans un modèle de communication asynchrone et si l'on considère que les processus peuvent connaître des défaillances alors il n'existe pas de solution 5
  • 6. Dans la pratique... ● 2 Phase Commit : – Bloquant, haute vulnérabilité aux pannes, ne gère pas un "fail-stop" du coordinateur, utilisable seulement pour coordonner un faible nombre de processus ● 3 Phase Commit : – Non bloquant, plus résistant que 2PC, mais gère de manière incomplète un "fail-recover" du coordinateur ● Algorithme de Paxos : – Algorithme de consensus basé sur un quorum de participants – Pas de coordinateur, pas de "Single Point of Failure" – Robuste, fonctionne tant qu'il y a une majorité de participants 6
  • 7. Zookeeper Atomic Broadcast ● Zookeeper implémente un algorithme inspiré de Paxos appelé ZAB : Zookeeper Atomic Broadcast ● Paxos est efficace mais ZAB apporte quelques améliorations : – Par exemple il garantit dans quel ordre les transactions sont appliquées alors que Paxos ne le permet pas. 7
  • 8. Et ça sert à quoi ? ● Leader Election : attribuer un rôle spécifique à 1 JVM1 en particulier parmi N ● Group Membership : regrouper de manière logique des JVM ● (Double) Barriers : synchronisation de N JVM ● Sections critiques : partage de verrous ou de sémaphores entre plusieurs JVM 8 1 : Il existe aussi des API pour d'autres langages comme le C, Perl et Python
  • 9. Et ça sert à quoi (encore) ● Architecture orientée service : annuaire de services hautement disponible et cohérent ● Centre de configuration de processus dynamique et hautement disponible ● Système de message (à la JMS) hautement disponible, haute performance, et avec conservation de l'ordre des messages (Kafka, Hedwig) 9
  • 10. Qui l'utilise ? Et bien d'autres....... 10
  • 11. Le modèle de programmation ● Modèle simple : Zookeeper expose une arborescence et les données sont stockées dans les nœuds de l'arbre : /parent : data1     |­ fils1 : data2     `­ fils2 : data3 ● Ces nœuds sont appelés ZNodes ● La mise à jour des nœuds se fait de manière atomique grâce à ZAB ● Les clients peuvent être immédiatement notifiés d'une mise à jour des données. 11
  • 12. Programmation de + haut niveau Netflix Curator1 est une bibliothèque développée par Netflix qui offre une API de haut niveau afin de faciliter l'utilisation de Zookeeper : – Gestion plus aisée de la connexion au cluster Zookeeper et des problèmes – Offre des recettes de bases (leader, lock, cache...) – Extension : annuaire de service 12 1 : https://github.com/Netflix/curator
  • 13. Points d'attention ● Zookeeper conserve les données en mémoire et la taille des données associées à un Znode ne peut (par défaut) dépasser 1Mo ● Les "watches" qui notifient immédiatement les clients d'une mise à jour des données ne sont exécutés qu'une seule fois et dans un même "thread" ● Corollaire du point précédent : certains événements peuvent être manqués et il faut faire attention aux problèmes de synchronisation. ● Attention à l'effet de troupeau (Herd Effect) si trop de clients surveillent le même Znode lorsque celui-ci est modifié. ● En Java : attention aux longues pauses du garbage collector qui peuvent faire croire au cluster que le client s'est déconnecté. 13
  • 14. Question ? Michael Morello michael.morello@gmail.com @barkbay 14