Chinaunix首页 | 论坛 | 博客
  • 博客访问: 427520
  • 博文数量: 54
  • 博客积分: 610
  • 博客等级: 上士
  • 技术积分: 721
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-24 10:52
文章分类

全部博文(54)

文章存档

2013年(27)

2012年(11)

2011年(16)

分类: HADOOP

2013-08-05 23:06:54

      前言
      我们生活在数据时代,据统计,06年产生的数据总量为0.18ZB,一ZB等于10亿TB 。不仅仅公司会产生电子数据,比如服务器日志,大数据于我们个人来说也是密切相关,例如我们访问的页面,淘过的产品,搜索过的物品等等,这些所有信息经过适当保存,分析,都会成为有用的数据。
     产生
    无法分析,挖掘的大数据是毫无用处的。
    在分析之前,我们遇到的一个大问题,数据读取。多年以来,我们的磁盘存储在快速增加的同时,访问速度却没有相应大规模提高,现在1TB的硬盘已经相当流行,假设数据传输速度为100M/S,那么我们需要2个多小时来读取,当然,写入熟读就跟慢。
   假设我们使用并行式读写,使用100个磁盘,每一个磁盘存储读取其中一部分,那么我们可以很快的读取完毕。
   但是事情没有这么简单,还有很多问题需要思考:
   A,硬件故障。采用备份,一旦某个硬盘出现故障,使用备份的数据进行恢复,Hadoop使用的HDFS使用的也是备份原理,但是具体机制有所不同(SecondNameNode?)
    B,多个节点如何共同完成任务?MapReduce将磁盘读写问题抽象,并转换为 键,值 的计算。

  简而言之,Hadoop提供了一个可靠的的共享存储和分析系统,HDFS实现存储,Map/Reduce实现分析处理,这两部分是她的核心。
  
  与其他系统对比
        1,关系型数据库管理系统
           问题: 为什么不数据库来对磁盘上的数据进行管理呢?
               首先磁盘寻址的提高远远的慢于传输速度的提高。如果数据的访问模式中包含大量的磁盘寻址,那么读取大量数据集的时间势必更长(相对于流式的数据读取)
              另一方面,如果数据仅仅更新一小部分,那么关系型数据库管理程序更有优势,但是当大数据更新的时候,mapreduce更有优势。
              很多时候,可以将Map/Reduce视为关系型数据库管理系统的补充,它适合一次写入,多次读取数据的应用,而关系型数据库管理系统更适合持续更新的数据集。
        
两者对比:
       
        另一方面,Map/Reduce对于非结构化或者半结构化数据处理非常有效。换句话说,Map/Reduce输入的键值并不是数据固有的属性,而是由分析人员选择的。
       2,网格计算(Grid Computing)

         从广义上来讲,高性能计算的方法是将作业分配到集群的各个机器上,比较实用于计算密集型作业,但是如果节点需要访问更大量的计算,那么很多节点将受限于网络宽带的瓶颈而空闲下来等待数据。
        Map/Reduce 会尽量在计算节点上存储数据,以实现数据的本地快速访问。数据本地化(Data locality)是Map/Reduce的核心特性。
阅读(2055) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~