SlideShare une entreprise Scribd logo
1  sur  33
YARN dans la vraie vie

Retour d’expérience et bonnes pratiques tirées de sa mise en

place pour un datalab

1
Rémy SAISSY
© OCTO 2013
2012
Contexte

2
© OCTO 2013
Qui suis je ?
Rémy SAISSY, OCTO Technology

Responsable de la R&D Hadoop
Architecte spécialisé sur les sujets Big Data
@RemySaissy

3
© OCTO 2013
Contexte
Fin 2012
Durée : 3 mois

Equipe : 10 personnes
Trois enjeux majeurs :
Construire une plateforme Hadoop opérationnelle
Montée en compétence de l’équipe
Préconisations pour une plateforme industrielle

4
© OCTO 2013
Caractéristiques de l’équipe
Coté client
2 managers
2 ingénieurs logiciel
4 analystes

Coté OCTO
1 directeur de mission
2 architectes

Equipe colocalisée

5
© OCTO 2013
Caractéristiques du cluster
1 rack, 12 serveurs
1 nœud pour les outils, 1 autre pour l’anonymisation
2 nœuds master
namenode / resourcemanager
secondary namenode

8 nœuds slave : datanode et nodemanager

Masters

Slaves

Accès Masters et
Outils

Outils

6
© OCTO 2013
Méthodologie de travail
Une méthodologie itérative
Pourquoi ?
Temps limité
Projet dense
Infra : Mise en place et configuration du cluster
Exploration des possibilités des outils d’Hadoop
Transfert de compétences

Comment ?
Co-localisation de l’équipe opérationnelle
Mise au point et priorisation d’un backlog
Réunion d’avancement hebdomadaire
On y aborde les réussites et les points bloquants
On y valide le travail réalisé
On y ajuste le backlog pour la semaine suivante

Objectifs
Favoriser un bon suivi de l’avancement
Favoriser les échanges en direct
Eviter les blocages, les non dits

7
© OCTO 2013
Déroulement du projet

8
© OCTO 2013
Mise en place du cluster
Déploiement d’Hadoop

Un cluster de CentOS disponibles
Accès SSH en root

Il ne reste plus qu’à installer !
Oui, mais…

A l’attaque !

9
© OCTO 2013
Mise en place du cluster
Déploiement d’Hadoop

Serveurs fournis par la DSI
Configuration matérielle « imposée »
Taille de certaines partitions inadaptées
Pas d’accès internet
Firewalls

Résultat
Partitions :
des adaptations « crades » à base de liens symboliques
Repartitionnement en GPT des disques de stockage

Accès internet : création d’un mirroir local
Firewalls : demandes d’ouvertures de ports

Coût : Un peu plus d’une semaine

10
© OCTO 2013
Mise en place du cluster
Déploiement d’Hadoop

Beaucoup de petits détails qui comptent
Kernel : swapiness, overcommit, hugepages, …
Ext4 : pas de blocs réservés, noatime, nodiratime, …
Hadoop : taille des blocs HDFS, réplication, mémoire par
composant ?

Résultat
Pour le transfert de compétences : très positif
Pour le projet : démarrage très lent. Impact négatif

Un SCM au démarrage peut faire gagner beaucoup de
temps !

11
© OCTO 2013
Mise en place du cluster
Déploiement des outils
Relativement facile une fois Hadoop correctement installé

Peu d’impact sur le cluster en lui même

Ne déployer que le nécessaire

12
© OCTO 2013
Mise en place du cluster
Déploiement des outils
A chaque outil sa configuration
Complexité à tout maintenir
Configuration parfois complexe

Des IHM globalement trop basiques
La ligne de commande reste le plus complet

13
© OCTO 2013
Les alimentations de données
Constat en fin de mission

Ne pas négliger le travail préparatoire !

14
© OCTO 2013
L’analyse des données
Beaucoup de travail en amont

Un cluster s’optimise au contact de la réalité
Limites des outils
Ajustement de l’ordonnanceur
Configuration mémoire
Configuration d’HDFS

Python est ici un bon allié

15
© OCTO 2013
L’analyse des données
Hive
Points positifs
Globalement compatible avec les requêtes SQL utilisées

Points négatifs
Bug surprenant sur les dates
Trop lent
Après 1 mois de CREATE TABLE, beaucoup de blocs sous remplis

16
© OCTO 2013
L’analyse des données
Pig
Points positifs
Les analystes y voyait un « SAS like »

Points négatifs
Trop lent
Pas d’intégration Hcatalog dans la CDH à l’époque

Son utilisation a tourné court rapidement.

17
© OCTO 2013
L’analyse des données
Impala
Tests rapides effectués sur la version bêta
Au moment de la sortie d’Impala

Points négatifs
Lent
Plantages du shell Impala
Certaines requêtes retournaient des résultats invalides

Problèmes corrigés depuis mais une leçon de cela :
Qu’un éditeur communique sur un produit ne signifie pas
que ce produit est utilisable !

18
© OCTO 2013
L’analyse des données
Mahout
Version utilisée : 0.6
Quelques algorithmes utilisés
Naive bayes, random forest, regression logistique, k-means, arbres de décision

Des points positifs
Ligne de commande, facile à utiliser
Déjà installé dans la CDH

Des douleurs
Documentation inadaptée
Besoin du code source pour comprendre comment ça marche

Sorties textuelles
grep sur la sortie standard

Manque d’homogénéité
Formats d’entrée, docs

Le passage de 0.6 à 0.7 (migration de mineure CDH) a cassé nos jobs
Format d’entrée textuel supprimé au profit du vectoriel

Produit nettement moins mature que scikit ou R mais en amélioration.

19
© OCTO 2013
La migration du cluster
Passage de CDH 4.0.1 à CDH 4.1.2

Des leçons
Du travail en amont
Un SCM aurait fait gagner du temps
Suivre les préconisations !

20
© OCTO 2013
Le benchmark du cluster
Initialement en début de projet…

Terasort ? Plutôt HiBench

Au final, les jobs exécutés pendant le projet ont été
les meilleurs benchmarks

21
© OCTO 2013
Cluster en fin de mission
Cluster YARN opérationnel

Plusieurs outils testés au cours de l’exploration
HDFS occupé à 70%
Les jobs ne saturent pas complètement le cluster

22
© OCTO 2013
Les pièges
La tentation des machines « monstres de guerre »
Pour superviser, mes outils actuels suffisent !
Un SCM ? Pas le temps, SSH fera l’affaire !
Les logs c’est important, il faut tous les collecter
Conserver les paramètres mémoire par défaut
Conserver la configuration par défaut de HDFS
Conserver la configuration par défaut de MapReduce
Utiliser les formats de fichier par défaut
Benchmarker son cluster avec TeraSort

23
© OCTO 2013
La tentation des machines « monstres de guerre »
Le piège
Des ressources inutilisées
Un niveau de parallélisme insuffisant
Un surcoût aux performances non garanties

Comment l’éviter ?
Penser parallélisme
Notion de conteneur : 1 coeur / xGo de RAM / 1 Disque dur HDFS
Dimensionner pour du temps de traitement

24
© OCTO 2013
Pour superviser, mes outils actuels suffisent !
Le piège
L’utilisation d’outils type nagios seuls ne donne pas de détails sur
les métriques internes d’Hadoop
Lectures / écritures de HDFS par nœud
I/O et mémoire pendant l’exécution d’un job
Stop-the-world GC

Comment l’éviter ?
Hadoop embarque un connecteur Ganglia
Ambari permet d’avoir un vue cohérente de toutes ces métriques
Pensez aux développeurs !
Ils sont les mieux placé pour optimiser leurs jobs

25
© OCTO 2013
Un SCM ? Pas le temps, SSH fera l’affaire !
Le piège
Un petit cluster Hadoop, c’est 10 machines
Configuration et maintenance à la main difficile
Perte de temps

Comment l’éviter ?
Utiliser un SCM, Cloudera Manager ou Ambari

26
© OCTO 2013
Les logs c’est important, il faut tous les collecter
Le piège
500 mappers et 20 reducers
> 520 fichiers de logs à collecter sur tout le cluster

Peu d’informations utiles à long terme

Comment l’éviter ?
Sur les slaves : collecte uniquement des logs des Applications
Master
Collecte sur les masters

27
© OCTO 2013
Conserver les paramètres mémoire par défaut
Le piège
Ils ne sont pas optimisés pour votre cluster
Sous utilisation des ressources
Échecs possibles de certains jobs

Comment l’éviter ?
2Go pour les démons nodemanager et datanode
4Go pour le démon resourcemanager
4Go + 1Go par million de bloc HDFS pour le namenode
Secondary namenode configuré comme le namenode
Utiliser 4Go voire 8Go par container
Superviser

28
© OCTO 2013
Conserver la configuration par défaut de HDFS
Le piège
Pas optimisée pour un cluster
Les paramètres dépendent de vos données, de votre réseau, …

Comment l’éviter ?
Blocs d’au moins 128Mo
Utiliser la compression BLOCK par défaut
RECORD est pertinent pour pour des vidéos par exemple

Utiliser Gzip pour de la donnée archivée, Snappy pour des
données de travail
Ajuster les buffers d’I/O, le nombre de threads serveur, la bande
passante dédiée à la réplication des blocs, …
Superviser

29
© OCTO 2013
Conserver la configuration par défaut de MapReduce
Le piège
Pas optimisée pour un cluster
Les paramètres dépendent de votre utilisation

Comment l’éviter ?
Compresser les résultats intermédiaires avec Snappy
Utiliser le CapacityScheduler ou le FairScheduler
Indiquer à YARN des valeurs mémoire minimales et maximales
larges
Configurer avec des règles de calcul
Container / serveur : nb cores * 1,5 – 1
Mémoire : 8Go / core

Auditer l’usage réel pour optimiser les configurations

30
© OCTO 2013
Utiliser les formats de fichier par défaut
Le piège
Lenteur des jobs dû à un stockage inefficace
Plus d’espace utilisé que nécessaire

Comment l’éviter ?
Format de stockage : distinguer les usages
Base de données : Parquet / ORC
Données binaires : SeqFile

Compression : quelle fréquence d’accès ?
Donnée utilisée : Snappy
Archivage : GZip

31
© OCTO 2013
Benchmarker son cluster avec TeraSort
Le piège
Non représentatif de l’usage réel du cluster

Comment l’éviter ?
Utiliser le code de production

32
© OCTO 2013
Merci !
Des questions ?

33
© OCTO 2013

Contenu connexe

Tendances

Hadoop and friends : introduction
Hadoop and friends : introductionHadoop and friends : introduction
Hadoop and friends : introduction
fredcons
 
Introduction aux algorithmes map reduce
Introduction aux algorithmes map reduceIntroduction aux algorithmes map reduce
Introduction aux algorithmes map reduce
Mathieu Dumoulin
 

Tendances (20)

USI 2013 : 7 changements nécessaires pour sauver vos SI décisionnels
USI 2013 : 7 changements nécessaires pour sauver vos SI décisionnelsUSI 2013 : 7 changements nécessaires pour sauver vos SI décisionnels
USI 2013 : 7 changements nécessaires pour sauver vos SI décisionnels
 
Big Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows AzureBig Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows Azure
 
Tech day hadoop, Spark
Tech day hadoop, SparkTech day hadoop, Spark
Tech day hadoop, Spark
 
Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop
Casablanca Hadoop & Big Data Meetup - Introduction à HadoopCasablanca Hadoop & Big Data Meetup - Introduction à Hadoop
Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-Reduce
 
Big Data : Une Introduction
Big Data : Une IntroductionBig Data : Une Introduction
Big Data : Une Introduction
 
Hadoop and friends : introduction
Hadoop and friends : introductionHadoop and friends : introduction
Hadoop and friends : introduction
 
Cartographie du big data
Cartographie du big dataCartographie du big data
Cartographie du big data
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & Spark
 
Hadoop Hbase - Introduction
Hadoop Hbase - IntroductionHadoop Hbase - Introduction
Hadoop Hbase - Introduction
 
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...
 
Les technologies big data avec speech commentaries
Les technologies big data avec speech commentariesLes technologies big data avec speech commentaries
Les technologies big data avec speech commentaries
 
Stats web avec Hive chez Scoop.it
Stats web avec Hive chez Scoop.itStats web avec Hive chez Scoop.it
Stats web avec Hive chez Scoop.it
 
HADOOP + R
HADOOP + RHADOOP + R
HADOOP + R
 
Pj hug 07_04_2016
Pj hug 07_04_2016Pj hug 07_04_2016
Pj hug 07_04_2016
 
MapReduce: Traitement de données distribué à grande échelle simplifié
MapReduce: Traitement de données distribué à grande échelle simplifiéMapReduce: Traitement de données distribué à grande échelle simplifié
MapReduce: Traitement de données distribué à grande échelle simplifié
 
Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)
 
Introduction aux algorithmes map reduce
Introduction aux algorithmes map reduceIntroduction aux algorithmes map reduce
Introduction aux algorithmes map reduce
 
BigData_TP3 : Spark
BigData_TP3 : SparkBigData_TP3 : Spark
BigData_TP3 : Spark
 
Introduction spark
Introduction sparkIntroduction spark
Introduction spark
 

En vedette

Objetivos de los dm
Objetivos de los dmObjetivos de los dm
Objetivos de los dm
Marta
 
Mecanismos Ii
Mecanismos IiMecanismos Ii
Mecanismos Ii
Tecnowoa
 
La política social de la Unión Europea. Especial atención a la libre circul...
La política social de la Unión Europea.  Especial  atención a la libre circul...La política social de la Unión Europea.  Especial  atención a la libre circul...
La política social de la Unión Europea. Especial atención a la libre circul...
Universidad Autónoma de Barcelona
 
Constructivismo conceptos
Constructivismo conceptosConstructivismo conceptos
Constructivismo conceptos
IES El Rincón
 
Ismael y Daniel
Ismael y DanielIsmael y Daniel
Ismael y Daniel
luisel
 
Planificador de proyectos final pedazo
Planificador de proyectos final pedazoPlanificador de proyectos final pedazo
Planificador de proyectos final pedazo
LUZ ELENA GARCIA
 
La política de inmigración en el ámbito internacional, europeo, español y cat...
La política de inmigración en el ámbito internacional, europeo, español y cat...La política de inmigración en el ámbito internacional, europeo, español y cat...
La política de inmigración en el ámbito internacional, europeo, español y cat...
Universidad Autónoma de Barcelona
 
Las migraciones. Una mirada a la compleja realidad europea y española al inic...
Las migraciones. Una mirada a la compleja realidad europea y española al inic...Las migraciones. Una mirada a la compleja realidad europea y española al inic...
Las migraciones. Una mirada a la compleja realidad europea y española al inic...
Universidad Autónoma de Barcelona
 
Reiser education sexuelle3
Reiser education sexuelle3Reiser education sexuelle3
Reiser education sexuelle3
Gerard Houdinet
 
Agd consult presentation
Agd consult presentationAgd consult presentation
Agd consult presentation
Alain Duret
 

En vedette (20)

Ariel et le calcul1
Ariel et le calcul1Ariel et le calcul1
Ariel et le calcul1
 
Objetivos de los dm
Objetivos de los dmObjetivos de los dm
Objetivos de los dm
 
Poly
PolyPoly
Poly
 
Presse060
Presse060Presse060
Presse060
 
1ère thématique
1ère thématique1ère thématique
1ère thématique
 
Eval 2 inicial_jose_ruiz
Eval 2 inicial_jose_ruizEval 2 inicial_jose_ruiz
Eval 2 inicial_jose_ruiz
 
Expérimentation évaluation scénarisée
Expérimentation évaluation scénariséeExpérimentation évaluation scénarisée
Expérimentation évaluation scénarisée
 
Tessellations
TessellationsTessellations
Tessellations
 
CUSM - Présentation CUSM
CUSM - Présentation CUSMCUSM - Présentation CUSM
CUSM - Présentation CUSM
 
Mecanismos Ii
Mecanismos IiMecanismos Ii
Mecanismos Ii
 
La política social de la Unión Europea. Especial atención a la libre circul...
La política social de la Unión Europea.  Especial  atención a la libre circul...La política social de la Unión Europea.  Especial  atención a la libre circul...
La política social de la Unión Europea. Especial atención a la libre circul...
 
Constructivismo conceptos
Constructivismo conceptosConstructivismo conceptos
Constructivismo conceptos
 
Conexión Teorico 2 Datos
Conexión Teorico 2 DatosConexión Teorico 2 Datos
Conexión Teorico 2 Datos
 
Ismael y Daniel
Ismael y DanielIsmael y Daniel
Ismael y Daniel
 
Planificador de proyectos final pedazo
Planificador de proyectos final pedazoPlanificador de proyectos final pedazo
Planificador de proyectos final pedazo
 
La política de inmigración en el ámbito internacional, europeo, español y cat...
La política de inmigración en el ámbito internacional, europeo, español y cat...La política de inmigración en el ámbito internacional, europeo, español y cat...
La política de inmigración en el ámbito internacional, europeo, español y cat...
 
Las migraciones. Una mirada a la compleja realidad europea y española al inic...
Las migraciones. Una mirada a la compleja realidad europea y española al inic...Las migraciones. Una mirada a la compleja realidad europea y española al inic...
Las migraciones. Una mirada a la compleja realidad europea y española al inic...
 
Guide des réseaux sociaux
Guide des réseaux sociaux Guide des réseaux sociaux
Guide des réseaux sociaux
 
Reiser education sexuelle3
Reiser education sexuelle3Reiser education sexuelle3
Reiser education sexuelle3
 
Agd consult presentation
Agd consult presentationAgd consult presentation
Agd consult presentation
 

Similaire à Softshake 2013 - Yarn dans la vraie vie, retour d'expérience et bonnes pratiques tirées de sa mise en place pour un datalab

Mathias Herberts fait le retour d'expérience Hadoop au Crédit Mutuel Arkéa
Mathias Herberts fait le retour d'expérience Hadoop au Crédit Mutuel ArkéaMathias Herberts fait le retour d'expérience Hadoop au Crédit Mutuel Arkéa
Mathias Herberts fait le retour d'expérience Hadoop au Crédit Mutuel Arkéa
Modern Data Stack France
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
boulonvert
 

Similaire à Softshake 2013 - Yarn dans la vraie vie, retour d'expérience et bonnes pratiques tirées de sa mise en place pour un datalab (20)

Big Data ou comment retrouver une aiguille dans une botte de foin
Big Data ou comment retrouver une aiguille dans une botte de foinBig Data ou comment retrouver une aiguille dans une botte de foin
Big Data ou comment retrouver une aiguille dans une botte de foin
 
BigData_Technologies_PL.pdf
BigData_Technologies_PL.pdfBigData_Technologies_PL.pdf
BigData_Technologies_PL.pdf
 
BigData_Technologies_PL.pdf
BigData_Technologies_PL.pdfBigData_Technologies_PL.pdf
BigData_Technologies_PL.pdf
 
Perfug BOF devoxx2017.pptx
Perfug BOF devoxx2017.pptxPerfug BOF devoxx2017.pptx
Perfug BOF devoxx2017.pptx
 
Mathias Herberts fait le retour d'expérience Hadoop au Crédit Mutuel Arkéa
Mathias Herberts fait le retour d'expérience Hadoop au Crédit Mutuel ArkéaMathias Herberts fait le retour d'expérience Hadoop au Crédit Mutuel Arkéa
Mathias Herberts fait le retour d'expérience Hadoop au Crédit Mutuel Arkéa
 
Hadoop
HadoopHadoop
Hadoop
 
Spad big data - sfds - 2016
Spad   big data - sfds - 2016Spad   big data - sfds - 2016
Spad big data - sfds - 2016
 
ICT Journal - Dossier déduplication
ICT Journal - Dossier déduplicationICT Journal - Dossier déduplication
ICT Journal - Dossier déduplication
 
Big Data : SQL, NoSQL ? Pourquoi faire un choix ?
Big Data : SQL, NoSQL ? Pourquoi faire un choix ?Big Data : SQL, NoSQL ? Pourquoi faire un choix ?
Big Data : SQL, NoSQL ? Pourquoi faire un choix ?
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
 
Les performances sur des développements PhP
Les performances sur des développements PhPLes performances sur des développements PhP
Les performances sur des développements PhP
 
OpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse FaureOpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse Faure
 
20190520 - IBM Cloud Paris-Saclay Meetup - Hardis Group
20190520  - IBM Cloud Paris-Saclay Meetup - Hardis Group20190520  - IBM Cloud Paris-Saclay Meetup - Hardis Group
20190520 - IBM Cloud Paris-Saclay Meetup - Hardis Group
 
Drupal et le NoSQL - drupagora 2011
Drupal et le NoSQL - drupagora 2011Drupal et le NoSQL - drupagora 2011
Drupal et le NoSQL - drupagora 2011
 
Afterwork hadoop
Afterwork hadoopAfterwork hadoop
Afterwork hadoop
 
SAS Forum Soft Computing Théâtre
SAS Forum Soft Computing ThéâtreSAS Forum Soft Computing Théâtre
SAS Forum Soft Computing Théâtre
 
Sahara : Hadoop as Service avec OpenStack
Sahara : Hadoop as Service avec OpenStackSahara : Hadoop as Service avec OpenStack
Sahara : Hadoop as Service avec OpenStack
 
Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )
Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )
Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )
 
NetApp PartnersTour 2011 à Lille, mon point de vue
NetApp PartnersTour 2011 à Lille, mon point de vueNetApp PartnersTour 2011 à Lille, mon point de vue
NetApp PartnersTour 2011 à Lille, mon point de vue
 
Introduction à HDFS
Introduction à HDFSIntroduction à HDFS
Introduction à HDFS
 

Plus de OCTO Technology

Plus de OCTO Technology (20)

Le Comptoir OCTO - Se conformer à la CSRD : un levier d'action insoupçonné
Le Comptoir OCTO - Se conformer à la CSRD : un levier d'action insoupçonnéLe Comptoir OCTO - Se conformer à la CSRD : un levier d'action insoupçonné
Le Comptoir OCTO - Se conformer à la CSRD : un levier d'action insoupçonné
 
Le Comptoir OCTO - MLOps : Les patterns MLOps dans le cloud
Le Comptoir OCTO - MLOps : Les patterns MLOps dans le cloudLe Comptoir OCTO - MLOps : Les patterns MLOps dans le cloud
Le Comptoir OCTO - MLOps : Les patterns MLOps dans le cloud
 
La Grosse Conf 2024 - Philippe Stepniewski -Atelier - Live coding d'une base ...
La Grosse Conf 2024 - Philippe Stepniewski -Atelier - Live coding d'une base ...La Grosse Conf 2024 - Philippe Stepniewski -Atelier - Live coding d'une base ...
La Grosse Conf 2024 - Philippe Stepniewski -Atelier - Live coding d'une base ...
 
La Grosse Conf 2024 - Philippe Prados - Atelier - RAG : au-delà de la démonst...
La Grosse Conf 2024 - Philippe Prados - Atelier - RAG : au-delà de la démonst...La Grosse Conf 2024 - Philippe Prados - Atelier - RAG : au-delà de la démonst...
La Grosse Conf 2024 - Philippe Prados - Atelier - RAG : au-delà de la démonst...
 
Le Comptoir OCTO - Maîtriser le RAG : connecter les modèles d’IA génératives ...
Le Comptoir OCTO - Maîtriser le RAG : connecter les modèles d’IA génératives ...Le Comptoir OCTO - Maîtriser le RAG : connecter les modèles d’IA génératives ...
Le Comptoir OCTO - Maîtriser le RAG : connecter les modèles d’IA génératives ...
 
OCTO Talks - Les IA s'invitent au chevet des développeurs
OCTO Talks - Les IA s'invitent au chevet des développeursOCTO Talks - Les IA s'invitent au chevet des développeurs
OCTO Talks - Les IA s'invitent au chevet des développeurs
 
OCTO Talks - Lancement du livre Culture Test
OCTO Talks - Lancement du livre Culture TestOCTO Talks - Lancement du livre Culture Test
OCTO Talks - Lancement du livre Culture Test
 
Le Comptoir OCTO - Green AI, comment éviter que votre votre potion magique d’...
Le Comptoir OCTO - Green AI, comment éviter que votre votre potion magique d’...Le Comptoir OCTO - Green AI, comment éviter que votre votre potion magique d’...
Le Comptoir OCTO - Green AI, comment éviter que votre votre potion magique d’...
 
OCTO Talks - State of the art Architecture dans les frontend web
OCTO Talks - State of the art Architecture dans les frontend webOCTO Talks - State of the art Architecture dans les frontend web
OCTO Talks - State of the art Architecture dans les frontend web
 
Refcard GraphQL
Refcard GraphQLRefcard GraphQL
Refcard GraphQL
 
Comptoir OCTO ALD Automotive/Leaseplan
Comptoir OCTO ALD Automotive/LeaseplanComptoir OCTO ALD Automotive/Leaseplan
Comptoir OCTO ALD Automotive/Leaseplan
 
Le Comptoir OCTO - Comment optimiser les stocks en linéaire par la Data ?
Le Comptoir OCTO - Comment optimiser les stocks en linéaire par la Data ? Le Comptoir OCTO - Comment optimiser les stocks en linéaire par la Data ?
Le Comptoir OCTO - Comment optimiser les stocks en linéaire par la Data ?
 
Le Comptoir OCTO - Retour sur 5 ans de mise en oeuvre : Comment le RGPD a réi...
Le Comptoir OCTO - Retour sur 5 ans de mise en oeuvre : Comment le RGPD a réi...Le Comptoir OCTO - Retour sur 5 ans de mise en oeuvre : Comment le RGPD a réi...
Le Comptoir OCTO - Retour sur 5 ans de mise en oeuvre : Comment le RGPD a réi...
 
Le Comptoir OCTO - Affinez vos forecasts avec la planification distribuée et...
Le Comptoir OCTO -  Affinez vos forecasts avec la planification distribuée et...Le Comptoir OCTO -  Affinez vos forecasts avec la planification distribuée et...
Le Comptoir OCTO - Affinez vos forecasts avec la planification distribuée et...
 
Le Comptoir OCTO - La formation au cœur de la stratégie d’éco-conception
Le Comptoir OCTO - La formation au cœur de la stratégie d’éco-conceptionLe Comptoir OCTO - La formation au cœur de la stratégie d’éco-conception
Le Comptoir OCTO - La formation au cœur de la stratégie d’éco-conception
 
Le Comptoir OCTO - Une vision de plateforme sans leadership tech n’est qu’hal...
Le Comptoir OCTO - Une vision de plateforme sans leadership tech n’est qu’hal...Le Comptoir OCTO - Une vision de plateforme sans leadership tech n’est qu’hal...
Le Comptoir OCTO - Une vision de plateforme sans leadership tech n’est qu’hal...
 
Le Comptoir OCTO - L'avenir de la gestion du bilan carbone : les solutions E...
Le Comptoir OCTO - L'avenir de la gestion du bilan carbone :  les solutions E...Le Comptoir OCTO - L'avenir de la gestion du bilan carbone :  les solutions E...
Le Comptoir OCTO - L'avenir de la gestion du bilan carbone : les solutions E...
 
Le Comptoir OCTO - Continuous discovery et continuous delivery pour construir...
Le Comptoir OCTO - Continuous discovery et continuous delivery pour construir...Le Comptoir OCTO - Continuous discovery et continuous delivery pour construir...
Le Comptoir OCTO - Continuous discovery et continuous delivery pour construir...
 
RefCard Tests sur tous les fronts
RefCard Tests sur tous les frontsRefCard Tests sur tous les fronts
RefCard Tests sur tous les fronts
 
RefCard RESTful API Design
RefCard RESTful API DesignRefCard RESTful API Design
RefCard RESTful API Design
 

Softshake 2013 - Yarn dans la vraie vie, retour d'expérience et bonnes pratiques tirées de sa mise en place pour un datalab

  • 1. YARN dans la vraie vie Retour d’expérience et bonnes pratiques tirées de sa mise en place pour un datalab 1 Rémy SAISSY © OCTO 2013 2012
  • 3. Qui suis je ? Rémy SAISSY, OCTO Technology Responsable de la R&D Hadoop Architecte spécialisé sur les sujets Big Data @RemySaissy 3 © OCTO 2013
  • 4. Contexte Fin 2012 Durée : 3 mois Equipe : 10 personnes Trois enjeux majeurs : Construire une plateforme Hadoop opérationnelle Montée en compétence de l’équipe Préconisations pour une plateforme industrielle 4 © OCTO 2013
  • 5. Caractéristiques de l’équipe Coté client 2 managers 2 ingénieurs logiciel 4 analystes Coté OCTO 1 directeur de mission 2 architectes Equipe colocalisée 5 © OCTO 2013
  • 6. Caractéristiques du cluster 1 rack, 12 serveurs 1 nœud pour les outils, 1 autre pour l’anonymisation 2 nœuds master namenode / resourcemanager secondary namenode 8 nœuds slave : datanode et nodemanager Masters Slaves Accès Masters et Outils Outils 6 © OCTO 2013
  • 7. Méthodologie de travail Une méthodologie itérative Pourquoi ? Temps limité Projet dense Infra : Mise en place et configuration du cluster Exploration des possibilités des outils d’Hadoop Transfert de compétences Comment ? Co-localisation de l’équipe opérationnelle Mise au point et priorisation d’un backlog Réunion d’avancement hebdomadaire On y aborde les réussites et les points bloquants On y valide le travail réalisé On y ajuste le backlog pour la semaine suivante Objectifs Favoriser un bon suivi de l’avancement Favoriser les échanges en direct Eviter les blocages, les non dits 7 © OCTO 2013
  • 9. Mise en place du cluster Déploiement d’Hadoop Un cluster de CentOS disponibles Accès SSH en root Il ne reste plus qu’à installer ! Oui, mais… A l’attaque ! 9 © OCTO 2013
  • 10. Mise en place du cluster Déploiement d’Hadoop Serveurs fournis par la DSI Configuration matérielle « imposée » Taille de certaines partitions inadaptées Pas d’accès internet Firewalls Résultat Partitions : des adaptations « crades » à base de liens symboliques Repartitionnement en GPT des disques de stockage Accès internet : création d’un mirroir local Firewalls : demandes d’ouvertures de ports Coût : Un peu plus d’une semaine 10 © OCTO 2013
  • 11. Mise en place du cluster Déploiement d’Hadoop Beaucoup de petits détails qui comptent Kernel : swapiness, overcommit, hugepages, … Ext4 : pas de blocs réservés, noatime, nodiratime, … Hadoop : taille des blocs HDFS, réplication, mémoire par composant ? Résultat Pour le transfert de compétences : très positif Pour le projet : démarrage très lent. Impact négatif Un SCM au démarrage peut faire gagner beaucoup de temps ! 11 © OCTO 2013
  • 12. Mise en place du cluster Déploiement des outils Relativement facile une fois Hadoop correctement installé Peu d’impact sur le cluster en lui même Ne déployer que le nécessaire 12 © OCTO 2013
  • 13. Mise en place du cluster Déploiement des outils A chaque outil sa configuration Complexité à tout maintenir Configuration parfois complexe Des IHM globalement trop basiques La ligne de commande reste le plus complet 13 © OCTO 2013
  • 14. Les alimentations de données Constat en fin de mission Ne pas négliger le travail préparatoire ! 14 © OCTO 2013
  • 15. L’analyse des données Beaucoup de travail en amont Un cluster s’optimise au contact de la réalité Limites des outils Ajustement de l’ordonnanceur Configuration mémoire Configuration d’HDFS Python est ici un bon allié 15 © OCTO 2013
  • 16. L’analyse des données Hive Points positifs Globalement compatible avec les requêtes SQL utilisées Points négatifs Bug surprenant sur les dates Trop lent Après 1 mois de CREATE TABLE, beaucoup de blocs sous remplis 16 © OCTO 2013
  • 17. L’analyse des données Pig Points positifs Les analystes y voyait un « SAS like » Points négatifs Trop lent Pas d’intégration Hcatalog dans la CDH à l’époque Son utilisation a tourné court rapidement. 17 © OCTO 2013
  • 18. L’analyse des données Impala Tests rapides effectués sur la version bêta Au moment de la sortie d’Impala Points négatifs Lent Plantages du shell Impala Certaines requêtes retournaient des résultats invalides Problèmes corrigés depuis mais une leçon de cela : Qu’un éditeur communique sur un produit ne signifie pas que ce produit est utilisable ! 18 © OCTO 2013
  • 19. L’analyse des données Mahout Version utilisée : 0.6 Quelques algorithmes utilisés Naive bayes, random forest, regression logistique, k-means, arbres de décision Des points positifs Ligne de commande, facile à utiliser Déjà installé dans la CDH Des douleurs Documentation inadaptée Besoin du code source pour comprendre comment ça marche Sorties textuelles grep sur la sortie standard Manque d’homogénéité Formats d’entrée, docs Le passage de 0.6 à 0.7 (migration de mineure CDH) a cassé nos jobs Format d’entrée textuel supprimé au profit du vectoriel Produit nettement moins mature que scikit ou R mais en amélioration. 19 © OCTO 2013
  • 20. La migration du cluster Passage de CDH 4.0.1 à CDH 4.1.2 Des leçons Du travail en amont Un SCM aurait fait gagner du temps Suivre les préconisations ! 20 © OCTO 2013
  • 21. Le benchmark du cluster Initialement en début de projet… Terasort ? Plutôt HiBench Au final, les jobs exécutés pendant le projet ont été les meilleurs benchmarks 21 © OCTO 2013
  • 22. Cluster en fin de mission Cluster YARN opérationnel Plusieurs outils testés au cours de l’exploration HDFS occupé à 70% Les jobs ne saturent pas complètement le cluster 22 © OCTO 2013
  • 23. Les pièges La tentation des machines « monstres de guerre » Pour superviser, mes outils actuels suffisent ! Un SCM ? Pas le temps, SSH fera l’affaire ! Les logs c’est important, il faut tous les collecter Conserver les paramètres mémoire par défaut Conserver la configuration par défaut de HDFS Conserver la configuration par défaut de MapReduce Utiliser les formats de fichier par défaut Benchmarker son cluster avec TeraSort 23 © OCTO 2013
  • 24. La tentation des machines « monstres de guerre » Le piège Des ressources inutilisées Un niveau de parallélisme insuffisant Un surcoût aux performances non garanties Comment l’éviter ? Penser parallélisme Notion de conteneur : 1 coeur / xGo de RAM / 1 Disque dur HDFS Dimensionner pour du temps de traitement 24 © OCTO 2013
  • 25. Pour superviser, mes outils actuels suffisent ! Le piège L’utilisation d’outils type nagios seuls ne donne pas de détails sur les métriques internes d’Hadoop Lectures / écritures de HDFS par nœud I/O et mémoire pendant l’exécution d’un job Stop-the-world GC Comment l’éviter ? Hadoop embarque un connecteur Ganglia Ambari permet d’avoir un vue cohérente de toutes ces métriques Pensez aux développeurs ! Ils sont les mieux placé pour optimiser leurs jobs 25 © OCTO 2013
  • 26. Un SCM ? Pas le temps, SSH fera l’affaire ! Le piège Un petit cluster Hadoop, c’est 10 machines Configuration et maintenance à la main difficile Perte de temps Comment l’éviter ? Utiliser un SCM, Cloudera Manager ou Ambari 26 © OCTO 2013
  • 27. Les logs c’est important, il faut tous les collecter Le piège 500 mappers et 20 reducers > 520 fichiers de logs à collecter sur tout le cluster Peu d’informations utiles à long terme Comment l’éviter ? Sur les slaves : collecte uniquement des logs des Applications Master Collecte sur les masters 27 © OCTO 2013
  • 28. Conserver les paramètres mémoire par défaut Le piège Ils ne sont pas optimisés pour votre cluster Sous utilisation des ressources Échecs possibles de certains jobs Comment l’éviter ? 2Go pour les démons nodemanager et datanode 4Go pour le démon resourcemanager 4Go + 1Go par million de bloc HDFS pour le namenode Secondary namenode configuré comme le namenode Utiliser 4Go voire 8Go par container Superviser 28 © OCTO 2013
  • 29. Conserver la configuration par défaut de HDFS Le piège Pas optimisée pour un cluster Les paramètres dépendent de vos données, de votre réseau, … Comment l’éviter ? Blocs d’au moins 128Mo Utiliser la compression BLOCK par défaut RECORD est pertinent pour pour des vidéos par exemple Utiliser Gzip pour de la donnée archivée, Snappy pour des données de travail Ajuster les buffers d’I/O, le nombre de threads serveur, la bande passante dédiée à la réplication des blocs, … Superviser 29 © OCTO 2013
  • 30. Conserver la configuration par défaut de MapReduce Le piège Pas optimisée pour un cluster Les paramètres dépendent de votre utilisation Comment l’éviter ? Compresser les résultats intermédiaires avec Snappy Utiliser le CapacityScheduler ou le FairScheduler Indiquer à YARN des valeurs mémoire minimales et maximales larges Configurer avec des règles de calcul Container / serveur : nb cores * 1,5 – 1 Mémoire : 8Go / core Auditer l’usage réel pour optimiser les configurations 30 © OCTO 2013
  • 31. Utiliser les formats de fichier par défaut Le piège Lenteur des jobs dû à un stockage inefficace Plus d’espace utilisé que nécessaire Comment l’éviter ? Format de stockage : distinguer les usages Base de données : Parquet / ORC Données binaires : SeqFile Compression : quelle fréquence d’accès ? Donnée utilisée : Snappy Archivage : GZip 31 © OCTO 2013
  • 32. Benchmarker son cluster avec TeraSort Le piège Non représentatif de l’usage réel du cluster Comment l’éviter ? Utiliser le code de production 32 © OCTO 2013
  • 33. Merci ! Des questions ? 33 © OCTO 2013