大数据的数据存储与分析---摘自《Hadoop权威指南第2版中文版》

思想一:

数据存储与分析:

         我们已经有了大量的数据,这是个好消息。不幸的是,我们当下正纠结于存储和分析这些数据。我们遇到的问题很简单:读取一个磁盘中所有的数据需要很长时间,写甚至更慢。

一个很简单的减少读取时间的办法是同时从多个磁盘上读取数据。

试想,如果我们拥有100个磁盘,每个磁盘存储1%的数据,并行读取,那么读取速度就可以提高100倍。仅使用磁盘容量的1%似乎很浪费,但我们可以一个磁盘存储100个数据集,并实现共享磁盘的访问。并且,从统计角度来看,用户的分析工作会在不同的时间点进行,所以互相之间的干扰不会太大。

尽管如此,但要实现对多个磁盘数据的并行读写,还有更多的问题要解决。

第一个问题就是硬件故障。一旦使用多个硬件,其中任一硬件发生故障的概率将非常高。避免数据丢失的常用做法是使用备份。

第二个问题是,大多数分析任务,需要以某种方式结合大部分数据,共同完成分析任务,即从一个磁盘读取的数据可能需要和从另外99个磁盘中读取的数据结合使用。各种分布式系统允许结合多个来源的数据并实现分析,但保证其正确性是一个非常大的挑战。MapReduce提出了一个编程模型,该模型将上述磁盘读写的问题进行抽象,并转换为对一个数据集(由键/值对组成)的计算,该计算由map和reduce两部分组成。

 

简而言之,Hadoop提供了一个可靠的共享存储和分析系统。HDFS实现存储,而MapReduce实现分析处理。这两部分是Hadoop的核心。