create account

Hadoop MapReduce by blackerzx

View this thread on: hive.blogpeakd.comecency.com
· @blackerzx ·
$1.09
Hadoop MapReduce
![Hadoop MapReduce image](https://i0.wp.com/ledatascientist.com/wp-content/uploads/2020/12/1U95c0vlgdmnUOxt7in3BRQ.png)  

Un des défis aujourd'hui est de pouvoir traiter des données de plus en plus volumineuses de manière rapide et efficace sans pour autant perdre de l'information. La stratégie est de distribuer le stockage de données et de paralléliser leur traitement.  

Il y a 2 challenges à relever : 

1. les traitements sur les données doivent être divisés en tâches indépendantes pour pouvoir être exécutées en parallèle sur plusieurs machines afin de minimiser la durée du traitement.  
2. les données doivent être redondées sur plusieurs machines pour garantir la disponibilité des données en cas de panne d'une machine. 

**MapReduce** répond au premier challenge par le parallélisme des traitements et **HDFS** (Hadoop Distributed File System) répond au second challenge par la redondance des données.  

## Définition 

**Hadoop** est un framework libre faisant partie des projets de la fondation logicielle Apache. Ce framework permet le traitement par application distribuée de grands volumes de données à travers des noeuds réparties sur différentes machines. Le traitement des données se fait par bloc qui sont traités de façon optimale. Hadoop a été conçu pour être résistant aux pannes qui peuvent être fréquentes sur ce genre de structure étant donné le grand nombre de machines. 

**MapReduce** est un *modèle algorithmique* de type *diviser pour régner* qui découpe automatiquement les traitements en tâches indépendantes et les exécute en parallèle sur plusieurs machines dans un cluster.  
L'algorithme **MapReduce** est composé de 3 étapes :  

1. Map 
2. Shuffle
3. Reduce

Pour mieux comprendre le fonctionnement de **MapReduce**, voir le schéma à la fin de l'article.  

## Map 

Dans cette étape les données à traiter sont déjà partitionnées dans le **HDFS**.  
Chaque tâche **Map** se charge d'une partition. **Map** est une fonction qui prend en entrée un ensemble de données et qui les transforme en un ensemble de paires **clé/valeur**.  
Ici le terme **Map** n'est pas dans le sens objet, mais dans le sens fonctionnel.  

## Shuffle 

Cette étape intermédiaire commence quand l'étape précédente se termine.  
Cette étape a 2 parties :  
- trier toutes les paires clé/valeur par **clé**
- regrouper dans une liste pour chaque **clé**, toutes les **valeurs** se trouvant dans différents noeuds (il y a communication entre les noeuds)  
On a donc maintenant pour chaque **clé** une liste de **valeurs**, et non plus une seule **valeur**.  
Le résultat de cette étape est compatible avec l'entrée de l'étape suivante **Reduce**.  

## Reduce 

Le but de cette dernière étape est de réduire les données des **valeurs** associées à chaque **clé**.  
Dans l'illustration en fin d'article, on peut voir que la **valeur** pour une **clé** est transformée d'une liste de **valeurs** à une seule **valeur**.  
Dans la fonction **Reduce** il est possible d'utiliser l'agrégat désiré comme par exemple la somme, la moyenne, le maximum, le minimum, etc. Il est aussi possible de faire des opérations sur les résultats comme par exemple l'affichage, l'enregistrement dans une base de données, ou l'envoi à un autre job MapReduce.  

## Vue d'ensemble avec un schéma 

![MapReduce](https://www.data-transitionnumerique.com/wp-content/uploads/2020/09/Phase-Reduce-1536x712.webp)  
Source : https://www.data-transitionnumerique.com

Pendant la phase **Map**, le traitement des données est complètement indépendant entre les noeuds.  
Cependant pendant la phase **Reduce**, les noeuds communiquent entre eux à travers les fichiers ce qui peut s'avérer être lent.  

La programmation **MapReduce** fournit une abstraction pour l'utilisateur. Le système se charge de lancer l'exécution des tâches en parallèle et leur coordination dans le cluster. Ainsi du point de vue de l'utilisateur, il ne fournit que le **job MapReduce**, c'est-à-dire les fonctions **Map** et **Reduce**. 

Mais, quel est le lien avec Hadoop, et comment s'exécute-t-il dans un cluster Hadoop ?  

## Hadoop

Le traitement des données par **MapReduce** est exécuté dans un cluster **Hadoop** en 7 étapes :  
1. Configuration de **Job MapReduce** puis exécution sur le cluster
2. Partitionnement en taille fixe et réplication de manière redondante du fichier par **HDFS**
3. Lancement du processus **Map** sur chaque noeud
4. Partitionnement des paires **clé/valeur** dans des régions et communication de la localisation des régions 
5. Lecture des pairs **clé/valeur** à distance pour l'étape **Shuffle**
6. Lancement du processus **Reduce** sur n noeuds
7. Récupération des résultats

### Sources 

- https://www.talend.com/fr/resources/what-is-mapreduce/
- https://www.data-transitionnumerique.com/hadoop-mapreduce/
👍  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
properties (23)
authorblackerzx
permlinkhadoop-mapreduce
categoryhive-114606
json_metadata{"links":["https://www.data-transitionnumerique.com","https://www.talend.com/fr/resources/what-is-mapreduce/","https://www.data-transitionnumerique.com/hadoop-mapreduce/"],"image":["https://i0.wp.com/ledatascientist.com/wp-content/uploads/2020/12/1U95c0vlgdmnUOxt7in3BRQ.png","https://www.data-transitionnumerique.com/wp-content/uploads/2020/09/Phase-Reduce-1536x712.webp"],"thumbnails":["https://i0.wp.com/ledatascientist.com/wp-content/uploads/2020/12/1U95c0vlgdmnUOxt7in3BRQ.png","https://www.data-transitionnumerique.com/wp-content/uploads/2020/09/Phase-Reduce-1536x712.webp"],"tags":["hive-114606","blockchain","hadoop","mapreduce","fr","kr"],"description":"","app":"ecency/3.0.29-vision","format":"markdown+html"}
created2022-11-29 18:40:00
last_update2022-11-29 18:40:00
depth0
children5
last_payout2022-12-06 18:40:00
cashout_time1969-12-31 23:59:59
total_payout_value0.549 HBD
curator_payout_value0.540 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length4,806
author_reputation512,759,586,315
root_title"Hadoop MapReduce"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id118,711,807
net_rshares2,223,168,034,409
author_curate_reward""
vote details (42)
@bonus-fr ·
---
---
✒️ Pour cette présentation explicative de "Hadoop et Mapreduce", nous vous offrons 💝**50 points-fr** 💝, un reblogue, un mini-upvote
🎁 Recevez en plus un bonus de **3 points-fr** pour votre sélection et ce pourboire : !LUV !GIF student
💰 Plus de Tokens de 2eme couches vous attendent dans les posts de sélections et de récompenses
<center> 
|	@points-fr /	@challenge-fr / @tokens-fr / @loterie-fr / @bonus-fr |
|	------------	|
</center>

<center> **[Cumulez facilement les points-fr](/created/faqpoints-fr)**
 Récompense Multi-engagements des Francophones
<a href='/created/points-fr'><img src='https://images.ecency.com/DQmbkGz3XuzUZJPndrZzNqh4tAoNgkRGWnhu6sjBg8mz4sD/logo_point_fr150.png'></a>
</center>
---
---
properties (22)
authorbonus-fr
permlinkre-blackerzx-20221130t13249637z
categoryhive-114606
json_metadata{"tags":["hive-114606","blockchain","hadoop","mapreduce","fr","kr"],"app":"ecency/3.0.29-vision","format":"markdown+html"}
created2022-11-30 00:32:51
last_update2022-11-30 00:32:51
depth1
children2
last_payout2022-12-07 00:32:51
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length721
author_reputation10,094,917,467,831
root_title"Hadoop MapReduce"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id118,720,445
net_rshares0
@hivegifbot ·
<center>https://media.tenor.com/Z3PQKzhjwCQAAAAC/free-learning-app-for-students-best-educational-app-for-college-students.gif
[Via Tenor](https://tenor.com/)</center>
properties (22)
authorhivegifbot
permlinkre-re-blackerzx-20221130t13249637z-20221130t003311z
categoryhive-114606
json_metadata"{"app": "beem/0.24.26"}"
created2022-11-30 00:33:12
last_update2022-11-30 00:33:12
depth2
children0
last_payout2022-12-07 00:33:12
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length166
author_reputation38,192,557,766,504
root_title"Hadoop MapReduce"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id118,720,456
net_rshares0
@luvshares ·
@blackerzx, @bonus-fr<sub>(2/10)</sub> sent you LUV. <a href="https://peakd.com/@luvshares/about" style="text-decoration:none"><img src="https://files.peakd.com/file/peakd-hive/crrdlx/AKU7oyCXxGwYyudB42kJ7JtoZ63bdeHvm4icoT9xdGNxA4i4BwudGyPvTQrEwPd.gif"></a> <a href="https://tribaldex.com/wallet/" style="text-decoration:none">wallet</a> | <a href="https://hive-engine.com/trade/LUV" style="text-decoration:none">market</a> | <a
    href="https://crrdlx.websavvy.work/" style="text-decoration:none">tools</a> | <a 
    href="https://discord.gg/K5GvNhcPqR" style="text-decoration:none">discord</a> | <a href="https://peakd.com/c/hive-159259">community | <a href="https://ichthys.netlify.app" style="text-decoration:none"><>< daily</a>
<br>
<center><a href="https://crrdlx.websavvy.work/wiki" target="_blank"><img src="https://files.peakd.com/file/peakd-hive/crrdlx/23sxEPgMNuQ5YPsuGungJ25Dpd6BjwgUmNkFAGCNnsKABBpUPXuRVgahFnwuZm9Qnf8Eh.png"></a><br><a href="https://crrdlx.websavvy.work/wiki" target="_blank">HiveWiki</a></center>
<br>
<center><a href="https://peakd.com/nftforpeace/@hivebuzz/nft-for-peace" target="_blank"><img src="https://files.peakd.com/file/peakd-hive/luvshares/242henrWsje7ivLwY3jxy15af3LJqvUzEmrEKAViGAowE1XsPqkDUuQ6QnwYpVJUWKN7c.gif"></a><br><a href="https://peakd.com/nftforpeace/@hivebuzz/nft-for-peace" target="_blank">HiveBuzz.me NFT for Peace</a></center>
properties (22)
authorluvshares
permlinkre-re-blackerzx-20221130t13249637z-20221130t003309z
categoryhive-114606
json_metadata"{"app": "beem/0.24.26"}"
created2022-11-30 00:33:09
last_update2022-11-30 00:33:09
depth2
children0
last_payout2022-12-07 00:33:09
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length1,383
author_reputation5,651,102,754,153
root_title"Hadoop MapReduce"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id118,720,455
net_rshares0
@eniolw ·
Blogging in English gives you better chances :)
properties (22)
authoreniolw
permlinkre-blackerzx-2022124t03855877z
categoryhive-114606
json_metadata{"tags":["hive-114606","blockchain","hadoop","mapreduce","fr","kr"],"app":"ecency/3.0.29-vision","format":"markdown+html"}
created2022-12-04 04:38:57
last_update2022-12-04 04:38:57
depth1
children0
last_payout2022-12-11 04:38:57
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length47
author_reputation254,866,066,180,414
root_title"Hadoop MapReduce"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id118,833,284
net_rshares0
@hivebuzz ·
Congratulations @blackerzx! You have completed the following achievement on the Hive blockchain And have been rewarded with New badge(s)

<table><tr><td><img src="https://images.hive.blog/60x70/http://hivebuzz.me/@blackerzx/upvotes.png?202211292004"></td><td>You distributed more than 10 upvotes.<br>Your next target is to reach 50 upvotes.</td></tr>
</table>

<sub>_You can view your badges on [your board](https://hivebuzz.me/@blackerzx) and compare yourself to others in the [Ranking](https://hivebuzz.me/ranking)_</sub>
<sub>_If you no longer want to receive notifications, reply to this comment with the word_ `STOP`</sub>


To support your work, I also upvoted your post!


**Check out the last post from @hivebuzz:**
<table><tr><td><a href="/hive-102201/@hivebuzz/wc2022-recap-day9"><img src="https://images.hive.blog/64x128/https://i.imgur.com/uNPMgnd.png"></a></td><td><a href="/hive-102201/@hivebuzz/wc2022-recap-day9">HiveBuzz World Cup Contest - Recap of Day 9</a></td></tr><tr><td><a href="/hive-122221/@hivebuzz/pud-202212"><img src="https://images.hive.blog/64x128/https://i.imgur.com/805FIIt.jpg"></a></td><td><a href="/hive-122221/@hivebuzz/pud-202212">Hive Power Up Day - December 1st 2022</a></td></tr><tr><td><a href="/hive-102201/@hivebuzz/wc2022-ranking"><img src="https://images.hive.blog/64x128/https://i.imgur.com/8kplXrX.png"></a></td><td><a href="/hive-102201/@hivebuzz/wc2022-ranking">HiveBuzz World Cup Contest - Check your ranking</a></td></tr></table>

###### Support the HiveBuzz project. [Vote](https://hivesigner.com/sign/update_proposal_votes?proposal_ids=%5B%22199%22%5D&approve=true) for [our proposal](https://peakd.com/me/proposals/199)!
properties (22)
authorhivebuzz
permlinknotify-blackerzx-20221129t201202
categoryhive-114606
json_metadata{"image":["http://hivebuzz.me/notify.t6.png"]}
created2022-11-29 20:12:03
last_update2022-11-29 20:12:03
depth1
children0
last_payout2022-12-06 20:12:03
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length1,676
author_reputation370,782,173,802,426
root_title"Hadoop MapReduce"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id118,714,196
net_rshares0