Le 14 septembre 2017, nous avons publié une version actualisée de notre Politique de confidentialité. En utilisant video2brain.com vous vous engagez à respecter ces documents mis à jour. Veuillez donc prendre quelques minutes pour les consulter.

L'essentiel de Hadoop

Accéder à HDFS avec WebHDFS

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Utilisez l'API HTTP (HyperText Transfer Protocol) de WebHDFS afin d'accéder aux données en lecture et en écriture dans tout langage. Interagissez avec votre cluster HDFS grâce à des appels cURL.
06:38

Transcription

À présent que nous avons vu comment directement accéder au contenu de l'HDFS que ce soit en Java ou en ligne de commande. Nous allons voir comment y accéder de n'importe quelle application et dans n'importe quel langage de programmation grâce à l'API HTTP. En effet, l'API HTTP permet à n'importe quel langage d’interroger HDFS et d'y avoir accès, que ce soit en lecture ou en écriture. Alors, en fait, il y a deux services fournissant cette API HTTP, il s'agit des services Web HDFS et du service Http.fs Le Web HDFS est une option à activer sur le NameNode, quant à lui le Http.fs est un service séparé qui présente l'avantage de gérer l'authentification et ne fais pas toutes les requêtes sur le même utilisateur. Dans le cadre de la QuickStart VM de Cloudera, le service Web HDFS est activé automatiquement sur le NameNode et donc, peut être utilisé. Pour l'utiliser, on va tout simplement utiliser les requête Curl en HTTP et on va faire notamment un curl -i pour voir les header de la réponse, sur http:// et on va contacter le cluster. Le nom du cluster, c'est quickstart.cloudera, Cloudera, c'est le nom de la machine locale, le port 50070, c'est le port du Web HDFS, et ensuite, on continue avec le port Web HDFS v1. Ceci est toujours la base de chacune de nos requêtes vers le NameNode. Ensuite, on va rajouter le path que l'on veut voir, donc, ici, on va faire juste le / et l'opération directement en parallèle. Par exemple, on va directement demander l'opération LISTSTATUS, qui va permettre de voir les fichiers présents à la racine de l'HDFS. Ça va nous ressortir une réponse en Json directement où on voit chacun des fichiers avec à chaque fois leur path, leur permission, le nombre de réplications, de réplicas, leur type, si ce sont des répertoires ou des fichiers, leur propriétaire, etc. On peut bien entendu demander la même chose pour le contenu du répertoire Workspace, dans ce cas-là, ici, on met /workspace et on va voir l'ensemble des fichiers présents dans le répertoire /workspace de notre HDFS. On peut le faire également sur un fichier donc demander /workspace/test.txt.gz et on va voir les détails concernant ce fichier. Au lieu de l'opération LISTSTATUS, on peut utiliser l'opération OPEN, qui va ouvrir le fichier, comme on peut le voir ici et si vous vous le rappelez, on demande au NameNode d'accéder à un fichier, le NameNode nous répond quel node répond au fichier et quel serveur l'héberge. Ici, directement, Web HDFS nous redirige vers le DataNode avec la demande d'ouverture de ce fichier-là et notamment de ce bloc. On arrive sur le port 50075, qui correspond à un port sur le DataNode directement, ici, nous n'interrogeons plus le NameNode sur le port 50070, mais sur le DataNode directement. On va suivre la redirection et interroger le DataNode pour avoir le contenu du fichier. Il est à noter d'ailleurs qu'on peut directement demander le contenu à partir d'un offset ou jusqu'à un offset précis. Ici, on récupère le contenu mais bien évidemment « gzippé ». Si on fait un gunzip derrière et qu'on cache les header, cela va fonctionner parfaitement et on va voir nos contenus « dé-gzippés ». À noter que sous Curl, notamment, il est possible d'utiliser directement l'option -l, pour suivre la redirection et donc, on a directement l'appel au direct Node qui est fait puis l'appel au DataNode qui est fait, puis la réponse qui s'affiche. Si on enlève donc le -i, et qu'on fait le pipe gunzip derrière, de façon transparente, on voit le contenu du fichier. Cependant, d'un point de vue HTTP, on est bien placé par les deux serveurs, le NameNode, puis le DataNode. Maintenant que nous avons vu comment lire un fichier, nous allons voir comment écrire dans un fichier. De la même façon, il va être nécessaire dans un premier temps de contacter le NameNode, qui va créer à proprement parler le fichier dans l'arborescence et demander au DataNode ensuite qu'on écrive les données dedans. Pour créer un fichier, on va utiliser le même type d'opération, sauf que cette fois-ci, on va utiliser l'opération Create et on va faire afficher les headers et ne pas suivre les redirections pour voir ce qu'il se passe. Alors, si on lance juste ça, il va se plaindre comme quoi l'opération Create n'existe pas et effectivement, il faut absolument la lancer en tant que commande HTTP put, ce qui alors rajoute donc un -x put, avant la requête. Alors le NameNode prend en compte notre requête et nous fait une redirection temporaire vers le DataNode sur le port 50075. C'est là où on doit écrire le contenu du fichier, on va donc écrire notre requête, toujours en put et on rajoute le contenu du fichier. Pour cela, on va utiliser l'option de curl -t avec un fichier local, test.txt.gz par exemple, et Curl va envoyer le contenu de test.txt.gz en donnée directement à cette URL. On le fait et on voit que ça ne fonctionne pas parce que le fichier existe déjà, effectivement, le fichier text.txt existe déjà. On n'a plus qu'à recommencer l'opération en demandant à créer le fichier test 2, puis à envoyer le contenu de notre fichier test.txt.gz, directement sur cette URL. On voit que le fichier est mis comme créé et tout semble fonctionner à merveille.

L'essentiel de Hadoop

Mettez en pratique les concepts spécifiques à Hadoop. Abordez l'HDFS pour le stockage, les MapReduce pour le traitement, ainsi que la base de données NoSQL d​e Hadoop : HBase.

3h43 (42 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
HBase HBase 1.2
Spécial abonnés
Date de parution :31 mars 2017

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !