Lab Azure Big Data (4) : utilisation de Pig
Dans le cadre d’un programme de “readiness” interne, j’ai participé à la création de contenu autour du Big Data. Comme j’ai eu de nombreuses demandes pour récupérer le contenu que j’ai créé, je me suis dit que ça pourrait peut-être intéresser d’autres personnes. Donc je partage sur mon blog !
Ce contenu est constitué d’une série d’articles qui va de la création d’un cluster HDInsight à l’exploitation des données.
Sommaire des articles
- Création d’un cluster HDInsight
- Utilisation de MapReduce
- Utilisation de Hive
- Utilisation de Pig
- Analyses des données avec Power BI
(Cet article reprend en grande partie celui que j’ai déjà publié ici, mis à jour avec le nouveau portail Azure)
Préparation des données
Dans ce lab, nous allons faire l’analyse des logs du site Wikipedia. Ces logs sont accessibles à l’adresse suivante :
https://dumps.wikimedia.org/other/pageviews/2017/2017-01/
Nous allons récupérer 2 fichiers de logs, mais il est possible d’en récupérer plus.
Pour récupérer les données, il est possible de faire un WGET depuis « Bash on Ubuntu on Windows».
Création d’un répertoire de données
Avec putty ou « Bash on Ubuntu on Windows», connectez-vous à votre cluster (voir le lab 01_HdInsight). Puis créez un répertoire avec la commande suivante :
hadoop fs -mkdir /example/data/wikipedialogs
Côté Data Lake Store, le dossier est bien créé :
Récupération des données Wikipedia
ATTENTION !! Ne prenez que des fichiers commençant par « pageviews »
Dans cet exemple, nous allons prendre les 2 fichiers suivants :
Nous allons donc passer les 2 commandes suivantes :
wget https://dumps.wikimedia.org/other/pageviews/2017/2017-01/pageviews-20170127-070000.gz
wget https://dumps.wikimedia.org/other/pageviews/2017/2017-01/pageviews-20170127-080000.gz
Les fichiers sont téléchargés dans le cluster, ce qui signifie que si nous détruisons le cluster, les fichiers seront perdus. Nous allons donc copier les fichiers du cluster vers le Data Lake Store. Nous allons utiliser la commande copyFromLocal
hadoop fs -copyFromLocal pageviews-20170127-*.gz /example/data/wikipedialogs
Si maintenant on regarde du côté de Data Lake Store, nous retrouvons bien nos 2 fichiers :
Traitement des données
Maintenant que nous avons récupéré et sécurisé nos données, nous allons pouvoir les exploiter. Dans cet exemple, nous allons utiliser le script pig suivant.
Attention, sur la première ligne, de bien pointer vers le bon répertoire et les bons fichiers.
records = load '/example/data/wikipedialogs/pageviews-*.gz' using PigStorage(' ') as (project:chararray, page:chararray, requests:int, size:int);
filtered_records = filter records by (project == 'en') or (project == 'fr');
records_by_page = group filtered_records by (page, project);
sum_pages = foreach records_by_page generate group, SUM(filtered_records.requests);
result = order sum_pages by $1 desc;
result_limit = limit result 1000;
store result_limit into 'output-wikipedialogs';
Nous allons créer un fichier dans lequel nous allons copier le script ci-dessous.
Dans la console, entrez la commande :
vi script.pig
Une copie d’écran ci-dessous :
Vous entrez donc dans l’éditeur de texte vi (doc de « vi » ici) :
Pour passer en mode insertion, appuyez sur « i »
Collez le script dans l’éditeur de texte :
Pour enregistrer le fichier, il faut passer en mode commande en cliquant sur la touche « esc ».
Pour quitter vi, utilisez la commande suivante :
« :x » puis la touche « return »
Maintenant que nous avons créé un fichier avec le script, nous allons l’exécuter avec la commande :
pig -f script.pig
Le script va s’exécuter et la progression pourra être suivie depuis la console
Monitoring du script pig
Pour monitorer l’exécution du script, connectez-vous sur votre cluster HDInsight depuis le portail Azure. Puis cliquez sur « Yarn»
Dans le dashboard Yarn, sur la gauche, cliquez sur running afin de voir l’avancement d’exécution du script PIG.
Analyse des données avec Power BI
Les fichiers récupérés suite au traitement sont stockés dans Data Lake Store :
Pour analyser les données, nous allons utiliser Power BI Desktop. Cette activité sera détaillée dans le prochain lab.