Je préfère demander quand mapreduce n'est pas un choix approprié? Je ne pense pas que vous voyez aucun inconvénient, si vous l'utilisez comme prévu. Cela dit, il existe certains cas où mapreduce n'est pas un choix approprié :
En temps réel de traitement.
Ce n'est pas toujours très facile à mettre en œuvre chacun et tout comme M. programme.
Lors de votre processus intermédiaires besoin de parler les uns aux autres(travaux en isolation).
Lorsque votre traitement nécessite beaucoup de données à mélangées sur le réseau.
Quand vous en avez besoin pour gérer les flux de données en continu. M. est le mieux adapté à processus de traitement par lots d'énormes quantités de données que vous avez déjà avec vous.
Quand vous pouvez obtenir le résultat souhaité avec un système autonome. C'est évidemment moins douloureux pour configurer et gérer un système autonome par rapport à un système distribué.
Lorsque vous avez OLTP besoins. M. n'est pas adapté pour un grand nombre de court les transactions en ligne.
Il pourrait y avoir plusieurs autres cas. Mais la chose importante ici est de savoir comment l'utilisez-vous. Par exemple, vous ne pouvez pas s'attendre à un MONSIEUR d'emploi pour vous donner le résultat dans un couple de ms. Vous ne pouvez pas compter comme son désavantage. C'est juste que vous êtes au mauvais endroit. Et il en va de même pour toute technologie, à mon humble avis. Longue histoire courte, réfléchis bien avant d'agir.
Si vous le souhaitez, vous pouvez prendre les points ci-dessus que les inconvénients de mapreduce 🙂
Voici quelques usecases où MapReduce ne fonctionne pas très bien.
Lorsque vous avez besoin d'une réponse rapide. par exemple, dire < quelques secondes (Utiliser le volet
le traitement de la CEP, etc au lieu de cela)
De traitement de graphes
Des algorithmes complexes par exemple, certains algorithmes d'apprentissage automatique comme les SVM, et voir aussi 13 drawfs
(Le Paysage de l'Informatique Parallèle de la Recherche: Une Vue De Berkeley)
Itérations quand vous en avez besoin pour traiter les données, encore et encore. par exemple, KMeans - utilisation Étincelle
Lorsque la carte de la phase de générer trop de touches. Thensorting prend pour toujours.
La liaison de deux grands ensembles de données avec des conditions complexes (l'égalité des cas peut
être gérés par l'intermédiaire de hachage etc)
Des opérations dynamiques - par exemple, évaluer l'état de la machine en Cascade des tâches
l'un après l'autre - à l'aide de la Ruche, Gros pourrait aider, mais beaucoup de frais généraux
la relecture et l'analyse des données.
Tout d'abord, il les ruisseaux de la carte de sortie, si il est possible de garder en mémoire ce sera plus efficace. J'ai d'abord déployé mon algorithme en utilisant MPI mais quand je l'ai mis à l'échelle de certains nœuds commencé l'échange, c'est pourquoi j'ai fait la transition.
La Namenode conserve les métadonnées de tous les fichiers dans votre système de fichiers distribués. Je suis de la lecture d'une hadoop livre (Hadoop dans l'action) et il est mentionné que Yahoo a estimé les métadonnées à environ 600 octets par fichier. Cela implique que si vous avez trop de fichiers de votre Namenode pourrait rencontrer des problèmes.
Si vous ne souhaitez pas utiliser le streaming API vous devez écrire votre programme dans le java langue. J'ai par exemple fait une traduction à partir de C++. Cela a des effets secondaires, par exemple Java dispose d'une grande chaîne de frais généraux par rapport à C. Depuis mon logiciel est tout au sujet de chaînes de caractères c'est une sorte de inconvénient.
Pour être honnête, je devais penser vraiment dur de trouver des inconvénients. Les problèmes mapreduce résolu pour moi étaient plus grand que les problèmes qu'elle introduit. Cette liste n'est certainement pas complète, juste quelques premières remarques. Évidemment, vous devez garder à l'esprit qu'il est orienté vers Big Data, et c'est là qu'il va effectuer à son meilleur. Il ya beaucoup d'autres de la distribution des cadres de là-bas avec leurs propres caractéristiques.
NN n'a rien à voir avec M. C'est une limitation de l'architecture de l'exécution de mapreduce, donc c'est quelque chose à garder à l'esprit, bien que vous avez raison, il n'a pas besoin d'être strictement liées M. Mapreduce pouvez exécuter de n'importe où, pas seulement HDFS. Et NN est spécifique à HDFS. Vous allez voir les métadonnées problème si vous stockez un grand nombre de très petits fichiers dans votre HDFS, qui est encore une fois pas l'utilisation très efficace de la plate-forme Hadoop. Mais, je suis d'accord. Tout ce que vous avez dit est également correcte. La question était spécifique à la M. Cadre, j'ai donc pensé à le mentionner.
Je préfère demander quand mapreduce n'est pas un choix approprié? Je ne pense pas que vous voyez aucun inconvénient, si vous l'utilisez comme prévu. Cela dit, il existe certains cas où mapreduce n'est pas un choix approprié :
Il pourrait y avoir plusieurs autres cas. Mais la chose importante ici est de savoir comment l'utilisez-vous. Par exemple, vous ne pouvez pas s'attendre à un MONSIEUR d'emploi pour vous donner le résultat dans un couple de ms. Vous ne pouvez pas compter comme son désavantage. C'est juste que vous êtes au mauvais endroit. Et il en va de même pour toute technologie, à mon humble avis. Longue histoire courte, réfléchis bien avant d'agir.
Si vous le souhaitez, vous pouvez prendre les points ci-dessus que les inconvénients de mapreduce 🙂
HTH
OriginalL'auteur Tariq
Voici quelques usecases où MapReduce ne fonctionne pas très bien.
le traitement de la CEP, etc au lieu de cela)
(Le Paysage de l'Informatique Parallèle de la Recherche: Une Vue De Berkeley)
être gérés par l'intermédiaire de hachage etc)
l'un après l'autre - à l'aide de la Ruche, Gros pourrait aider, mais beaucoup de frais généraux
la relecture et l'analyse des données.
OriginalL'auteur srinath_perera
Tout d'abord, il les ruisseaux de la carte de sortie, si il est possible de garder en mémoire ce sera plus efficace. J'ai d'abord déployé mon algorithme en utilisant MPI mais quand je l'ai mis à l'échelle de certains nœuds commencé l'échange, c'est pourquoi j'ai fait la transition.
La Namenode conserve les métadonnées de tous les fichiers dans votre système de fichiers distribués. Je suis de la lecture d'une hadoop livre (Hadoop dans l'action) et il est mentionné que Yahoo a estimé les métadonnées à environ 600 octets par fichier. Cela implique que si vous avez trop de fichiers de votre Namenode pourrait rencontrer des problèmes.
Si vous ne souhaitez pas utiliser le streaming API vous devez écrire votre programme dans le java langue. J'ai par exemple fait une traduction à partir de C++. Cela a des effets secondaires, par exemple Java dispose d'une grande chaîne de frais généraux par rapport à C. Depuis mon logiciel est tout au sujet de chaînes de caractères c'est une sorte de inconvénient.
Pour être honnête, je devais penser vraiment dur de trouver des inconvénients. Les problèmes mapreduce résolu pour moi étaient plus grand que les problèmes qu'elle introduit. Cette liste n'est certainement pas complète, juste quelques premières remarques. Évidemment, vous devez garder à l'esprit qu'il est orienté vers Big Data, et c'est là qu'il va effectuer à son meilleur. Il ya beaucoup d'autres de la distribution des cadres de là-bas avec leurs propres caractéristiques.
C'est une limitation de l'architecture de l'exécution de mapreduce, donc c'est quelque chose à garder à l'esprit, bien que vous avez raison, il n'a pas besoin d'être strictement liées M.
Mapreduce pouvez exécuter de n'importe où, pas seulement HDFS. Et NN est spécifique à HDFS. Vous allez voir les métadonnées problème si vous stockez un grand nombre de très petits fichiers dans votre HDFS, qui est encore une fois pas l'utilisation très efficace de la plate-forme Hadoop. Mais, je suis d'accord. Tout ce que vous avez dit est également correcte. La question était spécifique à la M. Cadre, j'ai donc pensé à le mentionner.
OriginalL'auteur DDW
OriginalL'auteur Rags