Développer une application Big Data avec Hadoop

Écrire dans HBase avec un reducer

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Réalisez un reducer qui va peupler la base de données NoSQL HBase à partir des données passées par le mapper.
06:03

Transcription

Il faut maintenant faire notre Reducer, pour cela, on crée une nouvelle classe, qui va être notre HBaseReducer, puisque ça importe dans HBase et qui doit étendre non seulement de l'objet Reducer, mais surtout, ici, on peut utiliser directement la classe Table Reducer, qui permet de faire un Reducer de HBase. On doit mettre le Key In et le Value In, qui sont forcément les Key Out et Value Out du Mapper, donc ici, Texte et Texte. Le Key Out ne sert à rien car il est totalement ignoré dans HBase. On va utiliser un NullWritable qui est la version Null du Writable. On va créer la méthode Reduce grâce à l'auto-compléteur d'Eclipse, et on va pouvoir commencer à développer notre code. Nous allons récupérer une Key et des Values et un Context. L'idée étant qu'on va créer un Put et transmettre à HBase. Pour cela, on peut créer directement un objet Put qui sera simplement un « New Put » et il faut lui passer le nom de la clé. Le nom de la clé, c'est le nom de la Station_la date, ça tombe bien, c'est exactement ce qu'on a dans la clé. On peut donc faire un Key.getBytes ou un copy.Bytes, et ça va nous faire notre clé. Ensuite, on va devoir rajouter la date à ce Put. Pour cela, on va faire un addColumn sur le Put, qui prend le nom d'une famille de colonnes, le nom d'un identifiant de colonne et une valeur. Ici, ça va être un Bytes.toBytes du nom de date. On a dit que - on va importer Bytes en même temps - on a dit que comme identifiant de colonne, on va utiliser « " " » et on va mettre la valeur : la date. Pour la date, on va l'extraire à partir de notre clé, c'est-à-dire, qu'on va faire Key.toString.Split sur le caractère « _ » et ceci va nous donner un tableau de chaîne de caractère qu'on va appeler keyParts. Forcément, il faut mettre une chaîne de caractères. Ici, on va avoir les deux parties, la première va être le nom de la station.. ...et la seconde partie va être la date. On va pouvoir directement utiliser la date. Attention, on va faire un Bytes.toBytes puisque HBase nécessite que lui soit envoyé un tableau d'octets. Ceci étant fait, il va falloir que l'on mette en place les différentes mesures dans notre Put. Pour cela, on va itérer sur les valeurs. On va faire un « pour chaque Text value » dans le tableau « values », dans l’itérable « values », on va le décomposer toujours de la même façon, on va le convertir en string, on va le splitter sur « _ » et on va en déduire un tableau de chaîne de caractères qui va s'appeler ValueParts. On va avoir la mesure qui va être le ValueParts de 0, le premier élément du tableau, et la valeur qui va être le second élément du tableau. Il ne nous reste plus qu'à ajouter la colonne, toujours avec un Put.addColumn. On a dit la famille, ça va être Bytes.toBytes. On va avoir, comme second élément, l'identifiant de la colonne qui va être un Bytes.toBytes de notre variable Measure, et la valeur qui va être un Bytes.toBytes de Val. Attention, Val, nous allons au minimum le convertir en Integer avant, pour l'enregistrer directement en Integer et donc faire un integer.parseInt, et transformer son type en INT. Nous avons fini de remplir notre Put, il ne reste plus qu'à l'envoyer à HBase. Pour cela, nous allons faire un context.Write, il faut forcément envoyer une clé valeur, cependant, ici, la clé ne sert à rien et on a mis que ce serait un NullWritable. Nous allons donc utiliser le singleton de NullWritable : NullWritable.get qui retourne un NullWritable. Nous allons envoyer, en valeur, le Put. Notre Reducer est fait, nous pouvons désormais l'utiliser directement.

Développer une application Big Data avec Hadoop

Concevez une application Big Data avec la suite Hadoop. Stockez des données dans l'HDFS et dans HBase, traitez-les en MapReduce sous YARN, exportez-les dans MySQL via Sqoop, etc.

2h31 (25 vidéos)
Aucun commentaire n´est disponible actuellement
 

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 !