1.什么是云计算
- 云计算(Cloud Computing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。
- 云计算是一种按使用量付费的模式,这种模式是提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池,这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。
2.云计算的产生背景
- 云计算是继20世纪80年代大型计算机到客户/服务器的大转变的又一种巨变。
- 云计算是分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network Storage Technologies)、虚拟化(Virtualization)、负荷均衡(Load Balance)、热备份冗余(High Available)等传统计算机和网络技术发展融合的产物。
3.云计算的发展历史
- P2
4.分布式计算(定义/优点)
- 定义:
分布式计算是一种计算方法,和集中式计算是相对的。
分布式计算将应用分解为许多更小的部分,分配到多台计算机进行处理,这样可以节省整体计算时间,大大提高计算效率。
- 优点:
发挥“集体的力量”,将大任务分解成小任务,分配给多个计算节点同时去计算。
5.云计算的关键技术
- 分布式海量数据存储
- 虚拟化技术
- 云平台技术
- 并行编程技术
- 数据管理技术
6.虚拟化技术(定义/优点)
- 定义:
虚拟化技术是云计算系统的核心组成部分之一,是将各种计算及存储资源充分整合和高效利用的关键技术。
- 优点:
资源共享
资源定制
细粒度资源管理
7.云交付模型
- 软件及服务(Software as a Service,SaaS)
- 平台及服务(Platform as a Service,Paas)
- 基础设施服务(Infrastructure as a Service,IaaS)
- 基本云交付模型的比较
云交付模型 | 服务对象 | 使用方式 | 关键技术 | 用户的控制等级 |
IaaS | 需要硬件资源的用户 | 使用者上传数据、程序代码、环境配置 | 虚拟化技术、分布式海量数据存储等 | 使用和配置 |
PaaS | 程序开发者 | 使用者上传数据、程序代码 | 云平台技术、数据管理技术等 | 有限的管理 |
SaaS | 企业和需要软件应用的用户 | 使用者上传数据 | Web服务技术、互联网应用开发技术等 | 完全的权限 |
8.云部署模式
- 公有云
为外部客户提供服务的云,它所有的服务是供别人使用,而不是自己使用
- 私有云
指企业自己使用的云,它所有的服务不是供别人使用,而是供自己内部人员或分支机构使用
- 混合云
指供自己和客户共同使用的云,它所提供的的服务既可以供别人使用,也可以供自己使用
9.云计算的优势与挑战
- P14
10.典型云应用
- 云存储
- 云服务
- 云物联
11.什么是虚拟化
- 虚拟化是指计算机软件在虚拟的基础上而不是在真实的,独立的物理硬件基础上运行。
12.虚拟化带来的好处
- 提高资源利用率
- 降低成本,节能减排
- 统一管理
- 提高安全性
13.虚拟化的分类
- 服务器虚拟化
- 网络虚拟化
- 存储虚拟化
14.虚拟化与云计算
- 云计算将是下一代计算模式的演变方向,而虚拟化则是实现这种转变的最为重要的基石。虚拟化技术与云计算几乎是相辅相成的,在云计算涉及的地方,都有虚拟化的存在,可以说,虚拟化的技术是云计算实现的关键,没有虚拟化技术,谈不上云计算的实现。所以虚拟化与云计算有着紧密的关系,有了虚拟化的发展,使云计算成为可能,而随着云计算的发展,带动虚拟化技术进一步的成熟和完善。
15.云计算的特点
- 跨平台性
- 易用性
- 轻量性
16.大数据的特点
- Volume(体量)
- Variety(多样)
- Velocity(速率)
- Value(价值)
17.大数据存储的问题
- 容量
- 延迟
- 安全
- 成本
- 灵活性
18.HDFS(分布式文件系统)
- 优点:
HDFS是一个高度容错性的系统,适合部署在廉价的机器上
HDFS能够提供高吞吐量的数据访问,非常适合大规模数据集上的应用
- 客户端访问HDFS中文件的流程:
(1)从NameNode获取组成这个文件的数据块位置列表
(2)根据位置列表得到储存数据块的DataNode
(3)访问DataNode获取数据
- 分块的原因:
- HDFS将文件数据分割成若干数据块(Block),每个DataNode存储
一部分数据块,这样文件就分布存储在整个HDFS服务器集群中
- 应用程序客户端(Client)可以并行地对这些数据块进行访问,极大
地提高了访问速度
19.列式数据库
- HBase以表的形式存放数据。表由行和列组成,每个列属于某个列簇,由行和列确定的存储单元称为元素,每个元素保存了同一份数据的多个版本,由时间戳来表示区分。
- BigTab——分布式数据存储系统
特点:
广泛应用性、可扩展性、高性能、高可用性
- HBase——非关系型分布式数据库
**特点:**高可靠、高性能、面向列、可伸缩
**优点:**存储非结构化和半结构化的数据
20.分布式处理
- CPU多核
多任务能力强
- MPI并行计算框架
是一个标准且可移植的消息传递系统,服务于大规模的并行计算。广泛采用的实现有 MPICH
- Hadoop MapReduce
Hadoop框架最核心的设计就是HDFS和MapReduce,HDFS为海量的数据提供存储,而MapReduce为海量的数据提供计算。
- Spark
Spark是一个高性能的内存分布式计算框架,具备扩展性、任务容错等特性。
Spark 基于 map-reduce 算法实现的分布式计算,拥有 Hadoop MapReduce 所具有的优点。
21.Hadoop MapReduce架构
- MapReduce是一种分布式计算框架,能够处理大量数据,并提供容错,可靠等功能,运行在大规模计算集群中。
- MapReduce计算框架采用主从架构,由Client、JobTracker、TaskTarcker组成。
22.MapReduce工作机制
- MapReduce计算模式的功能原理是把计算任务拆解成Map和Reduce两个过程来执行。
- 一个MapReduce程序一般分为Map和Reduce两个阶段,中间可能会有combine。在数据被分割后通过Map函数的程序将数据映射成不同的区块,分配给计算机集群处理达到分布式运算的效果,再通过Reduce函数的程序将结果汇整,最后输出运行计算结果。
- Map
- Reduce
- Combine
- Shuffle
23.Spark与MapReduce对比
- 在计算中间结果方面:
Spark要求计算结果快速返回、处理任务低延迟,因此Spark基本把数据存放在内存中。
MapReduce计算过程把Map任务产生的计算结果放到本地磁盘。
- 在计算模型方面:
Spark采用DAG描述计算任务,所有的RDD操作最后都采用DAG描述,然后优化分发到各个计算节点上运行,因此Spark拥有更丰富的功能。
MapReduce只采用Map( )和Reduce( )两个函数,计算功能比较简单。
- 在计算速度方面:
Spark采用内存作为计算结果的主要存储介质,速度更快。
MapReduce用本地磁盘作为中间结果存储介质。
- 在容错方面:
Spark采用和MapReduce类似的方式。针对丢失和无法引用的RDD:Spark采用记录的transformation,采取重新过已做过的transfromation。
- 在计算成本方面:
Spark需要高容量的内存。
MapReduce是面向磁盘的分布式计算框架。
因此Spark的计算成本高于MapReduce计算框架。
- 在简单易管理方面:
Spark在同一个集群上运行流处理、批处理和机器学习,同时Spark也可以管理不同的负载。MapReduce都做不到。