




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Google核心数据库优化及处理技术 MapReduce首先 在Google数据中心会有大规模数据需要处理 比如被网络爬虫 WebCrawler 抓取的大量网页等 由于这些数据很多都是PB级别 导致处理工作不得不尽可能的并行化 而Google为了解决这个问题 引入了MapReduce这个编程模型 MapReduce是源自函数式语言 主要通过 Map 映射 和 Reduce 化简 这两个步骤来并行处理大规模的数据集 Map会先对由很多独立元素组成的逻辑列表中的每一个元素进行指定的操作 且原始列表不会被更改 会创建多个新的列表来保存Map的处理结果 也就意味着 Map操作是高度并行的 当Map工作完成之后 系统会先对新生成的多个列表进行清理 Shuffle 和排序 之后会这些新创建的列表进行Reduce操作 也就是对一个列表中的元素根据Key值进行适当的合并 接下来 举一个MapReduce的例子 比如 通过搜索Spider将海量的Web页面抓取到本地的GFS集群中 然后Index系统将会对这个GFS集群中多个数据Chunk进行平行的Map处理 生成多个Key为URL value为html页面的键值对 Key ValueMap 接着系统会对这些刚生成的键值对进行Shuffle 清理 之后系统会通过Reduce操作来根据相同的key值 也就是URL 合并这些键值对 最后 通过MapReduce这么简单的编程模型 不仅能用于处理大规模数据 而且能将很多繁琐的细节隐藏起来 比如自动并行化 负载均衡和机器宕机处理等 这样将极大地简化程序员的开发工作 MapReduce可用于包括 分布grep 分布排序 web访问日志分析 反向索引构建 文档聚类 机器学习 基于统计的机器翻译 生成Google的整个搜索的索引 等大规模数据处理工作 Yahoo也推出MapReduce的开源版本Hadoop 而且Hadoop在业界也已经被大规模使用 SawzallSawzall可以被认为是构建在MapReduce之上的采用类似Java语法的DSL Domain SpecificLanguage 也可以认为它是分布式的AWK 它主要用于对大规模分布式数据进行筛选和聚合等高级数据处理操作 在实现方面 是通过解释器将其转化为相对应的MapReduce任务 除了Google的Sawzall之外 yahoo推出了相似的Pig语言 但其语法类似于SQL BigTable由于在Google的数据中心存储PB级以上的非关系型数据时候 比如网页和地理数据等 为了更好地存储和利用这些数据 Google开发了一套数据库系统 名为 BigTable BigTable不是一个关系型的数据库 它也不支持关联 join 等高级SQL操作 取而代之的是多级映射的数据结构 并是一种面向大规模处理 容错性强的自我管理系统 拥有TB级的内存和PB级的存储能力 使用结构化的文件来存储数据 并每秒可以处理数百万的读写操作 什么是多级映射的数据结构呢 就是一个稀疏的 多维的 排序的Map 每个Cell由行关键字 列关键字和时间戳三维定位 Cell的内容是一个不解释的字符串 比如下表存储每个网站的内容与被其他网站的反向连接的文本 反向的URLn www是这行的关键字 contents列存储网页内容 每个内容有一个时间戳 因为有两个反向连接 所以archor的ColumnFamily有两列 anchor 和anchhor my look ca ColumnFamily这个概念 使得表可以轻松地横向扩展 在结构上 首先 BigTable基于GFS分布式文件系统和Chubby分布式锁服务 其次BigTable也分为两部分 其一是Master节点 用来处理元数据相关的操作并支持负载均衡 其二是tablet节点 主要用于存储数据库的分片tablet 并提供相应的数据访问 同时tablet是基于名为SSTable的格式 对压缩有很好的支持 BigTable正在为Google六十多种产品和项目提供存储和获取结构化数据的支撑平台 其中包括有GooglePrint Orkut GoogleMaps GoogleEarth和Blogger等 而且Google至少运行着500个BigTable集群 随着Google内部服务对需求的不断提高和技术的不断地发展 导致原先的BigTable已经无法满足用户的需求 而Google也正在开发下一代BigTable 名为 Spanner 扳手 它主要有下面这些BigTable所无法支持的特性 1 支持多种数据结构 比如table familie group和coprocessor2 基于分层目录和行的细粒度的复制和权限管理 3 支持跨数据中心的强一致性和弱一致性控4 基于Paxos算法的强一致性副本同步 并支持分布式事5 提供许多自动化操作 6 强大的扩展能力 能支持百万台服务器级别的集群 7 用户可以自定义诸如延迟和复制次数等重要参数以适应不同的需求 数据库ShardingSharding就是分片的意思 虽然非关系型数据库比如BigTable在Google的世界中占有非常重要的地位 但是面对传统OLTP应用 比如广告系统 Google还是采用传统的关系型数据库技术 也就是MySQL 同时由于Google所需要面对流量非常巨大 所以Google在数据库层采用了分片 Sharding 的水平扩展 ScaleOut 解决方案 分片是在传统垂直扩展 ScaleUp 的分区模式上的一种提升 主要通过时间 范围和面向服务等方式来将一个大型的数据库分成多片 并且这些数据片可以跨越多个数据库和服务器来实现水平扩展 Google整套数据库分片技术主要有下面这些优点 1 扩展性强 在Google生产环境中 已经有支持上千台服务器的MySQL分片集群 2 吞吐量惊人 通过巨大的MySQL分片集群能满足巨量的查询请求 3 全球备份 不仅在一个数据中心还是在全球的范围 Google都会对MySQL的分片数据进行备份 这样不仅能保护数据 而且方便扩展 在实现方面 主要可分为两块 其一是在MySQLInnoDB基础上添加了数据库分片的技术 其二是在ORM层的Hibernate的基础上也添加了相关的分片技术 并支持虚拟分片 VirtualShard 来便于开发和管理 同时Google也已经将这两方面的代码提交给相关组织 数据中心优化技术数据中心高温化更多信息见台湾服务器 12V电池由于传统的UPS在资源方面比较浪费 所以Google在这方面另辟蹊径 采用了给每台服务器配一个专用的12V电池的做法来替换了常用的UPS 如果主电源系统出现故障 将由该电池负责对服务器供电 虽然大型UPS可以达到92 到95 的效率 但是比起内置电池的99 99 而言是非常捉襟见肘的 而且由于能量守恒的原因 导致那么未被UPS充分利用的电力会被转化成热能 这将导致用于空调的能耗相应地攀升 从而
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 针织技艺在环保袋设计中的创新应用考核试卷
- 针织品生产成本分析与控制考核试卷
- 危重病人麻醉前评估要点
- 制冷离心压缩机叶轮设计
- 妇科疾病科普课件
- 公共卫生儿童保健知识
- 儿童呼吸心跳骤停的护理
- 计量员工作汇报
- 第21课《古代诗歌五首:望岳》课件 2024-2025学年统编版语文七年级下册
- Hypelcin-A-II-生命科学试剂-MCE
- 2025年上海徐汇区高一(下)信息技术合格考试题及答案
- 2025春季学期国开电大本科《人文英语4》一平台机考真题及答案(第二套)
- 培训中心全套管理制度
- 江苏省-苏州市昆山市城北中学2024-2025学年七年级下学期期末质量调研历史卷(含答案)
- 2025年江苏省金陵中学英语八下期末学业质量监测试题含答案
- DB31-T 1545-2025 卫生健康数据分类分级要求
- 【薪智】2025地产建筑业行业白皮书人力核心指标行业报告系列
- 轻资产运营项目合同协议
- 《蓝莓栽培技术》课件
- 监护证考试试题及答案
- 2022石油化工消防设施维护保养技术标准
评论
0/150
提交评论