Une plongée profonde dans le porc



Cet article de blog est une plongée en profondeur dans Pig et ses fonctions. Vous trouverez une démonstration de la façon dont vous pouvez travailler sur Hadoop en utilisant Pig sans dépendance à Java.

L'une des principales raisons pour lesquelles la popularité de Hadoop a explosé ces derniers temps est le fait que des fonctionnalités telles que Pig et Hive s'exécutent en plus, permettant aux non-programmeurs de disposer de fonctionnalités auparavant exclusives aux programmeurs Java. Ces fonctionnalités étaient une conséquence de la demande croissante de professionnels Hadoop. Les autres fonctionnalités utilisées par les professionnels Hadoop issus de milieux non Java sont Flume, Sqoop, HBase et Oozie.





Pour comprendre pourquoi vous n'avez pas besoin de Java pour apprendre Hadoop, consultez ce blog .

1Histoire du porc



Voyons comment fonctionnent ces fonctionnalités.

Nous savons tous que la connaissance de la programmation est une nécessité pour écrire des codes MapReduce. Mais que se passe-t-il si j'ai un outil qui peut faire le codage si je voulais simplement fournir les détails? C'est là que Pig expose sa puissance musculaire. Pig utilise une plate-forme appelée Pig Latin qui extrait la programmation de l'idiome Java MapReduce dans une notation qui rend la programmation MapReduce de haut niveau, similaire à celle de SQL pour les systèmes SGBDR. Les codes écrits en Pig Latin MapReduce sont automatiquement convertis en fonctions MapReduce équivalentes. N'est-ce pas génial? Un autre fait époustouflant est que seules 10 lignes de porc sont nécessaires pour remplacer 200 lignes de Java.



10 lignes de Pig = 200 lignes de Java

Cela signifie non seulement que les professionnels non-Java utilisent Hadoop, mais témoigne également du fait que Pig est utilisé par un nombre égal de développeurs techniques.

De plus, si vous souhaitez écrire votre propre code MapReduce, vous pouvez le faire dans l'un des langages tels que Perl, Python, Ruby ou C. Certaines opérations de base que nous pouvons effectuer sur n'importe quel ensemble de données à l'aide de Pig sont Grouper, Join, Filter et Sort. . Ces opérations peuvent être effectuées sur des données structurées, non structurées et également semi-structurées. Ils fournissent un moyen ad hoc pour créer et exécuter des travaux MapReduce sur de très grands ensembles de données.

Ensuite, comprenons Hive. Il s'agit d'un cadre d'entreposage de données open source à l'échelle du péta-octet basé sur Hadoop pour la synthèse, la requête et l'analyse des données. Hive fournit une interface de type SQL pour Hadoop. Vous pouvez utiliser Hive pour lire et écrire des fichiers sur Hadoop et exécuter vos rapports à partir d'un outil BI. Certaines fonctionnalités typiques de Hadoop sont:

Permettez-moi de vous montrer une démo utilisant Pig sur l'ensemble de données Clickstream
Nous utiliserons ces données Clickstream et effectuerons des transformations, des jointures et des regroupements.

ClickStream est une série de clics de souris effectués par un utilisateur tout en accédant à Internet, en particulier pour évaluer les intérêts d’une personne à des fins de marketing. Il est principalement utilisé par les sites Web de vente au détail en ligne comme Flipkart et Amazon qui suivent vos activités pour générer des recommandations. L'ensemble de données Clickstream que nous avons utilisé contient les champs suivants:

1. Type de langue pris en charge par l'application Web

2. Type de navigateur

3. Type de connexion

4. ID du pays

5. Horodatage

6. URL

7. Statut de l'utilisateur

8. Type d'utilisateur

Cela ressemblera à ceci avec les champs appropriés.

Vous trouverez ci-dessous la liste des types de navigateurs utilisés par diverses personnes lors de la navigation sur un site Web particulier. Parmi la liste se trouvent des navigateurs comme Internet Explorer, Google Chrome, Lynx, etc.

Le type de connexion Internet peut être Lan / Modem / Wifi. Voir l'image ci-dessous pour la liste complète:

Dans l'image suivante, vous trouverez la liste des pays d'où le site Web a attiré du public avec leurs identifiants.

Une fois que nous avons rassemblé tous les ensembles de données, nous devons lancer le shell Pig's Grunt, qui est lancé pour exécuter les commandes Pig.

La première chose que nous devons faire lors du lancement du shell Grunt est de charger les données Clickstream dans la relation de Pig. Une relation n'est rien d'autre qu'une table. Voici la commande que nous utilisons pour charger un fichier résidant dans HDFS sur la relation de Pig.

Nous pouvons vérifier le schéma de la relation par la commande describe click_stream.

Nous devons maintenant ajouter les fichiers de référence qui contiendront des détails sur la liste des pays avec leurs identifiants et les différents types de navigateurs ainsi que leurs identifiants.

Nous avons maintenant deux fichiers de référence, mais ils doivent être connectés pour former une relation.
Nous exécutons une commande connection_ref pour indiquer le type de connexion.

Maintenant que nous avons une connexion fonctionnelle et une relation établie, nous allons vous montrer comment nous pouvons transformer ces données.
Pour chaque enregistrement dans Clickstream, nous générerons un nouvel enregistrement dans un format différent, c'est-à-dire les données transformées. Le nouveau format comprendra des champs tels que TimeStamp, le type de navigateur, les identifiants de pays et quelques autres.

Nous pouvons effectuer une opération de filtrage pour réduire le Big Data. Les différents types d'utilisateurs sont les administrateurs, les invités ou les robots. Dans notre démo, j'ai filtré la liste des invités.

Si vous vous en souvenez, l'ID de pays est présent dans le Clickstream et nous avons chargé un fichier country_ref contenant les noms des pays ainsi que leurs ID. Nous pouvons ainsi effectuer une opération Join entre les deux fichiers et fusionner les données pour en tirer des insights.

Si nous avons joint les données, nous pouvons connaître les différents pays d'où les utilisateurs se trouvent par regroupement. Une fois que nous avons ces données, nous pouvons effectuer une opération de comptage pour identifier le nombre d'utilisateurs d'un pays particulier.

Il n'est pas sorcier de tirer des informations du Big Data. Ce ne sont que quelques-unes des nombreuses fonctionnalités que j'ai implémentées et avec des outils comme Hive, Hbase, Oozie, Sqoop et Flume, il reste encore un trésor de données à explorer. Donc, ceux d’entre vous qui vous empêchent d’apprendre Hadoop, il est temps de changer.

Vous avez une question pour nous? Veuillez les mentionner dans la section commentaires et nous vous recontacterons.

Articles Similaires:

démarrer avec mysql workbench

4 façons d'utiliser R et Hadoop ensemble

Tout sur Cloudera Certified Developer for Apache Hadoop