Comment utiliser MapReduce pour Big Data

MapReduce est un cadre logiciel qui est idéal pour les grandes données, car il permet aux développeurs d'écrire des programmes qui peuvent traiter des quantités massives de données non structurées en parallèle sur un groupe distribué de processeurs.

Sommaire

La fonction de la carte pour Big Data

La carte fonction a été une partie de nombreux langages de programmation fonctionnels pendant des années. Plan a été rénovée en tant que technologie de base pour les listes de traitement des éléments de données.

Les opérateurs dans les langages fonctionnels ne modifient pas la structure de la de données qu'ils créent de nouvelles structures de données que leur production. Les données d'origine lui-même est non modifiée ainsi. Ainsi, vous pouvez utiliser la fonction de carte en toute impunité parce qu'il ne nuira pas à vos données stockées précieux.

Un autre avantage de la programmation fonctionnelle est de ne pas avoir à gérer expressément le mouvement ou le débit des données. Ceci dégage le programmateur à partir de la gestion explicite de la sortie de données et de placement. Enfin, l'ordre des opérations sur les données ne sont pas prescrits.

Une façon d'accomplir la solution est d'identifier les données d'entrée et de créer une liste:

mylist = ("tous les comtés des États-Unis qui ont participé à la plus récente élection générale»)

Créer la fonction combien de gens en utilisant la fonction de carte. Cette sélectionne uniquement les comtés avec plus de 50.000 personnes:

carte howManyPeople (myList) = [howManyPeople «comté 1" - howManyPeople «comté 2" - howManyPeople «comté 3" - howManyPeople «comté 4" -. . . ]

Maintenant produire une nouvelle liste de sortie de tous les comtés ayant une population supérieure à 50 000:

(non, comté 1- Oui, comté 2- non, comté 3- Oui, comté 4-?, comté NNN)



La fonction exécute sans apporter de modifications à la liste originale. En outre, vous pouvez voir ce que chaque élément de la liste de sortie correspond à un élément correspondant de la liste d'entrée, avec un Oui ou non ci-jointe. Si le comté a satisfait à l'exigence de plus de 50.000 personnes, la fonction de carte identifie avec un Oui. Dans le cas contraire, un non est indiqué.

Ajoutez la fonction de réduire pour les Big Data

Comme la fonction de la carte, réduire a été une caractéristique des langages de programmation fonctionnels pendant de nombreuses années. La fonction de réduire prend la sortie d'une fonction de carte et “ réduit ” la liste de quelque façon le programmeur désire.

La première étape que la fonction exige de réduire consiste à placer une valeur dans ce qu'on appelle un accumulateur, qui détient une valeur initiale. Après le stockage d'une valeur de départ dans l'accumulateur, la fonction réduire traite ensuite chaque élément de la liste et effectue l'opération dont vous avez besoin dans la liste.

À la fin de la liste, la fonction de réduire retourne une valeur basée sur l'opération que vous vouliez effectuer sur la liste de sortie.

Supposons que vous devez identifier les comtés où la majorité des voix étaient pour le candidat démocrate. Rappelez-vous que votre combien de gens fonction de la carte regardé chaque élément de la liste d'entrée et a créé une liste de sortie des comtés avec plus de 50.000 personnes (Oui) Et les comtés avec moins de 50.000 personnes (non).

Après invoquant le combien de gens fonction de la carte, on se retrouve avec la liste de sortie suivante:

(non, comté 1- Oui, comté 2- non, comté 3- Oui, comté 4-?, comté NNN)

Ceci est maintenant l'entrée pour votre fonction réduire. Voici à quoi il ressemble:

countylist = (non, comté 1- Oui, comté 2- non, comté 3- Oui, comté 4-?, comté NNN) réduire isDemocrat (countylist)

Le réduire les processus de la fonction de chaque élément de la liste et retourne une liste de tous les comtés ayant une population supérieure à 50 000, où la majorité a voté démocrate.

Mettre la carte grand de données et de réduire ensemble

Parfois, la production d'une liste de sortie est juste assez. De même, effectuant parfois des opérations sur chaque élément d'une liste est assez. Le plus souvent, vous voulez regarder à travers de grandes quantités de données d'entrée, sélectionner certains éléments des données, puis calculer quelque chose de valeur à partir des éléments pertinents de données.

Vous ne voulez pas changer cette liste d'entrée de sorte que vous pouvez l'utiliser de différentes manières avec de nouvelles hypothèses et de nouvelles données.

Applications de conception des développeurs de logiciels basés sur des algorithmes. Un algorithme est rien de plus qu'une série de mesures qui doivent se produire dans le service à un objectif global. Il peut sembler un peu comme ceci:

  1. Commencez avec un grand nombre ou des données ou des dossiers.

  2. Itérer sur les données.

  3. Utilisez la fonction de la carte pour en extraire quelque chose d'intéressant et de créer une liste de sortie.

  4. Organiser la liste de sortie pour optimiser pour un traitement ultérieur.

  5. Utilisez la fonction de réduire de calculer un ensemble de résultats.

  6. Produire la sortie finale.

Les programmeurs peuvent mettre en œuvre toutes sortes d'applications utilisant cette approche, mais les exemples à ce point ont été très simple, de sorte que la valeur réelle de MapReduce peuvent ne pas être apparents. Qu'est-ce qui arrive quand vous avez de très grandes données d'entrée? Pouvez-vous utiliser le même algorithme sur des téraoctets de données? Les bonnes nouvelles est oui.

Toutes les opérations semblent indépendante. Cela est parce qu'ils sont. La vraie puissance de MapReduce est la capacité de diviser pour régner. Prenez un très grand problème et le casser en petits morceaux, plus faciles à gérer, opérer sur chaque bloc indépendamment, puis tirer tous ensemble à la fin. En outre, la fonction de la carte est commutative - en d'autres termes, l'ordre dans lequel une fonction est exécutée n'a pas d'importance.

image0.jpg

Donc MapReduce peut effectuer son travail sur des machines différentes dans un réseau. Il peut également tirer de multiples sources de données, internes ou externes. MapReduce garde la trace de son travail en créant une clé unique pour assurer que tout le traitement est liée à résoudre le même problème. Cette touche est également utilisée pour tirer toutes les sorties ensemble à la fin de toutes les tâches distribuées.


» » » » Comment utiliser MapReduce pour Big Data