第一章之初识Hadoop笔记

数据存储与分析

要实现对多个磁盘数据的并行读写  需要解决的很多问题

1  硬件故障问题。硬件多了,发生故障的概率变大。避免数据丢失的是备份。RAID(冗余磁盘阵列),HDFS

2 大多数分析任务需要以某种方式结合大部分数据共同完成分析任务,一个磁盘读取得数据可能需要和另外的99个磁盘中

  读取的数据结合使用,各种分布式系统允许结合多个来源的数据并实现分析,但保证其正确性是一个很大的挑战,

MapReduce提出一个编程模型,该模型将上述磁盘读写问题进行抽象,转换为一个对数据集(由 键/值 对组成)的计算。

该计算由map和reduce两部分组成,而只有这两部分提供对外的接口。与HDFS类似,MapReduce自身也有较高的可靠性。

 

与其它系统比

mapreduce 每个查询至少处理整个数据集或者数据集的很大部分。改变了对传统数据的看法,对存放在磁带什么上面的数据赋予了

创新的机会。

 

关系型数据库管理系统,为什么使用mapreduce

(1)磁盘的发展:寻址(将磁头移动到特定磁盘位置进行读写操作的过程)是导致磁盘操作延迟的主要原因,而传输速率取决于磁盘的带宽。

如果数据访问存在大量寻址,那么读取大量数据集的时间更长。

(2)如果数据库更新的话,只更新一小部分,那么传统的B树(关系数据库的结构,受限于寻址的比例)更有优势,但是数据库更新大量数据的时候,

B树效率会比MapReduce低很多,因为需要使用 “排序/合并”(sort/merge)来重建数据库。

(3)结构化程度不同的数据的处理。结构化(数据的格式如XML),半结构化(数据松散,可能有格式,但总被忽略,例如电子表格),

非结构化(没有内部结构,文本图像什么的).Mapduce 对非结构化和半结构化的处理有效,因为在处理数据的时候才对数据进行解释,MapReduce输入的

键和值并不是数据固有的属性,由分析人员选择的。关系型数据库规范,为了保证完整不冗余 ,mapreduce的核心假设之一就是它可以进行高速的流式读写操作。web服务器的日志就是非规范化的,so 适合分析日志。

 

网格计算

高性能计算是把作业分散到集群的各个机器上,这个机器访问由存储区域网络(SAN)组织的共享文件系统,数据节点需要访问大量地数据,那么计算节点会

因为网络带宽的瓶颈问题而空闲下来等待数据。而MapDuce会尽量在计算节点上存储数据,以便实现数据本地快速访问。

数据本地化(data locality)特征是MapReduce的核心特征。     mapreduce通过显示网络拓扑结构尽力保留网络带宽。

大规模分布式的环境下,协调各个进程间的执行是一个很大的挑战。最难得是合理的处理系统部分失效的问题,在不知道远程的进程是否已经失效的

情况下,还要继续完成整个计算。而Mapduce 让程序员无需考虑这个问题,因为自身的系统能够监测到失败的Map或者Reduce任务,让正常运行的

机器重新执行这些失败的任务,因为采用了 无共享(shared-nothing)框架,所以MapReduce才能够进行失败监测,各个任务间彼此独立。

 

 

 

posted @ 2012-07-20 11:15  honkcal  阅读(301)  评论(0编辑  收藏  举报