6.2 大数据与云计算
从技术上看,大数据与云计算的关系就像一枚硬币的正反面一样密不可分。大数据无法用单台的计算机进行处理,必须采用分布式架构。它的特色在于对海量数据进行分布式数据挖掘。但它必须依托云计算的分布式处理、分布式数据库和云存储、虚拟化技术。
6.2.1 云计算
1.云计算定义
对云计算的定义有很多种说法。现阶段广为接受的是美国国家标准与技术研究院(NIST)给出的定义,云计算是指一种按使用量付费的模式,在这种模式情况下,用户只要进入服务商提供的可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),只需投入很少的管理工作或与服务供应商进行很少的交互就可以获得可用的、便捷的、按需的网络访问。“云”是网络、互联网的一种比喻说法。
2.云计算的特征
(1)支持异构基础资源
(2)支持资源动态扩展
(3)支持异构多业务体系
(4)支持海量信息处理
(5)支持按需分配、按量计费
3.云计算的分类
云计算根据其不同的属性可以从多个角度进行分类。
(1)按运营模式分类
公有云
私有云
混合云
(2)按服务模式分类
云计算平台服务模式为分层式的架构,最下的一层是 IaaS、再上一层是 PaaS平台即服务、最后一层是 SaaS软件即服务。
4.云计算技术体系结构
云计算技术体系结构:物理资源层、资源池层、管理中间件层和SOA构建层
5.云计算平台应用
(1)Google的云计算平台与应用
l MapReduce分布式编程环境
l 分布式的锁机制Chubby
l 分布式大规模数据库管理系统BigTable
(2) IBM蓝云计算平台
“蓝云”建立在IBM大规模计算领域的专业技术基础上,基于由IBM软件、系统技术和服务支 持的开放标准和开源软件。“蓝云”基于IBM Almaden研究中心的云基础架构,包括Xen和PowerVM虚拟化、Linux操作系统映像以及Hadoop文件系统与并行构建。
(3)亚马逊的弹性计算云
Google仅为自己在互联网上的应用提供云计算平台,独立开发商或者开发人员无法在这个平台上工作,因此只能通过开源的Hadoop软件支持来开发云计算应用。
6.云存储
云存储系统是指通过集群技术、网格计算或分布式文件系统等技术,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统,存储层是云存储最基础的部分。存储设备可以是FC光纤通道存储设备、NAS和iSCSI等IP存储设备、SCSI或SAS等 DAS存储设备。云存储中的存储设备往往数量庞大且分布在不同地域。彼此之间通过广域网、互联网或者FC光纤通道网络连接在一起。存储方式主要有:DAS、NAS、SAN。
1.大数据定义
对于“大数据(Big Data)”的定义,比较权威的有以下几种:
研究机构Gartner定义: 大数据是指需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
维基百科定义:大数据是指所涉及的资料量规模巨大到无法通过目前主流软件工具,在合理时间内达到获取、管理、处理并整理成为帮助企业经营决策目的的资讯。
麦肯锡定义:无法在一定时间内用传统数据库软件工具对其内容进行抓取、 管理和处理的数据集合。
2.大数据的特征
“大数据”是一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,大数据特征为4V,即规模性(Volume)、高速性(Velocity)、多样性(Variety)和价值性(Value)。
(1)规模性
(2)高速性
(3)多样性
(4)价值性(Value)
3.大数据分析的基础
(1)可视化分析
(2)数据挖掘算法
(3)预测性分析
(4)语义引擎
(5)数据质量和数据管理
大数据分析的基础就是以上五个方面,当然更加深入大数据分析的话,还有很多很多更加有特点的、更加深入的、更加专业的大数据分析方法。
4.大数据处理流程
大数据处理要全体、不要抽样,要效率、不要绝对精确,要相关、不要因果,大数据处理处理流程可以概括为四步:采集、导入和预处理、统计和分析以及挖掘。
(1)采集
(2)导入和预处理
(3)统计和分析
(4)挖掘
5.大数据处理工具
(1)Hadoop
Hadoop 是一个能够对大量数据进行分布式处理的开源软件框架,能够让用户轻松架构和使用的分布式计算平台,支持数据密集型的分布式应用程序,以可靠、高效、可伸缩的方式进行处理。
(2)HPCC
HPCC (High Performance Computing and Communications,高性能计算与通信)系统体系结构集成了Thor和Roxie集群、通用的中间件组件、外部通信层、提供了最终用户服务和系统管理工具的客户端接口、支持检测并且便于从外部数据源中装载和存储文件系统数据的辅助部件。HPCC只能包括Thor集群(数据提炼集群)或Thor与Roxie集群(查询集群)。
(3)Storm
Storm是自由的开源软件,一个分布式的、容错的实时计算系统。Storm可以非常可靠的处理庞大的数据流,用于处理Hadoop的批量数据。Storm很简单,支持许多种编程语言,使用起来非常有趣。Storm集群非常类似Hadoop集群。Hadoop上运行的是MapReduce jobs,而Storm运行的是topologies。Jobs和topologies本身是不同的,其中一个最大的不同就是,Mapreduce job最终会结束,而topology则会持续的处理消息(直到你杀掉它)
(4)Apache Drill
Apache Drill是一个低延迟的分布式海量数据交互式查询引擎,使用ANSI SQL兼容语法,支持本地文件、HDFS、Hive、HBase、MongoDB等后端存储,支持Parquet、JSON、CSV、TSV、PSV等数据格式,Drill满足上千节点的PB级别数据的交互式商业智能分析场景。
(5)RapidMiner
RapidMiner是用Java语言编写的,通过基于模板的框架提供分析技术,它数据挖掘任务涉及范围广泛,用户无需写任何代码,它是作为一个服务提供,而不是一款本地软件。
(6)Pentaho BI
Pentaho BI 平台是一个以流程为中心的,面向解决方案的框架,其目的在于将一系列企业级BI产品、开源软件、API等等组件集成起来,方便商务智能应用的开发。它的出现,使得一系列的面向商务智能的独立产品如Jfree、Quartz等等,能够集成在一起,构成一项项复杂的、完整的商务智能解决方案。