 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  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/
author | blackerzx |
---|---|
permlink | hadoop-mapreduce |
category | hive-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"} |
created | 2022-11-29 18:40:00 |
last_update | 2022-11-29 18:40:00 |
depth | 0 |
children | 5 |
last_payout | 2022-12-06 18:40:00 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.549 HBD |
curator_payout_value | 0.540 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 4,806 |
author_reputation | 512,759,586,315 |
root_title | "Hadoop MapReduce" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 118,711,807 |
net_rshares | 2,223,168,034,409 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
walterjay | 0 | 125,681,014,656 | 12.5% | ||
lizanomadsoul | 0 | 1,664,319,457 | 2% | ||
techken | 0 | 19,177,466,067 | 25% | ||
zonguin | 0 | 3,221,576,127 | 12.5% | ||
francosteemvotes | 0 | 2,829,989,702 | 25% | ||
evildido | 0 | 1,432,137,762 | 12.5% | ||
aidefr | 0 | 4,108,005,128 | 20% | ||
deadzy | 0 | 1,816,040,566 | 12.5% | ||
dbddv01 | 0 | 1,779,163,074 | 12.5% | ||
robotics101 | 0 | 7,248,286,949 | 25% | ||
soluce07 | 0 | 4,748,240,690 | 100% | ||
lpv | 0 | 1,707,851,293 | 5% | ||
statorcrime | 0 | 818,692,092 | 12.5% | ||
duke77 | 0 | 14,435,548,312 | 50% | ||
itharagaian | 0 | 2,873,972,602 | 50% | ||
lebastion | 0 | 1,562,400,979 | 50% | ||
albus.draco | 0 | 1,599,315,700 | 50% | ||
imcore | 0 | 865,011,781 | 10% | ||
letenebreux | 0 | 1,757,366,153 | 50% | ||
revueh | 0 | 1,011,254,244 | 25% | ||
pboulet | 0 | 159,084,667,572 | 100% | ||
cercle | 0 | 1,622,164,643 | 50% | ||
bastionpm | 0 | 510,660,221 | 50% | ||
ignet | 0 | 1,600,188,539 | 50% | ||
hivebuzz | 0 | 8,540,696,303 | 2% | ||
hivequebec | 0 | 1,646,834,877 | 25% | ||
laruche | 0 | 1,186,484,382,906 | 25% | ||
ykretz | 0 | 2,413,748,984 | 5% | ||
hive-143869 | 0 | 636,604,998,172 | 50% | ||
entraide.rewards | 0 | 1,568,981,821 | 50% | ||
cookaiss | 0 | 3,994,068,005 | 25% | ||
nopasaran72 | 0 | 822,775,963 | 25% | ||
independance | 0 | 1,698,061,541 | 50% | ||
minava.museum | 0 | 788,945,545 | 50% | ||
lordnight72 | 0 | 1,637,871,447 | 50% | ||
bonus-fr | 0 | 7,181,126,510 | 100% | ||
quotidien | 0 | 3,037,665,769 | 50% | ||
iamludal | 0 | 672,748,491 | 100% | ||
bbybender | 0 | 658,308,579 | 100% | ||
ofreo | 0 | 749,621,007 | 100% | ||
blackerzx | 0 | 672,748,491 | 100% | ||
benjil | 0 | 839,115,689 | 100% |
--- --- ✒️ 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> --- ---
author | bonus-fr |
---|---|
permlink | re-blackerzx-20221130t13249637z |
category | hive-114606 |
json_metadata | {"tags":["hive-114606","blockchain","hadoop","mapreduce","fr","kr"],"app":"ecency/3.0.29-vision","format":"markdown+html"} |
created | 2022-11-30 00:32:51 |
last_update | 2022-11-30 00:32:51 |
depth | 1 |
children | 2 |
last_payout | 2022-12-07 00:32:51 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 721 |
author_reputation | 10,094,917,467,831 |
root_title | "Hadoop MapReduce" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 118,720,445 |
net_rshares | 0 |
<center>https://media.tenor.com/Z3PQKzhjwCQAAAAC/free-learning-app-for-students-best-educational-app-for-college-students.gif [Via Tenor](https://tenor.com/)</center>
author | hivegifbot |
---|---|
permlink | re-re-blackerzx-20221130t13249637z-20221130t003311z |
category | hive-114606 |
json_metadata | "{"app": "beem/0.24.26"}" |
created | 2022-11-30 00:33:12 |
last_update | 2022-11-30 00:33:12 |
depth | 2 |
children | 0 |
last_payout | 2022-12-07 00:33:12 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 166 |
author_reputation | 38,192,557,766,504 |
root_title | "Hadoop MapReduce" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 118,720,456 |
net_rshares | 0 |
@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>
author | luvshares |
---|---|
permlink | re-re-blackerzx-20221130t13249637z-20221130t003309z |
category | hive-114606 |
json_metadata | "{"app": "beem/0.24.26"}" |
created | 2022-11-30 00:33:09 |
last_update | 2022-11-30 00:33:09 |
depth | 2 |
children | 0 |
last_payout | 2022-12-07 00:33:09 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 1,383 |
author_reputation | 5,651,102,754,153 |
root_title | "Hadoop MapReduce" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 118,720,455 |
net_rshares | 0 |
Blogging in English gives you better chances :)
author | eniolw |
---|---|
permlink | re-blackerzx-2022124t03855877z |
category | hive-114606 |
json_metadata | {"tags":["hive-114606","blockchain","hadoop","mapreduce","fr","kr"],"app":"ecency/3.0.29-vision","format":"markdown+html"} |
created | 2022-12-04 04:38:57 |
last_update | 2022-12-04 04:38:57 |
depth | 1 |
children | 0 |
last_payout | 2022-12-11 04:38:57 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 47 |
author_reputation | 254,866,066,180,414 |
root_title | "Hadoop MapReduce" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 118,833,284 |
net_rshares | 0 |
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)!
author | hivebuzz |
---|---|
permlink | notify-blackerzx-20221129t201202 |
category | hive-114606 |
json_metadata | {"image":["http://hivebuzz.me/notify.t6.png"]} |
created | 2022-11-29 20:12:03 |
last_update | 2022-11-29 20:12:03 |
depth | 1 |
children | 0 |
last_payout | 2022-12-06 20:12:03 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 1,676 |
author_reputation | 370,782,173,802,426 |
root_title | "Hadoop MapReduce" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 118,714,196 |
net_rshares | 0 |