Apache Apex: l’analytique Big Data nouvelle génération

Présentation par Thomas Weise de DataTorrent (entreprise développant Apex)

Introduction

Apache Apex est un moteur de traitements parallélisés en mémoire, comme Flink ou Storm. Cependant, il est développé avec un intégration native d’Hadoop :

  • Yarn est utilisé pour la gestion des ressources
  • HDFS est utilisé pour le stockage d’état

Modèle de développement applicatif

  • Un stream est une séquence de couplets
  • Un opérateur :
    • prend un ou plusieurs flux en entrée
    • applique un traitement aux couplets (logique en Java)
    • émet un ou plusieurs flux en sortie
    • est lancé plusieurs fois en instance monothread parallélisée
    • utilise le modèle DAG pour optimiser le traitement des données
  • Une application est composée d’une suite d’opérateurs

Logique de développement

Un exemple typique de WordCount avec Apex prend la forme suivante :

  • Les données sont acheminées via Kafka
  • La logique Apex utilise les opérateurs suivants :
    • Input Kafka
    • Parseur
    • Filtre
    • Compteur de mots
    • Output JDBC
  • La donnée finale est écrite en base

La logique de développement prend la forme suivante :

  • Utilisation d’un opérateur existant depuis les librairies Apex ou implémentation d’une logique spécifique
  • Connection des opérateurs pour former l’application
  • Configuration des propriétés d’opérateurs
  • Configuration de la mise à l’échelle et des attributs de plateforme
  • Test des fonctionnalités et performance, début d’une nouvelle itération

Librairies d’opérateurs

Apex fournit une librairie d’opérateurs très complète via le projet Apache Apex Malhar :

  • Messaging (Kafka, ActiveMQ, …)
  • NoSQL (HBase, Cassandra, MongoDB, Redis, CouchDB, …)
  • RDBMS (JDBC, MySQL, …)
  • Système de fichier (HDFS / Hive, …)

Apache Apex Malhar operators

Notes

  • Apex se base sur Apache BEAM pour le développement des jobs, il profite donc des multiples avantages :
    • partitionnement dynamique a l’execution
    • répartition de la charge entre les opérateurs parallélisés
    • gestion du fenêtrage
  • La tolérance a la panne est couverte par la sauvegarde d’état des opérateurs
  • Apex assure les modes de traitement
    • au moins une fois
    • au plus une fois
    • exactement une fois
Par |2018-06-05T22:37:05+00:00July 17th, 2016|Évènements|0 commentaire

À propos de l'auteur :

César Berezowski est un architecte solution BigData & Hadoop et un Data Engineer avec 3 ans d’expérience sur Hadoop et les systèmes distribués. Il a conçu, développé et opéré des workflows d’ingestion de données et des services temps réels tout en accompagnant ses clients dans la définition de leurs besoins et dans leur mise en application. Il est polyvalent sur les plateformes BigData, de la planification, la conception et l’architecture du déploiement de clusters, l’administration, la maintenance ainsi que le prototypage et l’industrialisation d’applications en collaboration avec les utilisateurs métiers, les analystes, les data scientists, les ingénieurs et les équipes d’exploitation. Il aime découvrir de nouvelles choses et expérimenter de nouvelles technologies au-delà de son travail. Il est aussi doté d’une expérience en tant que formateur facilitant le transfert de connaissance et la formation des équipes.

Laisser un commentaire