首先 :
服务器角色: 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. 返回 结果给 原始程序 调用点
阅读(933) | 评论(0) | 转发(0) |