Memcached和Hadoop之间的基本区别是什么? Microsoft似乎使用Windows Server AppFabric进行memcached。
我知道memcached是一个使用多个服务器的巨型键值散列函数。什么是hadoop以及hadoop与memcached有何不同?它用于存储数据吗?对象?我需要在内存对象中保存巨人,但似乎我需要某种方式将这些巨大的对象分成像人们所说的“块”。当我考虑将对象拆分为字节时,似乎Hadoop正在弹出。
我的内存中有一个巨大的类,内存中的内存超过100 MB。我需要复制这个对象,以某种方式缓存这个对象。当我考虑缓存这个怪物对象时,似乎我需要像谷歌一样分割它。谷歌如何做到这一点。在这方面,hadoop如何帮助我。我的对象不是简单的结构化数据。它在里面的类里面都有引用,等等。
任何想法,指针,想法,猜测都是有帮助的。
感谢。
答案 0 :(得分:4)
memcached [http://en.wikipedia.org/wiki/Memcached]是一种专注于分布式的分布式缓存技术。
apache hadoop [http://hadoop.apache.org/]是一个用于分布式数据处理的框架 - 针对谷歌/亚马逊,可以扩展许多TB的数据。它包括针对该问题的不同领域的子项目 - 分布式数据库,分布式处理算法,报告/查询,数据流语言。
这两种技术可以解决不同的问题。一种是跨群集缓存(小型或大型项目)。第二个是处理群集中的大项目。从您的问题来看,听起来像memcached更适合您的问题。
答案 1 :(得分:1)
Memcache由于对存储对象值的限制而无法工作。 memcache faq。我读了一些地方,这个限制可以增加到10 mb,但我无法找到链接。
对于您的用例,我建议尝试使用mongoDB。 mongoDb faq。 MongoDB可以用作memcache的替代品。它提供了GridFS,用于在DB中存储大型文件系统。
答案 2 :(得分:0)
选择一个好的解决方案取决于预期用途的要求,比如将法律文件永久存储到免费音乐服务之间的区别。例如,可以重新创建对象还是它们具有独特的特殊性?他们是否需要进一步的处理步骤(即MapReduce)?一个对象(或它的一部分)需要多快检索?这些问题的答案会对广泛的解决方案产生影响。
如果可以足够快地重新创建对象,那么一个简单的解决方案可能是使用Memcached,正如您在许多总计足够ram的计算机中所提到的那样。为了在以后添加持久性,CouchBase(以前的Membase)值得一看,并用于非常大型游戏平台的制作。
如果无法重新创建对象,请确定S3和其他云文件提供程序目前是否不符合要求。对于高throuput访问,请考虑几个分布式,并行,容错文件系统解决方案之一:DDN(具有GPFS和Lustre齿轮),Panasas(pNFS)。我使用过DDN装备,它的价格比Panasas更好。两者都提供了比DIY BackBlaze更加可支持的良好解决方案。
有一些主要是免费的分布式并行文件系统实现,如GlusterFS和Ceph正在获得牵引力。 Ceph吹捧一个兼容S3的网关,可以使用BTRFS(未来替代Lustre;更接近生产就绪)。 Ceph architecture and presentations。 Gluster的优势在于商业支持的选择,尽管可能有供应商支持Ceph部署。 Hadoop's HDFS可能具有可比性,但我最近没有评估过。
答案 3 :(得分:0)
您需要使用纯Hadoop来满足您的需求(没有HBASE,HIVE等)。 Map Reduce机制将您的对象拆分为多个块并将其存储在Hadoop中。 Map Reduce教程是here。但是,不要忘记Hadoop首先是大规模计算和存储的解决方案。在你的情况下,我还建议检查Membase,它是具有附加存储功能的Memcached的实现。您将无法使用memcached / membase映射reduce,但这些仍然是分布式的,您的对象可能以云方式缓存。