Google's BigTable 原理 (翻译) 题记:google 的成功除了一个个出色的创意外,还因为有 Jeff Dean 这样的软件架构天才。 ------ 编者 官方的 Google Reader blog 中有对BigTable 的解释。这是Google 内部开发的一个用来处理大数据量的系统。这种系统适合处理半结构化的数据比如 RSS 数据源。 以下发言 是 Andrew Hitchcock 在 2005 年10月18号 基于: Google 的工程师 Jeff Dean 在华盛顿大学的一次谈话 (Creative Commons License). 首先,BigTable 从 2004 年初就开始研发了,到现在为止已经用了将近8个月。(2005年2月)目前大概有100个左右的服务使用BigTable,比如: Print,Search History,Maps和 Orkut。根据Google的一贯做法,内部开发的BigTable是为跑在廉价的PC机上设计的。BigTable 让Google在提供新服务时的运行成本降低,最大限度地利用了计算能力。BigTable 是建立在 GFS ,Scheduler ,Lock Service 和 MapReduce 之上的。 每个Table都是一个多维的稀疏图 sparse map。Table 由行和列组成,并且................... **Google's BigTable原理概述** Google的BigTable是一款强大的分布式数据存储系统,旨在处理大规模的半结构化数据。它的设计理念和实现技术对于现代云服务和大数据处理有着深远的影响。BigTable的设计灵感来源于NoSQL数据库运动,它允许快速、灵活地存储和检索大量非关系型数据。 **核心组件** 1. **GFS(Google File System)**: BigTable建立在GFS之上,利用其分布式文件系统的能力,提供高可用性和容错性。GFS保证了数据的可靠存储和高效的文件访问。 2. **Scheduler**: 用于分配和调度任务,确保BigTable的高效运行。Scheduler负责Tablets的分配和负载均衡,确保数据的均匀分布和系统的高性能。 3. **Lock Service**: 提供分布式锁机制,确保在多节点环境下对数据的并发访问得到正确控制,防止数据冲突。 4. **MapReduce**: 作为数据分析和处理框架,MapReduce与BigTable结合,可以执行大规模的数据处理任务,如数据聚合、分析等。 **数据模型** BigTable的数据模型是一个多维稀疏映射(sparse map),由行、列族和时间戳组成: - **行(Rows)**: 行是数据的基本组织单位,通常由URLs或其他唯一标识符来表示。 - **列族(Column Families)**: 列族是一组相关列的集合,如"contents"或"language",它们共享相同的存储和访问特性。 - **列(Columns)**: 属于特定列族的列,如"contents:html"或"language:EN",可以存储不同类型的数据。 - **时间戳(Timestamps)**: 每个存储单元(cell)都有一个时间戳,用于记录数据的历史版本,便于追踪和回溯数据变化。 **Tablets和分布式存储** 为了管理庞大的数据量,Tablets是Table的分区,每个Tablet大约100-200MB。Tablets分布在多个机器上,通过GFS和负载均衡策略,实现数据的高效访问和分布。Tablets以不可变的SSTables(Sorted String Tables)形式存储,便于快速查询。系统通过主要和次要压缩来优化空间使用和性能。 **元数据管理** BigTable的元数据管理涉及到METAO tablets,它们维护着Tablets的位置信息,形成一个三层结构。客户端通过METAO找到数据所在的Tablets,进而获取所需信息。这个层次结构有助于减少元数据查找的延迟,提高整体性能。 **列的灵活性** 列在BigTable中具有很大的灵活性,可以动态添加。列的信息包含属性和规则,如数据复制数量、保留时间等。这些规则在Tablets重建时应用,以满足数据管理和生命周期管理的需求。 **总结** Google's BigTable是Google成功的关键组成部分之一,它提供了一种高效、可扩展的方式来处理和存储海量的半结构化数据。通过其独特的数据模型、分布式架构以及对GFS、MapReduce等技术的整合,BigTable为大数据处理和互联网服务提供了强大的支撑。

























- 粉丝: 0
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 东北师范大学奥鹏算法分析与设计20春在线作业2标准答案------.pdf
- 基于单片机停车场设计文献综述.doc
- 电子商务物流体系的探析以京东商城为例.doc
- 计算机网络重点知识总结谢希仁版.doc
- 复杂网络无标度特性.ppt
- 2023年助理电子商务师个人整理题库.doc
- 使用Project进行项目管理.doc
- 网络存储NAS解决方案样本.doc
- 软件工程测试实验.doc
- 基于51单片机最小系统设计.doc
- 基于前项差分和动态阈值的PPG心率测量算法.pdf
- 实训-XX产品网络营销分析.doc
- 工程项目管理的基本方法.docx
- 十字路口带倒计时显示的交通信号灯控制的课程设计.doc
- 工程项目管理补充知识.doc
- 从零开始基于QEMU虚拟化平台构建RISC-V64架构嵌入式开发板并移植操作系统的完整教程项目-包含硬件仿真环境搭建-设备树编写-外设驱动开发-操作系统移植-交叉编译工具链配置-调.zip


