加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

谷歌公司十年前的三项工作,奠定了当今大数据生态的技术基础

发布时间:2020-12-01 04:38:29 所属栏目:建站 来源:网络整理
导读:许多对大数据技术感兴趣的人都听说过 Google 在十年前发表的三项重要成果:Google File System(GFS),MapReduce 和 Bigtable[见表1]。Google 在这些成果中,介绍了其利用通用计算设备成功搭建分布式集群的方法。其中的诸多设计思想在后来被广泛借鉴。 表1

Bigtable 的数据将以 SSTable 的形式持久化存储,SSTable 相关知识请另外自行查阅。其索引结构如图所示:

ca1349540923dd54f62f46315f8913d99d824897

Bigtable 的查询原理是根据 row key, column key, timestamp 等字段,得到对应的 value。相关字段的属性信息如下:

* row key:大小一般在 10-100 bytes,最多 64KB。对一个 row key 的读写操作是原子的;

* column key: 由 column family + column key 组成;

* timestamp:64位整数,以微秒或其他形式存在,用于实现数据的版本管理。在产生时间戳时要避免碰撞。

设计思想

Bigtable 的主要设计思想如下:

1. 可扩展性

2. 高性能

3. 向外提供特别的接口,不支持完全的关系数据模型;

4. 动态支持数据格式和 schema 变化,客户端可以对数据的存放位置进行推断;

5. 索引由 row 和 column 等字符串联合构成;

6. 将数据内容作为不可解释的字符串对待;

05

总结

在以大量 x86 服务器搭建的分布式集群上设计实现系统时,需要考虑的关键问题可以总结如下:

1. 数据分布(Location):数据在集群中的分布。为了提高 I/O 效率,避免主机之间的网络通信成为全局瓶颈,需要对数据在整个集群的分布做出合理安排,将经常被一同访问的数据尽量安置在一起;

2. 容错:考虑在大规模集群中,单点故障可能导致的故障问题;

3. 一致性:分布式场景下需要将数据做分开备份以避免单点故障造成数据永久丢失,这也使得机器间数据状态一致性更难控制;

4. 负载均衡:避免单个机器承担过多工作,应该尽可能发挥每台机器的性能,提升大型工作的执行效率。

个人评价

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读