Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation
Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
HUG France SL2013 – Mai 2013
Introduction à Pig
Traiter les Big Data
très, très simplement...
Charly CLAIRMONT
Altic - http://altic.org
charly.clairmont@altic.org
@egwada
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale
- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
C'est quoi Pig ?
● Créé chez Yahoo!
● Une plate-forme très simple pour traiter les
Big Data
● PigLatin : langage dont le traitement est en
flux, simple, proche du scripting, très efficace
● Pig Engine : parse, optimise et exécute
automatiquement les scripts PigLatin comme
une série de jobs MapReduce au sein d'un
cluster 'Hadoop
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale
- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Qu'apporte Pig ?
● PigLatin est
● un langage de haut niveau,
● facile à comprendre,
● orienté traitement par flux (data flow)
● Il fournit les opérations standards pour la manipulation de
données (filters, joins, ordering) , des types primitifs, des types
complexe (tuples, bags, maps)
Bien plus simple à comprendre pour un analyste que du
MapReduce
Il ouvre Hadoop au non-programmeur-java
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale
- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
WordCount en PigLatin ?
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale
- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Si vous n'êtes pas encore convaincu ?
● Augmente dramatiquement la productivité
● 10 lignes en Pig = 200 lignes en Java
● 15 minutes en Pig = 4 heures en Java
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale
- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Top 5 des pages les plus vues en PigLatin
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale
- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Les autres bénéfices de Pig...
● Gère tous les détails d'un job de la soumission jusqu'à son exécution
et ce même sur des flux de données très complexes
● Écrire des jobs qui n'ont pas d'adhérence à l'API Java d'Hadoop
● Facile à étendre avec les UDF
● Possibilité d'embarqué
– Python
– JavaScript
● Intégré à HBase
Communauté très active
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale
- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Comment fonction Pig ?
HDFS
MapReduce
Parser
Optimiser
Plan d'exécution
Soumettre à Hadoop
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale
- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
A vos éditeurs !
● Eclpise
● PigEditor
● Pig-pen
● Pig-Eclipse
● Plugin pour
● VIM
● Emacs,
● Textmate
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale
- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Comment utiliser Pig ?
● Mode local
● Ni Hadoop, Ni HDFS requis
● Système de fichiers local
● Faciles à utiliser pour « prototyper », développer,
débugger
● Mode Cluster
● Sait exécuter le même job qu'en local
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale
- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Exécuter un script Pig
● Exécuter un script pig directement – mode batch
$ pig -p input=someInput script.pig
● script.pig
Lines = LOAD '$input' AS (...);
● Grunt, le shell pour Pig – mode interactif
grunt> Lines = LOAD '/data/books/' AS (line: chararray);
grunt> Unique = DISTINCT Lines;
grunt> DUMP Unique;
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation
Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
HUG France SL2013 – Mai 2013
Introduction à Pig
Merci !
Charly CLAIRMONT
Altic - http://altic.org
charly.clairmont@altic.org
@egwada

Un introduction à Pig

  • 1.
    Ce support estmis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/ HUG France SL2013 – Mai 2013 Introduction à Pig Traiter les Big Data très, très simplement... Charly CLAIRMONT Altic - http://altic.org charly.clairmont@altic.org @egwada
  • 2.
    Ce support estmis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/ C'est quoi Pig ? ● Créé chez Yahoo! ● Une plate-forme très simple pour traiter les Big Data ● PigLatin : langage dont le traitement est en flux, simple, proche du scripting, très efficace ● Pig Engine : parse, optimise et exécute automatiquement les scripts PigLatin comme une série de jobs MapReduce au sein d'un cluster 'Hadoop
  • 3.
    Ce support estmis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/ Qu'apporte Pig ? ● PigLatin est ● un langage de haut niveau, ● facile à comprendre, ● orienté traitement par flux (data flow) ● Il fournit les opérations standards pour la manipulation de données (filters, joins, ordering) , des types primitifs, des types complexe (tuples, bags, maps) Bien plus simple à comprendre pour un analyste que du MapReduce Il ouvre Hadoop au non-programmeur-java
  • 4.
    Ce support estmis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/ WordCount en PigLatin ?
  • 5.
    Ce support estmis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/ Si vous n'êtes pas encore convaincu ? ● Augmente dramatiquement la productivité ● 10 lignes en Pig = 200 lignes en Java ● 15 minutes en Pig = 4 heures en Java
  • 6.
    Ce support estmis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/ Top 5 des pages les plus vues en PigLatin
  • 7.
    Ce support estmis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/ Les autres bénéfices de Pig... ● Gère tous les détails d'un job de la soumission jusqu'à son exécution et ce même sur des flux de données très complexes ● Écrire des jobs qui n'ont pas d'adhérence à l'API Java d'Hadoop ● Facile à étendre avec les UDF ● Possibilité d'embarqué – Python – JavaScript ● Intégré à HBase Communauté très active
  • 8.
    Ce support estmis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/ Comment fonction Pig ? HDFS MapReduce Parser Optimiser Plan d'exécution Soumettre à Hadoop
  • 9.
    Ce support estmis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/ A vos éditeurs ! ● Eclpise ● PigEditor ● Pig-pen ● Pig-Eclipse ● Plugin pour ● VIM ● Emacs, ● Textmate
  • 10.
    Ce support estmis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/ Comment utiliser Pig ? ● Mode local ● Ni Hadoop, Ni HDFS requis ● Système de fichiers local ● Faciles à utiliser pour « prototyper », développer, débugger ● Mode Cluster ● Sait exécuter le même job qu'en local
  • 11.
    Ce support estmis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/ Exécuter un script Pig ● Exécuter un script pig directement – mode batch $ pig -p input=someInput script.pig ● script.pig Lines = LOAD '$input' AS (...); ● Grunt, le shell pour Pig – mode interactif grunt> Lines = LOAD '/data/books/' AS (line: chararray); grunt> Unique = DISTINCT Lines; grunt> DUMP Unique;
  • 12.
    Ce support estmis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/ HUG France SL2013 – Mai 2013 Introduction à Pig Merci ! Charly CLAIRMONT Altic - http://altic.org charly.clairmont@altic.org @egwada