2011-10-19 3 views
1

Quelle est la différence fondamentale entre Memcached et Hadoop? Microsoft semble faire memcached avec Windows Server AppFabric. Je sais que memcached est une fonction de hachage de valeur de clé géante utilisant plusieurs serveurs. Qu'est-ce que hadoop et comment hadoop est-il différent de memcached? Est-il utilisé pour stocker des données? objets? J'ai besoin de sauver des objets géants dans la mémoire, mais il semble que j'ai besoin d'une sorte de manière de diviser ces objets géants en «morceaux» comme les gens en parlent. Quand je regarde dans la division de l'objet en octets, il semble que Hadoop surgisse.Différence entre Memcached et Hadoop?

J'ai une classe géante en mémoire avec plus de 100 mb en mémoire. J'ai besoin de répliquer cet objet, mettre en cache cet objet d'une certaine manière. Quand je regarde dans la mise en cache de cet objet monstre, il semble que j'ai besoin de le diviser comme Google fait. Comment google fait ceci. Comment hadoop peut-il m'aider à cet égard? Mes objets ne sont pas de simples données structurées. Il a des références vers le haut et vers le bas les classes à l'intérieur, etc.

Toute idée, pointeurs, pensées, suppositions sont utiles.

Merci.

+0

Hadoop ne stocke rien en mémoire, il stocke généralement quelque chose sur le disque qui se trouve alors dans HDFS. Si vous cherchez une solution NoSQL, choisissez un stockage clé/valeur comme MongoDB ou Cassandra. HBase ne semble pas la bonne chose pour vous. –

Répondre

4

memcached [http://en.wikipedia.org/wiki/Memcached] est une technologie de mise en cache distribuée focalisée unique. Apache hadoop [http://hadoop.apache.org/] est un framework pour le traitement de données distribué - ciblé sur google/amazon de nombreux terraoctets de données. Il comprend des sous-projets pour les différentes zones de ce problème - base de données distribuée, algorithme de traitement distribué, reporting/interrogation, langage de flux de données.

Les deux technologies abordent différents problèmes. L'un est pour la mise en cache (petits ou gros articles) à travers un cluster. Et la seconde concerne le traitement de gros éléments sur un cluster. D'après votre question, il semble que memcached soit plus adapté à votre problème.

1

Memcache ne fonctionnera pas en raison de sa limite sur la valeur de l'objet stocké. memcache faq. J'ai lu quelque part que cette limite peut être augmentée à 10 mb mais je suis incapable de trouver le lien.

Pour votre cas d'utilisation, je suggère d'essayer mongoDB. mongoDb faq. MongoDB peut être utilisé comme alternative à memcache. Il fournit GridFS pour stocker les systèmes de fichiers volumineux dans la base de données.

0

Choisir une bonne solution dépend des exigences de l'utilisation prévue, disons la différence entre stocker des documents légaux pour toujours à un service de musique gratuit. Par exemple, les objets peuvent-ils être recréés ou sont-ils uniquement spéciaux? Auraient-ils besoin d'étapes de traitement supplémentaires (c'est-à-dire, MapReduce)? À quelle vitesse un objet (ou une tranche de celui-ci) doit-il être récupéré? Les réponses à ces questions affecteraient la solution largement définie.

Si les objets peuvent être recréés assez rapidement, une solution simple pourrait être d'utiliser Memcached comme vous l'avez mentionné sur de nombreuses machines totalisant suffisamment de RAM. Pour ajouter de la persistance à cela plus tard, CouchBase (anciennement Membase) vaut le coup d'œil et est utilisé en production pour de très grandes plateformes de jeux.

Si les objets NE PEUVENT PAS être recréés, déterminez si S3 et d'autres fournisseurs de fichiers cloud ne répondent pas aux exigences pour le moment. Pour un accès à haut débit, pensez à l'une des solutions de système de fichiers distribuées, parallèles et tolérantes aux pannes: DDN (avec GPFS et engrenage Lustre), Panasas (pNFS). J'ai utilisé l'équipement DDN et il a eu un meilleur prix que Panasas. Les deux fournissent de bonnes solutions qui sont beaucoup plus supportables qu'un DIY BackBlaze.

Il existe quelques implémentations pour la plupart libres de systèmes de fichiers parallèles distribués tels que GlusterFS et Ceph qui gagnent en popularité. Ceph propose une passerelle compatible S3 et peut utiliser BTRFS (futur remplacement de Lustre, se rapprocher de la production). Ceph architecture and presentations. L'avantage de Gluster est l'option pour le support commercial, bien qu'il puisse y avoir un fournisseur supportant les déploiements de Ceph. Hadoop's HDFS peut être comparable mais je ne l'ai pas évalué récemment.

0

Vous devez utiliser Hadoop pur pour ce dont vous avez besoin (pas HBASE, HIVE, etc.). Le mécanisme Map Reduce divise votre objet en plusieurs morceaux et le stocke dans Hadoop. Le tutoriel pour Map Reduce est here. Cependant, n'oubliez pas qu'Hadoop est, en premier lieu, une solution pour le calcul et le stockage massifs. Dans votre cas, je vous recommande également de vérifier Membase qui est l'implémentation de Memcached avec des capacités de stockage supplémentaires. Vous ne pourrez pas réduire map avec memcached/membase, mais ceux-ci sont toujours distribués et votre objet peut être mis en cache dans le nuage.