CSDN话题挑战赛第2期
参赛话题:万家争鸣的云计算修罗场
我想分享的云计算技能/知识点
MapReduce 是什么?它如何对中间结果进行合并?
该技能/知识点的背景介绍
将云计算按照服务类型可以分为三类:Iaas,Paas,Saas。
Iaas :将基础设施作为服务,将硬件设备等基础资源封装成服务供用户使用。
-
- Amazon EC2 弹性云计算服务
- Amazon S3 简单存储服务
- Amazon Web Services
- (如上,都是底层的硬件环境,提供的只是基本硬件环境,云计算或者存储所需要的高性能CPU计算和大容量硬盘。)
Paas:将平台作为服务,提供用户应用程序的运行环境。
-
- Google App Engine
- Microsoft Windows Azure
- Amazon MapReduce (仿 Google MapReduce)
- Amazon SimpleDB(仿 Goggle BigTable)
- (如上,都是基本的操作系统平台、引擎、数据库系统,类似于一个空白的 IDE )
Saas:将软件作为服务,只提供某些专门用途的服务供应用调用。
-
- Salesforce online CRM 在线客户关系管理服务
- Amazon FPS 电子商务服务
- Amazon DevPay
- Amazon Alexa Web 网站访问统计服务
- (如上,提供的都是专门的针对某一服务的特定制作的应用解决方案,类似于 App)
MapReduce 是 Google 提出的一个软件架构,是一种处理海量数据的并行编程模式,用于大规模数据集的并行运算。其主要思想是 Map(映射) 和 Reduce(化简)。它具有函数式编程语言和矢量编程语言的共性,非常适合于非结构化和结构化的大数据运算环境(搜索、挖掘、分析、机器学习)。
MapReduce 的编程模型:
-
- 一个 Map 函数对应一部分原始数据,对这部分的原始数据进行映射操作。
- Map 之间是互相独立的,使得它们可以充分并行化。
- 一个 Reduce 操作是对每个 Map 所产生的一部分的中间结果进行合并操作。
- Reduce 之间是互相独立的,其产生过的最终结果简单的连接就形成了完成的结果集。
该技能/知识点实际运用
BigTable 是并行运算软件架构还是软件模式?它是干什么的?它与其他传统的数据库有什么区别?
BigTable 是一个 Google 开发的基于 GFS 和 Chuuy 的结构化的分布式存储系统。
BigTable 的基本目标:
-
- 广泛的适应性。
- 很强的可扩展性。
- 高可用性。
- 简单性。
BigTable 的数据模型:
-
- BigTable 是一个分布式多维映射表,表中的数据通过一个行关键字、列关键字以及一个时间戳进行索引。
BigTable 与传统数据库之间的区别:
-
- 从系统架构的角度来说,互联网应用更加看重系统性能以及伸缩性,而传统企业级应用都是比较看重数据完整性和数据安全性。
- 传统数据库是面向行存储的,适合于事务性要求严格场合。但是云计算的数据库 BigTable,HBase 等都是面向列存储的,可以实现高性能的并发读写操作,有较好的水平伸缩性。
总结
云计算的优势:
-
- 在于它的技术特征和规模效应所带来的压倒性的性能价格比优势。
云计算的定义:
-
- 通过网络提供可动态伸缩的廉价的计算和存储能力。
云计算的主要特征:
-
- 对资源的整合和动态配置。
云计算的概念最先由Google在2006年提出,同年Google,Amazon,Microsoft相继提出云计算服务。
云计算领域的代表:
-
- 国外:Amazon,Google,Microsoft,VMware,Salesforce,Facebook,YouTube,Myspace
- 国内:阿里云、腾讯、七牛云、UCloud
云计算的特点:
-
- 超大规模
- 虚拟化
- 高可靠性
- 通用型
- 高可伸缩性
- 按需服务
- 极其廉价