Hadoop的优势

一. 与关系型数据库管理系统相比

        1. 处理大数据

        如果数据访问模式中包含大量的硬盘寻址,那么读取大量数据集就必然会花更长的时间(相较于流数据读取模式,流读取主要取决于传输速率)。另一方面,如果数据库系统只更新一小部分记录,那么传统的B树(关系型数据库中使用的一种数据结构,受限于寻址的速率)就更有优势。但数据库系统如果有大量数据更新时,B树的效率就明显落后于MapReduce,因为需要使用“排序/合并”来重建数据库。

       在许多情况下,可以将MapReduce视为关系型数据库管理系统的补充。两个系统之间的差异如图所示。MapReduce比较适合解决需要以批处理方式分析整个数据集的问题,尤其是一些特定目的的分析。RDBMS适用于索引后数据集的点查询和更新,建立索引的数据库系统能够提供对小规模数据的低延迟数据检索和快速更新。MapReduce适合一次写入、多次读取数据的应用,关系型数据库则更适合持续更新的数据集。

                                

        2. 处理半结构化与非结构化数据

        Hadoop和关系型数据库的另一个区别在于它们所操作的数据集的结构化程度。结构化数据是具有既定格式的实体化数据,如XML文档或满足特定预定义格式的数据库表。这是RDBMS包括的内容。另一方面,半结构化数据较松散,虽然可能有格式,但经常被忽略,所以它只能作为对数据结构的一般性指导。例如电子表格,它在结构上是由单元格组成的网格,但是每个单元格内可以保存任何形式的数据。非结构化数据(unstructredata)没有什么特别的内部结构,例如纯文本或图像数据。Hadoop对非结构化或半结构
化数据非常有效,因为它是在处理数据时才对数据进行解释(即所谓的“读时模式”)。这种模式在提供灵活性的同时避免了RDBMS数据加载阶段带来的高开销,因为在中仅仅是一个文件拷贝操作。

        3. 处理非规范化数据

       关系型数据往往是规范的以保持其数据的完整性且不含冗余。规范给理带来了问题,因为它使记录读取成为非本地操作,而Hadoop的核心假设之一偏偏就是可以进行(高速的)流读/写操作。

       Web服务器日志是典型的非规范化数据记录(例如,每次都需要记录客户端主机全名,这会导致同一客户端的全名可能多次出现),这也是Hadooop常适用于分析各种日志文件的原因之一。注意,Hadoop也能够做连接(join)操作,只不过这种操作没有在关系型数据库中用的多。

        4. 可分区处理数据

       MapReduce以及Hadoop中其他的处理模型是可以随着数据规模线性伸缩的。对数据分区后,函数原语(如map和能够在各个分区上并行工作。这意味着,如果输入的数据量是原来的两倍,那么作业的运行时间也需要两倍。但如果集群规模扩展为原来的两倍,那么作业的运行速度却仍然与原来一样快。SOL查询一般不具备该特性。

 

二. 网格计算

        如果节点需要访问的数据量很庞大,很多计算节点就会因为网络带宽的瓶颈问题而不得不闲下来等待数据。Hadoop尽量在计算节点上存储数据,以实现数据的本地快速访问。数据本地化特性是Hadoop数据处理的核心,并因此而获得良好的性能。意识到
网络带宽是数据中心环境最珍贵的资源(到处复制数据很容易耗尽网络带宽)之后,Hadoop通过显式网络拓扑结构来保留网络带宽。注意,这种排列方式并没有降低Hadoop对计算密集型数据进行分析的能力。

        在大规模分布式计算环境下,协调各个进程的执行是一个很大的挑战。最困难的是合理处理系统的部分失效问题(在不知道一个远程进程是否挂了的情况下)同时还需要继续完成整个计算。有了MapReduce,程序员不必担心系统失效的问题,因为框架能够检测到失败的任务并重新在正常的机器上执行,这意味着各个任务之间是彼此独立的。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值