Chinaunix首页 | 论坛 | 博客
  • 博客访问: 629897
  • 博文数量: 149
  • 博客积分: 3901
  • 博客等级: 中校
  • 技术积分: 1558
  • 用 户 组: 普通用户
  • 注册时间: 2009-02-16 14:33
文章分类

全部博文(149)

文章存档

2014年(2)

2013年(10)

2012年(32)

2011年(21)

2010年(84)

分类:

2010-06-04 10:07:18


首先 :

服务器角色: client , master(元数据结构存储) , chunk server
  client <1-控制流-1> master
  client <1-数据流-×> chunk server

× gfs 的一些特性:
 1. 采用中心服务器模式 :
      优点 : 扩展方便 chunk 只需在 master上注册即可
      缺点 : master 性瓶颈
 2. 不缓存数据
 3. 在用户态下实现
 4. 只提供专用接口

× 容错机制 :
  1. master  容错
     。 维护 命名空间,整个文件系统目录结构
     。 chunk 与文件名的映射表
     。 chunk 副本的位置信息,每一个 chunk 默认有3个副本

  2. chunk server 容错
     。 每个 chunk 必须所有副本写入成功。
     。 如果 副本数低于 设定值 ,master 会自动 复制到其他 chunk 直到达到 设定值
     。 每个  chunk 64M > block 64kb > 每个block 对应一个 32bit 校正和 , 如果校正和 与当前读取数据 不配,返回错误,并其他 chunk 读取副本

* 系统管理技术
  。 大规模安装技术
  。 故障检测技术
  。 节点动态加入技术
  。 节能技术

并行数据处理 mapreduce < 从函数,矢量编程语言借鉴过来的
  原理:  map: ( in_key,in_value ) --> { 中间结果 : (key,value) .... }
        reduce : ( key,[value,....] ) --> ( key,final_value )
  1. 把输入文件 分成 M块(16~64M),分别存储到 chunk 中
      * master  会选择 空闲的 chunk 来执行 map , reduce
  2. 分配到 存储 执行 map 操作
       执行 ( in_key,in_value ) --> { 中间结果 : (key,value) .... }
  3. map后的中间结果,硬盘化本地位置信息发送给 master ,
               然后 master 负责把位置信息发送给 reduce 机器
  4. reduce机器 进行远程读取数据,并排序 。同一 key 合并 value
        reduce :( key,[value,....] )
     再次循环 3,4 到最终结果
  5. 返回 结果给 原始程序 调用点





阅读(890) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~