Your SlideShare is downloading. ×
Tech day hadoop, Spark
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Tech day hadoop, Spark

516
views

Published on

Introduction et retour d’expérience sur les technologie Hadoop et Spark.

Introduction et retour d’expérience sur les technologie Hadoop et Spark.

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
516
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
40
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Hadoop et le "Big Data" La Technologie Hadoop au coeur des projets "Big Data".
  • 2. Hadoop : Qui suis-je ? Stéphane Goumard ● Expertise environnement Java. ○ Architecte technique. ○ Consultant. ○ Formateur. ● Responsable Technique du Projet de Recherche et Innovation “Big Data”, “Square Predict”.
  • 3. Hadoop et le "Big Data" Le “Big Data”
  • 4. Big Data : Quoi de neuf ? Facabook warehouses 180 petabytes of data a year. Twitter manages 1.2 million deliveries per second Nouveaux Métiers “Data Scientist” Nouveaux enjeux économiques Nouvelles technologies
  • 5. Big Data : Quoi de neuf ? “Big Data is data that exceeds the processing capacity of coventionnal database systems. The data is too big, move too fast, or doesn’t fit the strictures of your database architectures. To gain value from this data, you must choose an alternative way to process it.” Edd Dumbill, O’Reilly
  • 6. Hadoop et le "Big Data" Hadoop.
  • 7. Hadoop : Définition “Hadoop est le framework le plus utilisé actuellement pour manipuler et faire du Big Data. Apache Hadoop est un framework qui va permettre le traitement de données massives sur un cluster allant d’une à plusieurs centaines de machines. C’est un projet open source (Apache v2 licence).”
  • 8. Hadoop : Historique Création de Nutch par Doug Cutting et Mike Cafarella Google publie GFS & Map Reduce Doug Cutting ajoute DFS & Map Reduce à Nutch Yahoo embauche Cutting & adopte Hadoop Hadoop est elu Top Project Apache Facebook sort Hive le support du SQL pour Hadoop Cloudera embauche Cutting
  • 9. Hadoop est Robuste !
  • 10. Hadoop : Système d’exploitation de la donnée
  • 11. Hadoop : Références. En 10 ans, son adoption ne fait plus aucun doute !
  • 12. Hadoop : HDFS “HDFS (Hadoop Distributed File System) est un système de fichiers Java utilisé pour stocker des données structurées ou non sur un ensemble de serveurs distribués.” ● Node (Master/slave) : Dans une architecture Hadoop, chaque membre pouvant traiter des données est appelé Node (Noeud). ● Un seul d’entre eux peut être Master même s’il peut changer au cours de la vie du cluster, il s’agit du NameNode. Il est responsable de la localisation des données dans le cluster. ● Les autres nœuds, stockant les données, sont des slaves appelés DataNode. ● Le NameNode est donc un Single Point Of Failure (SPOF) dans un cluster Hadoop. (Hadoop 2.0, introduit un failover automatisé).
  • 13. Hadoop : HDFS ● BlockSize : Taille unitaire de stockage (généralement 64 Mo ou 128 Mo). C’est à dire qu’un fichier de 1 Go (et une taille de block de 128 Mo) sera divisé en 8 blocks. ● Réplication Factor : C’est le nombre de copies d’une donnée devant être réparties sur les différents noeuds du cluster. (souvent 3, c’est à dire une primaire et deux secondaires) ● Processus de lecture HDFS : ○ Interrogation du NameNode pour localiser les adresses des Nodes hébergeant les blocs sous- jacents les plus proches. ● Processus d’écriture ● Écriture sur le DataNode. ● DataNode communique ses blocs au NamenNde. Replication.. ● Write-once.
  • 14. ● Alternatives : ○ Hbase : Base NoSql insipirée de Google BigTable. Utilisée conjointement au système de fichiers HDFS, il facilite la distribution des données sur plusieurs Noeuds. On compare souvent Hbase => HDFS à ce que représente Json => XML. ○ MapR : Propose une atlernative à HDFS sans SPOF. C’est un fork de Hbase en mode propriétaire. ○ Cassandra : Initiée par Facebook qui l’abandonne au profit de Hbase, c’est une base NoSql qui optimise les opérations en écriture. Comme Hbase, elle ne remplace pas HDFS mais offre un moyen supplémentaire de l’exploiter. ○ Cloud : Les offres cloud peuvent être une alternative Amazon S3, Hadoop : HDFS
  • 15. Hadoop : Map Reduce. “A l’origine crée par Google pour son outil de recherche web. C’est un framework qui permet le décomposition d’une requête importante en un ensemble de requêtes plus petites qui produiront chacune un sous ensemble du résultat final : c’est la fonction Map. L’ensemble des résultats est traité (agrégation, filtre) : c’est la fonction Reduce.” La première phase (Map) est une étape d’ingestion et de transformation des données sous la forme de paires clé/valeur. Regroupement et tri par clé et chaque groupe est transmis à une fonction Reduce. (Reduce) est une étape de fusion des enregistrements par clé pour former le résultat final.
  • 16. Hadoop : Map Reduce. 1. savoir être et 2. savoir faire 3. sans faire savoir 1 - Configuration du job (définie par l’utilisateur) 2 - Découpage du jeu de données et distribution sur le cluster (géré par Hadoop) 3 - Démarrage de chaque tâche Map avec son propre jeu de données issu du découpage (géré par Hadoop) 4 - Exécution en parallèle de chaque fonction Map (implémentée par l’utilisateur) 5 - Les sorties des fonctions Map sont triées par clé pour former de nouvelles unités de données (gérées par Hadoop) 6 - Démarrage des tâches Reduce avec son propre jeu de données issu du tri (géré par Hadoop) 7 - Exécution en parallèle de chaque fonction Reduce (implémentée par l’utilisateur) 8 - Assemblage du résultat des opérations Reduce et Stockage (gérés par Hadoop)
  • 17. Hadoop : Map Reduce. ● JobTracker : ○ Coordonne les Job Ma Reduce sur le cluster, distribue les tâches d’exécution (Map ou Reduce) au TaskTracker. ○ Cohabite avec le NameNode. une instance par cluster. ● TaskExecutor : ○ Exécute les tâches d'exécution (Map ou Reduce) ○ Notification JobTracker (failover, erreur…) ○ Cohabite avec un DataNode. Autant d’instances que de nœuds esclaves. La communication entre les nœuds (NameNode/DataNode, JobTracker/TaskTracker) s’effectue par RPC.
  • 18. Hadoop : Map Reduce. public class WordCountReducer extends MapReduceBase implements Reducer { public void reduce(Text key, Iterator values, OutputCollector output, Reporter reporter ) throwsIOException { int nbOcc = 0; while (values.hasNext ()) { nbOcc += values.next ().get(); } output.collect (key, new IntWritable (nbOcc));}} class WordCountMapper extends MapReduceBase implementsMapper{ private final static IntWritable mDefOcc = newIntWritable (1); private Text mWord = new Text(); public void map(LongWritable key, Text value, OutputCollector output, Reporter reporter ) throwsIOException { String lLine = value.toString (); StringTokenizer lIt = new StringTokenizer(lLine); while (lIt.hasMoreTokens()) { mWord.set(lIt.nextToken()); output.collect(mWord, mDefOcc);}}} public class WordCount { public static void main(String[] args) throws Exception { JobConf conf = new JobConf (WordCount. class); conf.setJobName ("Compteur de mots" ); conf.setMapperClass (WordCountMapper. class); onf.setReducerClass (WordCountReducer. class); conf.setInputFormat (TextInputFormat. class); conf.setOutputFormat (TextOutputFormat. class); FileInputFormat.setInputPaths (conf, newPath(args[0])); FileOutputFormat.setOutputPath (conf, newPath(args[1])); JobClient.runJob (conf); }
  • 19. Hadoop : YARN YARN (Yet-Another-Resource-Negotiator) est aussi appelé MapReduce 2.0. Ce n’est pas une refonte mais une évolution du framework MapReduce. ● YARN répond aux problématiques suivantes du Map Reduce : ○ Problème de limite de “Scalability” notamment par une meilleure séparation de la gestion de l’état du cluster et des ressources. ■ ~ 4000 Noeuds, 40 000 Tâches concourantes. ○ Problème d’allocation des ressources. ○ Un support et un protocole clairs pour faciliter le développement de frameworks transversaux. Valeurs codées en dûr.Des tâches Map sont en attentes alors que des slots de tâche reduce sont libres.
  • 20. Hadoop : YARN JT NN TE DN TE DN TE DN Cluster Apache Hadoop Classique ResourceManager AplicationMaster AM AM TE DN TE DN TE DN Le Job Tracker a trop de responsabilités. ● Gérer les ressources du cluster. ● Gérer tous les jobs ○ Allouer les tâches et les ordonnancer. ○ Monitorer l'exécution des tâches. ○ Gérer le fail-over. ○ ………..; ResourceManager et Application Master. ● ResourceManager remplace le JobTracker et ne gère que les ressources du Cluster. ● Une entité Application Master est allouée par Application pour gérer les tâches. ● Application Master est déployée sur les noeuds esclaves. Re-penser l’architecture du Job Tracker. ● Séparer la gestion des ressources du cluster de la coordination des jobs. ● Utiliser les noeuds esclaves pour gérer les jobs.
  • 21. ResourceManager AplicationMaster AM AM NodeManager DN NM DN NM DN Cluster Apache Hadoop 2.0 Node Manager. ● Permet d’exécuter plus de tâches qui ont du sens pour l’Application Master, pas seulement du Map et du Reduce. ● La taille des ressources est variable (RAM, CPU, network….). Plus de valeurs codées en dur qui nécessitent une redémarrage. ~ 10K Noeuds par cluster. ~ 100 K Tâches concourantes Hadoop : YARN
  • 22. Hadoop : YARN Hadoop se transforme en OS de la donnée ! ● Client et cluster peuvent utiliser des versions différentes. ● Des protocoles de communication standardisés et documentés. ● Évolution du framework progressive avec rétro-compatibilité sans destruction des services.
  • 23. Hadoop : HBase Architecture HBase Représentation des données Hbase - Hbase est : ● Insipirée par Google Big Table. ● Distribuée et orientée Colonne. ● Multidimensionnelle. ● Hautement disponible. ● Haute performance. ● Système de stockage. ● Souvent utilisée avec HDFS. - Pourquoi HBase + HDFS ? ● Une représentation orientée colonne du HDFS. ● Partitionnement et tri automatique +Rapide +GroupBy +OrderBy ● Ajout/Suppression à chaud des Noeuds. ● Accès Read/Write des données aléatoires, dialogues directs avec les noeuds esclaves.
  • 24. Hadoop : Hive ● C’est quoi Hive ? ○ Initié par Facebook. ■ Rentabiliser les ingénieurs SQL. ■ Démocratiser Map/Reduce. ○ Infrastructure pour entrepôt de données “Data WareHouse” ● Comment ça marche ? ○ Hive a pour fondation Hadoop. ○ Hive structure les données tables, colonnes, lignes. ○ Hive stocke les données dans HDFS. ○ Hive compile les requêtes SQL en Job Map/Reduce. ○ Hive propose un langage de requête SQL HIVEQL DDL et DML.
  • 25. Hadoop : Hive Chargement données depuis HDFS Création de tables. Sélection et insertion de résultats.
  • 26. Hadoop : Vue d’ensemble.
  • 27. Hadoop : Autres composants Flume Solution de collecte et d’agrégation de log native avec HDFS. Knox Gestion de la sécurité et authentification. WebHDFS Servie REST pour HDFS. Mahout DataMining. Besoin temps réels “Streaming” Drill, Tez, Spark, Sorm….. Et la gestion des transactions ???? Déjà dans toutes les têtes surtout celle de Doug Cutting (le père d’Hadoop) !!
  • 28. Hadoop : Les Distributions Pourquoi des distributions ? ● Pour regrouper de façon homogène les différentes extensions. ● Pour faciliter l’installation, la diffusion, le support. ● Pour permettre d’incuber des “Business Model” pour les éditeurs qui contribuent largement à Hadoop. ● 3 acteurs majeurs dans l'écosystème : ○ Horton Works ○ Cloudera ○ MapR
  • 29. Hadoop : Les Distributions ● 2011 Yahoo. ● Composants Open Source. ● 1:1 avec Hadoop. ● Projets reversés à Hadoop : ○ YARN ○ HCatalog ○ Ambari
  • 30. Hadoop : Les Distributions ● Commercial et Open Source. ● Hadoop + Composants Maison. ● Composants propriétaires : ○ Impala (requêtes temps réel) ○ Cloudera Manager (gestion du cluster, déploiement..)● Projets reversés à Hadoop : ○ Hadoop Common (Utilitaires) ○ Hue (SDK IHM) ○ Whirr (SAAS Hadoop)
  • 31. Hadoop : Les Distributions ● 2009, Commercial et Open Source ● Refonte du coeur de la plateforme (MapR FS et MapR MapReduce) ● Optimisé pour Hbase. ● Projets reversés à Hadoop : ○ Hbase, Pig, Hive, Mahout ○ Sqoop, Flume. ● Composants propriétaires : ○ Cascading (Usine de dev Java) ○ Vaidya (Perf, Benchmark) ○ Drill (Requêtes temps réel)
  • 32. Hadoop : Les Distributions Comment choisir une solution Hadoop ? ● Modèle économique (Open Source, Commercial..). ● Les composants. ● Maturité de la solution, le support, la documentation, le retour d'expériences. ● Le rapport avec Hadoop, la rapidité des évolutions. ● Partenariats (hébergeurs…), compatibilité avec les produits satellites.
  • 33. Hadoop et le "Big Data" Le Projet Spark.
  • 34. Hadoop : Qu’est que Spark ? “Apache Spark is a powerful open source processing engine for Hadoop data built around speed, ease of use, and sophisticated analytics. It was originally developed in 2009 in UC Berkeley’s AMPLab, and open sourced in 2010.” ● Ce n’est pas une version modifiée de Hadoop. ● C’est un moteur Map-Reduce plus évolué, plus rapide. ○ Utilisation de la mémoire pour optimiser les traitements. ○ Des API’S pour faciliter et optimiser les étapes d’analyses. ○ Permettre le traitement temps réel des données. ● Compatible avec le système de Stockage de Hadoop (HDFS, Hive, SequenceFiles…)
  • 35. Hadoop : Spark, plus rapide Lent, provoqué par les IO, Sérialision, Réplication Utilisation d’une mémoire partagée RDD’s 100x plus rapide, 10x moins d’itérations. RDD’s (Resilient Distributed DataSet) - Une collection d’objets distribués, mise en cache en mémoire au travers du cluster. - Une API’ pour manipuler ces objets “Operators” - Système de fail over automatique. Logistic regression in Hadoop and Spark
  • 36. Hadoop : Spark, facile à utiliser. ● Une liste d’Operators pour faciliter la manipulation des données au travers des RDD’S. Map, filter, groupBy, sort, join, leftOuterJoin, ritghtOuterJoin, reduce, count, reduceByKey, groupByKey, first, union, cross, sample, cogroup, take, partionBy, pipe, save….. ● Compatible avec les langages de programmation fonctionnel Scala, Python...
  • 37. Hadoop : Spark, un Framework analytique. Shark : Moteur de requête SQL, basé sur le coeur de Spark (in memory), il permet d'exécuter des requêtes hive sans modification 100x plus rapidement. MLLib : Library d’algorithmes d’ analyses de données (data mining), scalable et optimisé (limite des interactions, RDD’s), Kmeans, ALS, L2-> L1... Calling MLlib in Scala Spark Streaming : A opposer aux traitements “batch”, mise à jour d’un état dynamiquement, piloté par des évènements sur les données “event processing”. (Filtre de Spam, analyse de click, reporting temps réel…) Counting tweets on a sliding window
  • 38. Hadoop et le "Big Data" Square Predict, Cas d’utilisation.
  • 39. Hadoop : Cas d’utilisation Square Predict “Le projet Square Predict , valoriser et monétiser l'énorme quantité de données à disposition des assureurs” “L’objectif de Square Predict est de générer des prédictions utiles au business des assureurs par l’analyse de leur données fusionnées avec l’Open Data.” Le projet Square Predict est un projet Open Source de 2,76 M€ sur 3 ans (de 09/2013 à 09/2016).
  • 40. Hadoop : Cas d’utilisation Square Predict “Estimation en temps réel de l’impact (étendue + sévérité) des dégâts causés par un évènement climatique de grande ampleur” “Identification des facteurs expliquant la hausse de la sinistralité incendie/dégâts des eaux par zones géographiques” “Identification des facteurs expliquant la hausse de la sinistralité automobiles ”
  • 41. Hadoop : Architecture premier niveau.
  • 42. Hadoop : Architecture second niveau.
  • 43. Hadoop : De vrais projets. ● EDF : Nouveau compteur électrique “Linky” ● Joint-venture (Telefonica, T-Mobile, Orange et Vodafone) : “Le projet Webe, Traiter en temps réel les données générées par des dizaines de millions d'abonnés. A la clé, l'idée est de permettre aux annonceurs de proposer des services contextualisés et personnalisés, mais aussi des promotions et offres sur-mesure géolocalisées en fonction de zones prédéfinies “ ● Ericsson : le Big Data au service de l'IP TV “Personnaliser programmes et publicités en fonction de la météo, Nous corrélons les données des usages IP TV avec des informations météorologiques mais aussi sociales : vacances scolaires, évènements politiques ou sportifs, campagnes publicitaires…” ● TapValue : Le retargeting multicanal “Retargeting publicitaire multicanal et géolocalisé”, L'application présentée par cette start-up française, baptisée Profilematch, permet de traquer le comportement de l'utilisateur quel que soit le terminal qu'il utilise : PC, tablette, smartphone... Et lui proposer un contenu personnalisé adapté à chaque écran, en fonction de ses interactions avec la marque.” Trophées de l'innovation Big Data 2014
  • 44. Hadoop et le "Big Data" Fin, Merci, des Questions ?