Paris Spark meetup : Extension de Spark (Tachyon / Spark JobServer) par jlamiel
Un introduction à Pig
1. 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
2. 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
3. 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
4. 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 ?
5. 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
6. 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
7. 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
8. 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
9. 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
10. 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
11. 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;
12. 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