云计算基础入门 || 云计算与大数据


前言

作为一名大数据专业的学生,在学好大数据的同时,云计算也同等重要,二者相辅相成,大规模数据的运算离不开计算资源1,这也就导致了大数据离不开云计算这一现象;大数据是云计算的应用案例之一,云计算是大数据的实现工具之一。云计算是一种技术解决方案,利用这种技术可以解决计算、存储、数据库等一系列IT基础设施的按需构建的需求。
本文章主要是学习云计算的基础知识,在学习云计算之前,先回顾一下大数据的基础知识。

一、大数据

1. 大数据技术

  • 是一种新一代的技术和构架,以快速采集、处理、分析技术从超大规模的数据中提取价值。
  • 是指从各种各样的数据中,快速获得有价值信息的能力。
基础技术
  • 包含数据采集、预处理、分布式存储、NoSQL数据库、数据仓库、机器学习、并行计算、可视化等各种技术范畴和不同的技术层面。
  • 适用于大数据的技术包括并行处理(MPP)数据库、数据挖掘、分布式文件系统、分布式数据库、云计算平台、互联网、可扩展的存储系统。

2. 大数据技术的产生

各行业、系统规模的不断扩大,使得数据成指数型增长,如今的数据已达到数百TB级甚至数十至数百PB级规模的大数据已远远超出了传统计算技术和信息系统的处理能力,从而促进了大数据技术的产生及快速发展。

3. 大数据

  • 大数据是现有数据库管理工具和传统数据处理应用方法很难处理的大型、复杂的数据集。
  • 通常用来形容大量非结构化数据和半结构化数据,这些数据在下载到关系型数据库用于分析时会花费过多时间和金钱。
  • 大数据需要特殊的技术,以有效的处理大量容忍经过时间内的数据。适用于大数据的技术包括并行处理(MPP)数据库、数据挖掘、分布式文件系统、分布式数据库、云计算平台、互联网、可扩展的存储系统。

单位以PB衡量的数据就可成为大数据

4. 大数据对科学研究产生的影响——第四范式

大数据概念的产生深刻地改变了科学研究的模式,图灵得主吉姆格雷(大数据之父)提出了数据密集型科研“第四范式”,他将大数据科研从第三范式(计算机模拟)中分离出来,独立作为一种科研范式。分离的原因是大数据的研究方式不同于基于数学模型的传统研究方式。

四种范式
  1. 第一范式
    实验;实验发现知识;
  2. 第二范式
    理论;理论研究发现知识;
  3. 第三范式
    计算;计算发现知识;
  4. 第四范式
    数据;数据发现知识;

5. 大数据的4V特征

  1. 规模性
  2. 多样性
  3. 高速性
  4. 价值密度低

二、云计算

1.云计算模式

  1. 公有云
    提供面向社会大众、公共群体的云计算服务。
    一般可通过Internet使用,可能是免费或成本低廉的。
    最大缺点是:难以保证数据的私密性。
  2. 私有云
    提供面向行业/组织内的云计算服务。
    为一个客户单独使用而构建的。
    可较好的解决私密性问题。
  3. 混合云
    公有云和私有云的结合。

2. 云计算定义

  1. 狭义的云计算:
    IT基础设施的交付和使用模式,即通过网络按需求、扩展的方式获得所需的资源
  2. 广义的云计算:
    服务的使用和交付模式,即通过网络按需求、扩展的方式获得对应的服务
  3. 简而言之,云计算是一种通过互联网以服务的方式提供动态可伸缩虚拟化资源的计算模式。
  4. 云计算的资源是分布式的,通过虚拟化技术动态可扩展。
  5. 云计算是通过互联网提供的一种具有服务等级协议(SLA)2的服务。

2. 云计算的主要服务模式

云计算将应用技术场景分为三种:IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)。

  • IaaS : 侧重于硬件资源服务;
    PaaS:侧重于平台服务;
    SaaS:侧重于软件服务;
  • IaaS的关键技术:虚拟化技术(三个主要功能:分区、隔离、封装);
    PaaS的关键技术:分布式的并行计算(充分利用广泛部署的普通计算资源,为客户提供并行服务)、大文件分布式存储(为存储在廉价的不可信节点集群架构上的海量数据提供了安全性和运行性上的保证);
    SaaS的关键技术:多租户技术;

在这里插入图片描述

  • IaaS在公有云中
    虚拟化的计算资源、网络资源、存储资源;
    提供给消费者的服务是:对所有计算基础设施的利用,包含CPU、内存、存储、网络以及其他基本的计算资源,用户能够部署和运行任意软件,包括操作系统和应用程序。
  • 私有云中的PaaS
    面向的是开发人员;
    提供给消费者的服务是:用户(开发人员)用开发语言和工具编写的应用程序部署到云计算基础设施上去,用户不需要管理控制底层基础设施,如操作系统、服务器、存储等;但能够控制部署的应用程序以及控制运行应用程序的托管环境配置;
    优点:从底层到运行环境都不需要操心,对于开发人员来说,极大的节省了时间,便利了许多,可集中精力做内容。
    缺点:服务商提供的东西都是固定的,不够灵活,并非所有应用程序都可以套用,只适用于部分特殊的应用程序。
  • 混合云中的SaaS
    提供给客户的服务是:运营商部署在云计算基础设施上的应用程序,用户可在各种设施上通过客户端界面访问。
    消费者不需要管理控制任何云计算基础设施就可以直接运用其上的应用程序,只需要花些钱即可。
    对于(大中小)企业来说,SaaS是采用先进技术实施信息化的最好途径。eg:邮箱、视频直播等。

3. 三种服务模式之间的关系

1.从用户体验角度分析
  1. SaaS: 主要面对普通用户;
  2. PaaS: 主要面对开发人员;
  3. IaaS:主要面对具有专业知识的系统管理员;
2. 从技术角度
 继承关系;
  1. SaaS基于PaaS;
  2. PaaS基于IaaS;
  3. SaaS基于PaaS或直接部署于IaaS上;
  4. PaaS可构建于IaaS上也可直接构建于物理资源上;

3. 典型的云计算基础架构

在这里插入图片描述

  1. GFS
    建立在集群之上的分布式文件系统;
  2. MapReduce
    分布式并行编程模型;
  3. BigTable
    分布式大规模数据库管理系统;

4. 云计算的特点

  • 具有大规模并行计算能力
  • 资源虚拟化和弹性调度
  • 数据量巨大且增速猛增
  • 高可靠性
  • 通用性
  • 高伸缩性
  • 按需服务
  • 高性价比,极其廉价

5. 云计算核心技术

a. 虚拟化技术

  • 是云计算最显著的特点;(突破了时间空间的界限)
  • 是云计算最重要的核心技术之一,为云计算提供基础架构层面的支撑;
  • 是ICT信息与通信技术服务快速走向云计算的最主要驱动力;
  • 分为两种:应用虚拟、资源虚拟;
  • 程序的物理平台与应用部署的环境在空间上是没有任何联系的,那么他们是如何建立连接完成对应功能的呢?
    答:通过虚拟平台对相应终端进行操作完成数据备份、数据迁移、扩展等功能。
  • 从技术层面上
    虚拟化是在软件中仿真计算机硬件,以虚拟资源为用户提供服务的方式;
    旨在合理调配计算资源,更好的为用户提供服务;
    打破硬件间的物理划分,实现架构的动态化,实现对物理资源的管理与分配;
    好处:增强系统弹性、灵活性、降低成本、改进服务、提高资源利用率。
  • 从表现形式上
    分为两种应用模式;
    1. (1->多)将一台服务器虚拟成多个独立的小服务器,服务不同的用户;
    2. (多->1)将多台服务器虚拟成一个服务器,完成特定的功能;
      这两种模式都是统一管理、动态分配资源、提高资源利用率;

b. 分布式数据存储技术

  • 为什么会出现分布式数据存储技术?
    答:为了保证数据的高可靠性;为什么要保证数据的高可靠性? 因为云计算能够快速高效的处理海量数据;
  • 将数据存储在不同的物理设备中,这种模式不仅摆脱了硬件设备的限制,同时扩展性也更好,能够快速响应用户需求的变化。
  • 与传统存储方式不同,采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,提高系统的可靠性、可用性、存取效率,且易于扩展。
  • 云计算领域有两种较为流行的云计算分布式存储系统:Google的GFS、开源系统HDFS
    GFS:非开源;可满足大量用户的需求,并行为大量用户服务;具有高吞吐率和高传输率的特点。
    HDFS:也许不是最好的大数据存储技术,但依然是最重要的大数据存储技术;

c. 编程模式

  • 从本质上讲,云计算是一个多用户、多任务、支持并发处理的系统。
  • 高效、简捷、快速是其核心理念,它旨在通过网络把强大的服务器计算资源方便地分发到终端用户手中,同时保证低成本和良好的用户体验。在这个过程中,编程模式的选择至关重要。云计算项目中分布式并行编程模式将被广泛采用。
  • 分布式并行编程模式创立的初衷是更高效地利用软、硬件资源,让用户更快速、更简单地使用应用或服务。在分布式并行编程模式中,后台复杂的任务处理和资源调度对于用户来说是透明的,这样用户体验能够大大提升。
  • MapReduce是当前云计算主流并行编程模式之一。MapReduce模式将任务自动分成多个子任务,通过Map和Reduce两步实现任务在大规模计算节点中的高度与分配。
  • MapReduce是Google开发的java、Python、C++编程模型,主要用于大规模数据集(大于1TB)的并行运算。MapReduce模式的思想是将要执行的问题分解成Map(映射)和Reduce(化简)的方式,先通过Map程序将数据切割成不相关的区块,分配(调度)给大量计算机处理,达到分布式运算的效果,再通过Reduce程序将结果汇整输出。

d. 大规模数据管理

  • 处理海量数据是云计算的一大优势。那么如何处理则涉及到很多层面的东西,因此高效的数据处理技术也是云计算不可或缺的核心技术之一。对于云计算来说,数据管理面临巨大的挑战。云计算不仅要保证数据的存储和访问,还要能够对海量数据进行特定的检索和分析。由于云计算需要对海量的分布式数据进行处理、分析,因此,数据管理技术必需能够高效的管理大量的数据。
  • Google的BT(BigTable)数据管理技术和Hadoop团队开发的开源数据管理模块HBase是业界比较典型的大规模数据管理技术。
  • BT(BigTable)数据管理技术:BigTable是非关系的数据库,是一个分布式的、持久化存储的多维度排序Map。BigTable建立在 GFS,Scheduler, Lock Service和MapReduce之上,与传统的关系数据库不同,它把所有数据都作为对象来处理,形成一个巨大的表格,用来分布存储大规模结构化数据。 Bigtable的设计目的是可靠的处理PB级别的数据,并且能够部署到上千台机器上。
  • 开源数据管理模块HBase:HBase是Apache的Hadoop项目的子项目,定位于分布式、面向列的开源数据库。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。作为高可靠性分布式存储系统,HBase在性能和可伸缩方面都有比较好的表现。利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。

e. 分布式资源管理

  • 云计算采用了分布式存储技术存储数据,那么自然要引入分布式资源管理技术。在多节点的并发执行环境中,各个节点的状态需要同步,并且在单个节点出现故障时,系统需要有效的机制保证其它节点不受影响。而分布式资源管理系统恰是这样的技术,它是保证系统状态的关键。
  • 云计算系统所处理的资源往往非常庞大,少则几百台服务器,多则上万台,同时可能跨跃多个地域。且云平台中运行的应用也是数以千计,如何有效地管理这批资源,保证它们正常提供服务,需要强大的技术支撑。因此,分布式资源管理技术的重要性可想而知。
  • 全球各大云计算方案/服务提供商们都在积极开展相关技术的研发工作。其中Google内部使用的Borg技术很受业内称道。另外,微软、IBM、Oracle/Sun等云计算巨头都有相应解决方案提出。

f. 信息安全

  • 调查数据表明,安全已经成为阻碍云计算发展的最主要原因之一。数据显示,32%已经使用云计算的组织和45%尚未使用云计算的组织的ICT管理将云安全作为进一步部署云的最大障碍。因此,要想保证云计算能够长期稳定、快速发展,安全是首要需要解决的问题。
  • 事实上,云计算安全也不是新问题,传统互联网存在同样的问题。只是云计算出现以后,安全问题变得更加突出。在云计算体系中,安全涉及到很多层面,包括网络安全、服务器安全、软件安全、系统安全等等。因此,有分析师认为,云安全产业的发展,将把传统安全技术提到一个新的阶段。现在,不管是软件安全厂商还是硬件安全厂商都在积极研发云计算安全产品和方案。包括传统杀毒软件厂商、软硬防火墙厂商、IDS/IPS厂商在内的各个层面的安全供应商都已加入到云安全领域。相信在不久的将来,云安全问题将得到很好的解决.

g. 云计算平台管理

  • 云计算资源规模庞大,服务器数量众多并分布在不同的地点,同时运行着数百种应用,如何有效地管理这些服务器,保证整个系统提供不间断的服务是巨大的挑战。云计算系统的平台管理技术,需要具有高效调配大量服务器资源,使其更好协同工作的能力。其中,方便地部署和开通新业务、快速发现并且恢复系统故障、通过自动化、智能化手段实现大规模系统可靠的运营是云计算平台管理技术的关键。
  • 对于提供者而言,云计算可以有三种部署模式,即公共云、私有云和混合云。三种模式对平台管理的要求大不相同。对于用户而言,由于企业对于ICT资源共享的控制、对系统效率的要求以及ICT成本投入预算不尽相同,企业所需要的云计算系统规模及可管理性能也大不相同。因此,云计算平台管理方案要更多地考虑到定制化需求,能够满足不同场景的应用需求。
  • 包括Google、IBM、微软、Oracle/Sun等在内的许多厂商都有云计算平台管理方案推出。这些方案能够帮助企业实现基础架构整合、实现企业硬件资源和软件资源的统一管理、统一分配、统一部署、统一监控和统一备份,打破应用对资源的独占,让企业云计算平台价值得以充分发挥。

6. 云计算技术特点

  • 动态可扩展
    高效运算能力、计算速度迅速提高;
  • 按需部署
    不同数据库对应不同数据库资源;
  • 灵活性高
    兼容性强;

三. 云计算与大数据的关系

  • 两者相辅相成;
  • 云计算侧重于提供资源和应用的网络化交付方法;
    大数据侧重于应对巨大的数据量所带来的技术挑战;
  • 云计算的核心是业务模式;
    本质是数据处理技术;
  • 云计算是基础设施架构;
    大数据是思想方法;

  1. 云计算的计算资源包括:CPU运算资源、存储资源、网络带宽等。 ↩︎

  2. 云服务提供商和客户之间的一份商业保障合同,而非一般的服务承诺。 ↩︎