Hadoop与MapReduce 分布式文件系统

来源:互联网 发布:查找质数的算法 编辑:程序博客网 时间:2024/05/24 06:56
最终一致性键值存储
Cassandra 
内存键值存储 
Memcached 
持久化键值存储 
BigTable 


Key/value 硬盘存储
BigTable
Key/value RAM存储
Memcached


MapReduce是Google提出的一个软件架构,用于大规模数据集(大于1TB)的并行运算。概念“Map(映射)”和“Reduce(化简)”,及他们的主要思想,都是从函数式编程语言借来的,还有从矢量编程语言借来的特性。


MapReduce通过把对数据集的大规模操作分发给网络上的每个节点实现可靠性;每个节点会周期性的把完成的工作和状态的更新报告回来。如果一个节点保持沉默超过一个预设的时间间隔,主节点(类同Google档案系统中的主服务器)记录下这个节点状态为死亡,并把分配给这个节点的数据发到别的节点。每个操作使用命名文件的不可分割操作以确保不会发生并行线程间的冲突;当文件被改名的时候,系统可能会把他们复制到任务名以外的另一个名字上去。(避免副作用)。


化简操作工作方式很类似,但是由于化简操作在并行能力较差,主节点会尽量把化简操作调度在一个节点上,或者离需要操作的数据尽可能近的节点上了;这个特性可以满足Google的需求,因为他们有足够的带宽,他们的内部网络没有那么多的机器。




BigTable是一种压缩的、高性能的、高可扩展性的,基于Google文件系统(Google File System,GFS)的数据存储系统,用于存储大规模结构化数据,适用于云计算。


BigTable发展于2004年[1],现今已成为Google的应用程序。像是MapReduce就常通过BigTable来存储或更改数据,[2]其他还有Google Reader[3]、Google Maps[4]、Google Book Search、"My Search History"、 Google Earth、Blogger.com、Google Code hosting、Orkut[4]、YouTube[5]以及Gmail[6]等。Google自行发展出特别的巨型数据库的原因,自然是性能的问题。


Hadoop是Apache软件基金会所研发的开放源码并行运算编程工具和分散式档案系统,与MapReduce和Google档案系统的概念类似。


Hadoop在Yahoo!的应用
2008年2月19日,Yahoo!使用10,000个微处理器核心的Linux计算机集群运行一个Hadoop应用程式。
原创粉丝点击