本帖最后由 maid 于 2012-9-11 11:13 编辑
在Hadoop集群中,数据被分布到集群的各个结点,Hadoop Distributed File System (HDFS)将大的数据文件分成块,将这些块交由集群中的结点处理,并且每个块都会复制到不同的几个机器上,所以一台机器崩溃不会导致数据丢失,监测系统会对结点崩溃做出反应,重新复制数据,即部分存储(partial storage)。
即便文件块被复制分布到不同的机器,但它们形成了一个单一的命名空间,所以它们的内容还是全局可访问的。
在Hadoop的编程框架中,概念上来说,数据是面向记录的。
每个输入文件都被以行或其它特定的应用逻辑格式分开。
集群中的每个结点的每个进程都会处理这分开文件的一部分,Hadoop框架再根据分布式文件系统的信息调试进程到数据/记录的位置,因为文件以块的形式存在于分布式文件系统中,每个结点上的每个计算进程处理数据的一个子集。
哪些数据要被一个结点处理是由数据本身的存放位置决定的。大部分数据是直接地从磁盘读入CPU,这减少了网络带宽的限制,也防止了不必要的网络传输。
这种策略是将计算移动到数据,而不是将数据移动到计算,这使得Hadoop有丰很高的数据本地性,从而它就有着很高的性能。