【问题标题】:Difference between Memcached and Hadoop?Memcached 和 Hadoop 的区别?
【发布时间】:2011-12-10 13:59:55
【问题描述】:

Memcached 和 Hadoop 之间的基本区别是什么? Microsoft 似乎使用 Windows Server AppFabric 进行 memcached。

我知道 memcached 是一个使用多个服务器的巨型键值散列函数。什么是 hadoop,hadoop 与 memcached 有何不同?它是用来存储数据的吗?对象?我需要在内存中保存巨大的对象,但似乎我需要某种方法将这些巨大的对象分成人们正在谈论的“块”。当我考虑将对象拆分为字节时,Hadoop 似乎正在弹出。

我有一个巨大的内存类,内存超过 100 mb。我需要复制这个对象,以某种方式缓存这个对象。当我研究缓存这个怪物对象时,似乎我需要像谷歌那样拆分它。谷歌是如何做到这一点的。 hadoop 在这方面如何帮助我。我的对象不是简单的结构化数据。里面有上下类的引用等等。

任何想法、指示、想法、猜测都是有帮助的。

谢谢。

【问题讨论】:

  • Hadoop 在内存中不存储任何内容,它通常在磁盘上存储一些内容,然后位于 HDFS 中。如果您正在寻找 NoSQL 解决方案,请选择 MongoDB 或 Cassandra 等键/值存储。 HBase 似乎不适合您。

标签: memcached hadoop mapreduce distributed appfabric


【解决方案1】:

Memcache 无法工作,因为它对存储对象的值有限制。 memcache faq 。我在某个地方看到这个限制可以增加到 10 mb,但我找不到链接。

对于您的用例,我建议尝试使用 mongoDB。 mongoDb faq 。 MongoDB 可以用作 memcache 的替代品。它提供了 GridFS 用于在 DB 中存储大型文件系统。

【讨论】:

    【解决方案2】:

    memcached [http://en.wikipedia.org/wiki/Memcached] 是一种专注于分布式缓存的技术。

    apache hadoop [http://hadoop.apache.org/] 是一个分布式数据处理框架——针对 google/amazon 规模的数 TB 数据。它包括针对该问题不同领域的子项目 - 分布式数据库、分布式处理算法、报告/查询、数据流语言。

    这两种技术解决了不同的问题。一种是用于在集群中缓存(小型或大型项目)。第二个是跨集群处理大型项目。从您的问题看来,memcached 更适合您的问题。

    【讨论】:

      【解决方案3】:

      选择一个好的解决方案取决于预期用途的要求,比如永久存储法律文件与免费音乐服务之间的区别。例如,可以重新创建对象还是它们是独一无二的?他们是否需要进一步的处理步骤(即 MapReduce)?需要多快检索一个对象(或它的一部分)?这些问题的答案将广泛影响解决方案集。

      如果可以足够快地重新创建对象,一个简单的解决方案可能是使用 Memcached,正如您在许多机器上所提到的那样,它们的内存总量足够。为了以后添加持久性,CouchBase(以前的 Membase)值得一看,并用于非常大的游戏平台的生产环境中。

      如果无法重新创建对象,请确定 S3 和其他云文件提供程序是否暂时无法满足要求。对于高吞吐量访问,请考虑以下几种分布式、并行、容错文件系统解决方案之一:DDN(具有 GPFS 和 Lustre 设备)、Panasas (pNFS)。我用过 DDN 设备,它的价格比 Panasas 好。两者都提供了比 DIY BackBlaze 更受支持的良好解决方案。

      有一些分布式并行文件系统的大部分免费实现,例如GlusterFSCeph,它们正在获得关注。 Ceph 吹捧一个与 S3 兼容的网关,并且可以使用 BTRFS(Lustre 的未来替代品;更接近生产就绪)。 Ceph architecture and presentations。 Gluster 的优势在于可以选择商业支持,尽管可能有供应商支持 Ceph 部署。 Hadoop's HDFS 可能具有可比性,但我最近没有对其进行评估。

      【讨论】:

        【解决方案4】:

        您需要使用纯 Hadoop 来满足您的需求(没有 HBASE、HIVE 等)。 Map Reduce 机制会将您的对象拆分为许多块并将其存储在 Hadoop 中。 Map Reduce 的教程是here。但是,不要忘记 Hadoop 首先是用于海量计算和存储的解决方案。在您的情况下,我还建议检查 Membase,它是具有附加存储功能的 Memcached 实现。您将无法使用 memcached/membase 映射 reduce,但它们仍然是分布式的,并且您的对象可能以云方式缓存。

        【讨论】:

          猜你喜欢
          • 2013-10-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-12-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多