- UID
- 614215
- 主题
- 2
- 阅读权限
- 20
- 帖子
- 112
- 精华
- 0
- 积分
- 56
- 金钱
- 293
- 荣誉
- 0
- 人气
- 0
- 在线时间
- 89 小时
- 评议
- 0
- 帖子
- 112
- 精华
- 0
- 积分
- 56
- 金钱
- 293
- 荣誉
- 0
- 人气
- 0
- 评议
- 0
|
1.1 云计算是大数据分析的灵魂
1.1.1 云计算的提出和概念
云计算的思想可以追溯到1961 年图灵奖得主John Mc-Carthy 提出计算能力将作为一种像水、电一样的公用事业提供给用户。2001 年,Google CEO Eric Schmidt 搜索引擎大会上首次提出“云计算”的概念: 用户可以利用终端设备接入互联网, 透明地访问“云端”的服务,“云”负责管理一切计算资源, 快速响应用户的各种请求、提供服务, 所需费用则是根据享受的服务进行计算。
目前,对于云计算的认识在不断地发展变化,云计算仍没有普遍一致的定义。从一般应用的观点来看,云计算是基于互联网的超级计算模式,包含互联网上的应用服务及在数据中心提供这些服务的软硬件设施,进行统一的管理和协同合作。云计算将 IT 相关的能力以服务的方式提供给用户,允许用户在不了解提供服务的技术、没有相关知识以及设备操作能力的情况下,通过Internet 获取需要的服务。
1.1.2 云计算的优势
云计算发展的首要问题就是标准化问题。云计算的标准化关乎云计算的规模应用和普及,例如云系统之间的互操作问题,用户需要将云计算应用程序迁移到另一家公司的云计算平台上等等,都需要统一的云计算公共标准,但由于云计算涉及 IT 领域较多,例如基础设施、平台、应用和服务,很难在短期内形成统一的标准。
此外,云计算的推广还依赖于有效的并行计算的解决方案,涉及到编程模型、开发语言和开发工具等多方面。大规模的集群计算系统支撑大容量计算和云存储,有效地进行系统配置、监控、管理、调度等需要可靠的系统技术。
云计算是一种新型业务交付模式,同时也是新型IT基础设施管理方法。通过新型的业务交付模式,用户将通过网络充分利用优化的硬件、软件和网络资源,并以此为基础提供创新的业务服务。新型IT基础设施管理方法让IT部门可以把海量资源作为一个统一的大资源进行管理,支持IT部门在大量增加资源的同时无需显著增加相应的人员进行维护和管理。
云计算通过简单的方式给业务服务和终端消费者服务快速提供计算资源,提供无限扩展和有保障的高品质服务,因此用户可以更加专注于服务本身的创新和决策。云计算是一种成本高效的模式,用于提供流程、应用和服务,并让IT管理更加简单,更快的响应业务需要。这些服务,如计算服务,存储服务,网络服务等,都通过一种简化的方式按需提供,无论用户及用户使用的设备是属于哪种类型。
虚拟化
虚拟化可以大幅度提高组织中资源和应用程序的效率和可用性。虚拟化把物理资源和最终呈现给用户的资源进行了分离,实际是一个替代过程,在具有统一良好架构设计的物理资源上创建出多个替代资源(也就是虚拟资源),替代资源和物理资源具有相同的接口和功能,对于用户来说虚拟资源具备与物理资源相同的使用功能,同时还可以有着不同的属性,如价格,容量,可调整性等。下图是虚拟化的示意图。
图1 虚拟化
自动化部署
云计算的一个核心思想是通过自动化的方式尽可能地简化任务,使得用户可以通过自助服务方式快捷地获取所需的资源和能力。部署是基础设施管理中十分重要,也是需要花费很大工作量的一部分,包括操作系统、中间件和应用等不同层次的部署。自动化部署提供简化流程,用户提出申请后由自动化部署平台根据调度和预约自动完成相应的部署,因此用户只需花十几分钟,甚至几分钟就可以得到一个完整的环境,极大地提高了工作效率。
应用规模扩展
云计算提供了一个巨大的资源池,而应用的使用又有不同的负载周期,根据负载对应用的资源进行动态伸缩将可以显著提高资源的有效利用率,即高负载时动态扩展资源,低负载时释放多余的资源,这就是应用规模扩展技术所解决的问题。该技术以应用为基本单位,为不同的应用架构设定不同的集群类型,每一种集群类型都有特定的扩展方式,然后通过监控负载的动态变化,自动为应用集群增加或者减少资源。
分布式文件系统
分布式存储的目标是利用云环境中多台服务器的存储资源来满足单台服务器所不能满足的存储需求。其特征是,存储资源能够被抽象表示和统一管理,并且能够保证数据读写与操作的安全性、可靠性、性能等各方面要求。
云计算催生了一些优秀的分布式文件系统和云存储服务。最典型的云平台分布式文件系统是Google的GFS(Google File System)和开源的Hadoop。这两种可伸缩的分布式文件系统利用容错和故障恢复机制,有效的克服单节点故障导致的系统故障;实现了大规模海量级的文件存储。
以Hadoop文件系统为例,Hadoop文件系统(HDFS)是一个运行在普通的硬件之上的分布式文件系统,它和现有的分布式文件系统有着很多的相似性,然而和其他的分布式文件系统 的区别也是很明显的:HDFS是高容错性的,可以部署在低成本的硬件之上,HDFS提供高吞吐量地对应用程序数据访问,它适合大数据集的应用程 序,HDFS放开一些POSIX的需求去实现流式地访问文件数据。一个HDFS集群由一个管理文件系统元数据的Name Node,和存储实际数据的一些Data Node组成。
分布式数据库与非结构化数据存储
在分布式文件系统之上,是存储海量结构化数据的分布式存储系统。典型包括,Google的BigTable,开源的HBase等。这些系统可将非结构化数据,例如网页等,存储为分布式的、多维的、有序的图。
以HBase为例。HBase是一个分布式的、面向列的开源数据库。HBase是Apache的Hadoop 项目的子项目,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库.另一个不同的是,HBase基于列的而不是基于行的模式。 HBase使用和Bigtable非常相同的数据模型。用户存储数据行在一个表里。一个数据行拥有一个可选择的键和任意数量的列。表是疏松的存储的,因此 用户可以给行定义各种不同的列。HBase主要用于需要随机访问,实时读写大数据。在系统架构上,HBase 分成 Master 与 Region Server 两部份。Master负责告知 client对一个表访问时,应该转向哪台 Region Server;而 Region Server 就是实际上提供数据的节点。
分布式计算
基于云平台的最典型的分布式计算模式是MapReduce编程模型。MapReduce将大型任务分成很多细粒度的子任务,这些子任务分布式的在多个计算节点上进行调度和计算,从而在云平台上获得对海量数据的处理能力。概念"Map(映射)"和"Reduce(化简)",和他们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(化简)函数,用来保证所有映射的键值对中的每一个共享相同的键组。简单说来,一个映射函数就是对一些独立元素组成的概念上的列表的每一个元素进行指定的操作。事实上,每个元素都是被独立操作的,而原始列表没有被更改,因 为这里创建了一个新的列表来保存新的答案。这就是说,Map操作是可以高度并行的,这对高性能要求的应用以及并行计算领域的需求非常有用。而Reduce操作指的是对一个列表的元素进行适当的合并。虽然他不如映射函数那么并行,但是因为化简总是有一个简单的答案,大规模的运算相对独立,所以化简函数在高度并行环境下也很有用。
企业实现数据云之后,可以实现快速搭建一个数据分析云计算平台,这个过程将通过管理平台自动化实现。数据分析云的扩展性,保证各类平台都可以参与到云计算中。参与平台的机器可以是资源池的闲置机器,也可扩展到非生产环境的机器,如开发测试资源池,甚至办公机器。数据分析云具有灵活弹性,因此各类机器可选择空闲时段加入云平台,例如办公机器可在夜间空闲时段加入云分析,而白天仍进行各自任务。灵活的加入与退出并不中断云计算本身。数据分析云具有高可靠性,即使出现一些机器的临时故障,云平台能够自动检测和适应,并不中断云平台分析与计算。
1.2 云计算的分布式技术模型
数据分析和商业智能云平台的技术架构由如下四层结构组成:
数据分析与商业智能的应用
数据分析中间件(算法库和工具)
云模式分布式并行计算框架
云模式分布式文件系统和特定主题的数据模型
前述功能模型中的四个具体分析应用,归属于应用层。平台未来将要支持的各种应用层业务逻辑也在这层定制化开发。
图2 技术模型
数据分析中间件
这层中间件是架构在Hadoop之上,遵照MapReduce计算模型开发而来的一系列的算法库和工具。为支持现有各种数据分析和商业智能应用,本层应至少包含统计查询、社会网络分析、数据挖掘、机器学习的算法库和工具。此外,随着云模式数据分析与商业智能平台及其应用的发展,本层的算法库和工具也将不断丰富和完善。
下图展现了一个典型的数据分析和商业智能应用的流程,包括:问题定义、数据收集、数据分析、决策、行动/监控/学习,及其迭代过程。
云模式数据分析与商业智能平台所提供的算法库和工具将为应用提供数据分析和决策两个环节的支持。依托下层的Hadoop MapReduce分布式并行计算框架和Hadoop分布式文件系统,本层中间件适合处理满足下列特征的数据:
非结构化 或 半结构化源数据,例如CDR,短信日志等。
大规模数据集;
快速增长的数据集(例如,每日更新的手机用户的通话日志)
本层中间件与传统数据分析与商业智能中间件相比,其特点在于:
针对海量数据提供高性价比的计算分析;
依附于最通用的云计算平台(Hadoop)之上,可有效地与其他云计算中间件进行协调整合;
快捷地支持各种类型的商业智能解决方案的开发和部署;
依托MapReduce编程模型,可以有效建立协作式的分析知识库
1.3 云模式分布式并行计算框架
基于云平台的最典型的分布式计算模型就是MapReduce编程模型,这也是本平台首选的分布式并行计算模型。MapReduce将大型任务分成很多细粒度的子任务,这些子任务分布式且并行地在多个计算节点上进行调度和计算,从而在云平台上获得对海量数据的处理能力。概念"Map(映射)"和"Reduce(化简)",和他们的主要思想,都是从函数式编程语言里借鉴来的。
遵照MapReduce编程模型,数据分析与商业智能算法库的开发者可以编写一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,还可以编写一个Reduce(化简)函数,用来处理Map函数产生的键值对中的共享相同的键的所有键值对。简单说来,一个映射函数就是对一些独立元素组成的概念上的列表的每一个元素进行指定的操作。事实上,每个元素都是被独立操作的,而原始列表没有被更改,因为这里将创建一个新的列表来保存操作的结果。因此,Map操作是可以高度并行的,这对有高性能要求的应用以及并行计算领域的需求非常有用。而Reduce操作则是是对一个列表的元素进行适当的合并。虽然不如Map函数那么并行,但是因为有许多的运算中用到的化简都有简单的输入和化简结果,所以Reduce函数在高度并行环境下往往也很有用。
目前存在的MapReduce分布式并行计算框架实现有几种,其中最主要的是Apache Hadoop MapReduce,已经形成了成熟活跃的开发和用户社群。这也是本平台首选的依托方案。在Apache Hadoop MapReduce中,Map操作和Reduce操作的执行被包裹为任务(task),而任务又以Map-Reduce对的形式被包裹为作业(job)。负责在Hadoop集群节点上安排任务执行的软件被称作TaskTracker,通常在每个计算节点上部署一个。负责在集群范围内调度作业和任务执行的软件被称作JobTracker,通常在Hadoop集群内挑选独立的机器来部署。
尽管MapReduce分布式并行编程模型对底层数据存储并无硬性的要求,但是,为了最好地利用该模型带来的伸缩性优势,往往需要采用分布式文件系统作为输入数据,中间结果以及输出数据的载体。
在Apache Hadoop套件中,这样的分布式文件系统就是Hadoop分布式文件系统(Hadoop Distributed File System,HDFS),这也是本平台首选的分布式文件系统方案之一。该系统利用Hadoop 集群中各个节点的本地磁盘来存放数据文件,可以在普通的硬件平台上实现可靠的数据存储。
对外部客户机而言,HDFS 就像一个传统的分级文件系统。可以创建、删除、移动或重命名文件,等等。但是 HDFS 的架构是基于一组特定的节点构建的(参见下图 ,这是由它自身的特点决定的。这些节点包括 NameNode,负责在 HDFS 内部提供元数据服务;DataNode,负责为 HDFS 提供存储块。Hadoop 集群往往包含一个 NameNode 和大量 DataNode
DataNode 通常以机架的形式组织,机架之间通过交换机实现连接。Hadoop HDFS和Hadoop MapReduce的一个假设是:机架内部节点之间的传输速度和延迟都好于机架间。
1.4 云计算的分布式技术模型实现方式
从传统的数据分析与商业智能分析模式向基于云计算的数据分析云的进化是企业数据分析的终级目标。转型过程应该从资源整合与平台虚拟化着手,分步引入虚拟化高级功能和云计算概念。
资源整合与点应用
以现有的数据分析与商业智能分析系统为基础,进行资源整合,实现物理资源的虚拟化,通过虚拟化技术实现资源池化和资源动态扩展等功能,实现基础平台与应用平台的扩展。目前实现虚拟化的产品有很多,其中以Vmware,微软,ctrix的虚拟化产品为主流。
依托基础平台与应用扩展平台,实现数据分析和商业智能平台的快速部署和资源动态扩展。
在此基础上,借助平台快速部署功能和系统无缝移置功能,选择性地开发和部署一批数据分析和商业智能应用。
平台扩展和应用推广
在基础整合的基础上扩展平台,开发和部署更多的云模式数据分析和商业智能应用。同EDW、ODS和其他现有BI平台的集成。
平台开放和自主演化
这个阶段的平台建设目标是标准化云模式数据分析和商业智能应用的开发接口和运行时接口;提供较为完善的开发套件。鼓励和吸引企业及合作伙伴共同丰富平台和应用的功能。
1.5 云计算的难度和潜在风险
在数据分析与商业智能分析中应用云计算技术,能提高数据分析的效率,让企业更加能适应快速变化的市场,为快速推出新的产品提供数据依据,但是云计算也存在一些难点和风险。
产品选择问题
服务器虚拟化技术和产品没有统一的标准平台和开放协议,业界内服务器虚拟化产品良莠不齐,不合适的产品选择会带来严重的投资风险。而且服务器虚拟化软件价格不菲,短期、小范围内的应用难见效益。
可靠性问题
由于在一台服务器上运行多个重要应用程序和数据库,虚拟化的IT环境比大型计算机和微型计算机环境更容易遭到灾难性崩溃的破坏,因为它们有同样集中的资源,但是,硬件的可靠性不同。
数据安全问题
数据是企业的生命,数据的丢失和泄露对企业来说是不容忽视的风险。云计算带来便利的同时,也给数据完全带来了风险。
环境的复杂化
虚拟化的本质是应用只与虚拟层交互,而与真正的硬件隔离。在造成便利的同时,也造成了风险。软件和硬件之间被切断联系将导致安全人员看不到设备背后发生的风险,服务器环境变得更加不固定、复杂,安全人员最终失去硬件本身提供的稳定性。当应用出现故障时,需要精确定位是硬件还是软件故障,在虚拟化世界中,这将是一项复杂而冗长的工作。
1.1 云计算是大数据分析的灵魂
1.1.1 云计算的提出和概念
云计算的思想可以追溯到1961 年图灵奖得主John Mc-Carthy 提出计算能力将作为一种像水、电一样的公用事业提供给用户。2001 年,Google CEO Eric Schmidt 搜索引擎大会上首次提出“云计算”的概念: 用户可以利用终端设备接入互联网, 透明地访问“云端”的服务,“云”负责管理一切计算资源, 快速响应用户的各种请求、提供服务, 所需费用则是根据享受的服务进行计算。
目前,对于云计算的认识在不断地发展变化,云计算仍没有普遍一致的定义。从一般应用的观点来看,云计算是基于互联网的超级计算模式,包含互联网上的应用服务及在数据中心提供这些服务的软硬件设施,进行统一的管理和协同合作。云计算将 IT 相关的能力以服务的方式提供给用户,允许用户在不了解提供服务的技术、没有相关知识以及设备操作能力的情况下,通过Internet 获取需要的服务。
1.1.2 云计算的优势
云计算发展的首要问题就是标准化问题。云计算的标准化关乎云计算的规模应用和普及,例如云系统之间的互操作问题,用户需要将云计算应用程序迁移到另一家公司的云计算平台上等等,都需要统一的云计算公共标准,但由于云计算涉及 IT 领域较多,例如基础设施、平台、应用和服务,很难在短期内形成统一的标准。
此外,云计算的推广还依赖于有效的并行计算的解决方案,涉及到编程模型、开发语言和开发工具等多方面。大规模的集群计算系统支撑大容量计算和云存储,有效地进行系统配置、监控、管理、调度等需要可靠的系统技术。
云计算是一种新型业务交付模式,同时也是新型IT基础设施管理方法。通过新型的业务交付模式,用户将通过网络充分利用优化的硬件、软件和网络资源,并以此为基础提供创新的业务服务。新型IT基础设施管理方法让IT部门可以把海量资源作为一个统一的大资源进行管理,支持IT部门在大量增加资源的同时无需显著增加相应的人员进行维护和管理。
云计算通过简单的方式给业务服务和终端消费者服务快速提供计算资源,提供无限扩展和有保障的高品质服务,因此用户可以更加专注于服务本身的创新和决策。云计算是一种成本高效的模式,用于提供流程、应用和服务,并让IT管理更加简单,更快的响应业务需要。这些服务,如计算服务,存储服务,网络服务等,都通过一种简化的方式按需提供,无论用户及用户使用的设备是属于哪种类型。
虚拟化
虚拟化可以大幅度提高组织中资源和应用程序的效率和可用性。虚拟化把物理资源和最终呈现给用户的资源进行了分离,实际是一个替代过程,在具有统一良好架构设计的物理资源上创建出多个替代资源(也就是虚拟资源),替代资源和物理资源具有相同的接口和功能,对于用户来说虚拟资源具备与物理资源相同的使用功能,同时还可以有着不同的属性,如价格,容量,可调整性等。下图是虚拟化的示意图。
图1 虚拟化
自动化部署
云计算的一个核心思想是通过自动化的方式尽可能地简化任务,使得用户可以通过自助服务方式快捷地获取所需的资源和能力。部署是基础设施管理中十分重要,也是需要花费很大工作量的一部分,包括操作系统、中间件和应用等不同层次的部署。自动化部署提供简化流程,用户提出申请后由自动化部署平台根据调度和预约自动完成相应的部署,因此用户只需花十几分钟,甚至几分钟就可以得到一个完整的环境,极大地提高了工作效率。
应用规模扩展
云计算提供了一个巨大的资源池,而应用的使用又有不同的负载周期,根据负载对应用的资源进行动态伸缩将可以显著提高资源的有效利用率,即高负载时动态扩展资源,低负载时释放多余的资源,这就是应用规模扩展技术所解决的问题。该技术以应用为基本单位,为不同的应用架构设定不同的集群类型,每一种集群类型都有特定的扩展方式,然后通过监控负载的动态变化,自动为应用集群增加或者减少资源。
分布式文件系统
分布式存储的目标是利用云环境中多台服务器的存储资源来满足单台服务器所不能满足的存储需求。其特征是,存储资源能够被抽象表示和统一管理,并且能够保证数据读写与操作的安全性、可靠性、性能等各方面要求。
云计算催生了一些优秀的分布式文件系统和云存储服务。最典型的云平台分布式文件系统是Google的GFS(Google File System)和开源的Hadoop。这两种可伸缩的分布式文件系统利用容错和故障恢复机制,有效的克服单节点故障导致的系统故障;实现了大规模海量级的文件存储。
以Hadoop文件系统为例,Hadoop文件系统(HDFS)是一个运行在普通的硬件之上的分布式文件系统,它和现有的分布式文件系统有着很多的相似性,然而和其他的分布式文件系统 的区别也是很明显的:HDFS是高容错性的,可以部署在低成本的硬件之上,HDFS提供高吞吐量地对应用程序数据访问,它适合大数据集的应用程 序,HDFS放开一些POSIX的需求去实现流式地访问文件数据。一个HDFS集群由一个管理文件系统元数据的Name Node,和存储实际数据的一些Data Node组成。
分布式数据库与非结构化数据存储
在分布式文件系统之上,是存储海量结构化数据的分布式存储系统。典型包括,Google的BigTable,开源的HBase等。这些系统可将非结构化数据,例如网页等,存储为分布式的、多维的、有序的图。
以HBase为例。HBase是一个分布式的、面向列的开源数据库。HBase是Apache的Hadoop 项目的子项目,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库.另一个不同的是,HBase基于列的而不是基于行的模式。 HBase使用和Bigtable非常相同的数据模型。用户存储数据行在一个表里。一个数据行拥有一个可选择的键和任意数量的列。表是疏松的存储的,因此 用户可以给行定义各种不同的列。HBase主要用于需要随机访问,实时读写大数据。在系统架构上,HBase 分成 Master 与 Region Server 两部份。Master负责告知 client对一个表访问时,应该转向哪台 Region Server;而 Region Server 就是实际上提供数据的节点。
分布式计算
基于云平台的最典型的分布式计算模式是MapReduce编程模型。MapReduce将大型任务分成很多细粒度的子任务,这些子任务分布式的在多个计算节点上进行调度和计算,从而在云平台上获得对海量数据的处理能力。概念"Map(映射)"和"Reduce(化简)",和他们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(化简)函数,用来保证所有映射的键值对中的每一个共享相同的键组。简单说来,一个映射函数就是对一些独立元素组成的概念上的列表的每一个元素进行指定的操作。事实上,每个元素都是被独立操作的,而原始列表没有被更改,因 为这里创建了一个新的列表来保存新的答案。这就是说,Map操作是可以高度并行的,这对高性能要求的应用以及并行计算领域的需求非常有用。而Reduce操作指的是对一个列表的元素进行适当的合并。虽然他不如映射函数那么并行,但是因为化简总是有一个简单的答案,大规模的运算相对独立,所以化简函数在高度并行环境下也很有用。
企业实现数据云之后,可以实现快速搭建一个数据分析云计算平台,这个过程将通过管理平台自动化实现。数据分析云的扩展性,保证各类平台都可以参与到云计算中。参与平台的机器可以是资源池的闲置机器,也可扩展到非生产环境的机器,如开发测试资源池,甚至办公机器。数据分析云具有灵活弹性,因此各类机器可选择空闲时段加入云平台,例如办公机器可在夜间空闲时段加入云分析,而白天仍进行各自任务。灵活的加入与退出并不中断云计算本身。数据分析云具有高可靠性,即使出现一些机器的临时故障,云平台能够自动检测和适应,并不中断云平台分析与计算。
1.2 云计算的分布式技术模型
数据分析和商业智能云平台的技术架构由如下四层结构组成:
数据分析与商业智能的应用
数据分析中间件(算法库和工具)
云模式分布式并行计算框架
云模式分布式文件系统和特定主题的数据模型
前述功能模型中的四个具体分析应用,归属于应用层。平台未来将要支持的各种应用层业务逻辑也在这层定制化开发。
图2 技术模型
数据分析中间件
这层中间件是架构在Hadoop之上,遵照MapReduce计算模型开发而来的一系列的算法库和工具。为支持现有各种数据分析和商业智能应用,本层应至少包含统计查询、社会网络分析、数据挖掘、机器学习的算法库和工具。此外,随着云模式数据分析与商业智能平台及其应用的发展,本层的算法库和工具也将不断丰富和完善。
下图展现了一个典型的数据分析和商业智能应用的流程,包括:问题定义、数据收集、数据分析、决策、行动/监控/学习,及其迭代过程。
云模式数据分析与商业智能平台所提供的算法库和工具将为应用提供数据分析和决策两个环节的支持。依托下层的Hadoop MapReduce分布式并行计算框架和Hadoop分布式文件系统,本层中间件适合处理满足下列特征的数据:
非结构化 或 半结构化源数据,例如CDR,短信日志等。
大规模数据集;
快速增长的数据集(例如,每日更新的手机用户的通话日志)
本层中间件与传统数据分析与商业智能中间件相比,其特点在于:
针对海量数据提供高性价比的计算分析;
依附于最通用的云计算平台(Hadoop)之上,可有效地与其他云计算中间件进行协调整合;
快捷地支持各种类型的商业智能解决方案的开发和部署;
依托MapReduce编程模型,可以有效建立协作式的分析知识库
1.3 云模式分布式并行计算框架
基于云平台的最典型的分布式计算模型就是MapReduce编程模型,这也是本平台首选的分布式并行计算模型。MapReduce将大型任务分成很多细粒度的子任务,这些子任务分布式且并行地在多个计算节点上进行调度和计算,从而在云平台上获得对海量数据的处理能力。概念"Map(映射)"和"Reduce(化简)",和他们的主要思想,都是从函数式编程语言里借鉴来的。
遵照MapReduce编程模型,数据分析与商业智能算法库的开发者可以编写一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,还可以编写一个Reduce(化简)函数,用来处理Map函数产生的键值对中的共享相同的键的所有键值对。简单说来,一个映射函数就是对一些独立元素组成的概念上的列表的每一个元素进行指定的操作。事实上,每个元素都是被独立操作的,而原始列表没有被更改,因为这里将创建一个新的列表来保存操作的结果。因此,Map操作是可以高度并行的,这对有高性能要求的应用以及并行计算领域的需求非常有用。而Reduce操作则是是对一个列表的元素进行适当的合并。虽然不如Map函数那么并行,但是因为有许多的运算中用到的化简都有简单的输入和化简结果,所以Reduce函数在高度并行环境下往往也很有用。
目前存在的MapReduce分布式并行计算框架实现有几种,其中最主要的是Apache Hadoop MapReduce,已经形成了成熟活跃的开发和用户社群。这也是本平台首选的依托方案。在Apache Hadoop MapReduce中,Map操作和Reduce操作的执行被包裹为任务(task),而任务又以Map-Reduce对的形式被包裹为作业(job)。负责在Hadoop集群节点上安排任务执行的软件被称作TaskTracker,通常在每个计算节点上部署一个。负责在集群范围内调度作业和任务执行的软件被称作JobTracker,通常在Hadoop集群内挑选独立的机器来部署。
尽管MapReduce分布式并行编程模型对底层数据存储并无硬性的要求,但是,为了最好地利用该模型带来的伸缩性优势,往往需要采用分布式文件系统作为输入数据,中间结果以及输出数据的载体。
在Apache Hadoop套件中,这样的分布式文件系统就是Hadoop分布式文件系统(Hadoop Distributed File System,HDFS),这也是本平台首选的分布式文件系统方案之一。该系统利用Hadoop 集群中各个节点的本地磁盘来存放数据文件,可以在普通的硬件平台上实现可靠的数据存储。
对外部客户机而言,HDFS 就像一个传统的分级文件系统。可以创建、删除、移动或重命名文件,等等。但是 HDFS 的架构是基于一组特定的节点构建的(参见下图 ,这是由它自身的特点决定的。这些节点包括 NameNode,负责在 HDFS 内部提供元数据服务;DataNode,负责为 HDFS 提供存储块。Hadoop 集群往往包含一个 NameNode 和大量 DataNode
DataNode 通常以机架的形式组织,机架之间通过交换机实现连接。Hadoop HDFS和Hadoop MapReduce的一个假设是:机架内部节点之间的传输速度和延迟都好于机架间。
1.4 云计算的分布式技术模型实现方式
从传统的数据分析与商业智能分析模式向基于云计算的数据分析云的进化是企业数据分析的终级目标。转型过程应该从资源整合与平台虚拟化着手,分步引入虚拟化高级功能和云计算概念。
资源整合与点应用
以现有的数据分析与商业智能分析系统为基础,进行资源整合,实现物理资源的虚拟化,通过虚拟化技术实现资源池化和资源动态扩展等功能,实现基础平台与应用平台的扩展。目前实现虚拟化的产品有很多,其中以Vmware,微软,ctrix的虚拟化产品为主流。
依托基础平台与应用扩展平台,实现数据分析和商业智能平台的快速部署和资源动态扩展。
在此基础上,借助平台快速部署功能和系统无缝移置功能,选择性地开发和部署一批数据分析和商业智能应用。
平台扩展和应用推广
在基础整合的基础上扩展平台,开发和部署更多的云模式数据分析和商业智能应用。同EDW、ODS和其他现有BI平台的集成。
平台开放和自主演化
这个阶段的平台建设目标是标准化云模式数据分析和商业智能应用的开发接口和运行时接口;提供较为完善的开发套件。鼓励和吸引企业及合作伙伴共同丰富平台和应用的功能。
1.5 云计算的难度和潜在风险
在数据分析与商业智能分析中应用云计算技术,能提高数据分析的效率,让企业更加能适应快速变化的市场,为快速推出新的产品提供数据依据,但是云计算也存在一些难点和风险。
产品选择问题
服务器虚拟化技术和产品没有统一的标准平台和开放协议,业界内服务器虚拟化产品良莠不齐,不合适的产品选择会带来严重的投资风险。而且服务器虚拟化软件价格不菲,短期、小范围内的应用难见效益。
可靠性问题
由于在一台服务器上运行多个重要应用程序和数据库,虚拟化的IT环境比大型计算机和微型计算机环境更容易遭到灾难性崩溃的破坏,因为它们有同样集中的资源,但是,硬件的可靠性不同。
数据安全问题
数据是企业的生命,数据的丢失和泄露对企业来说是不容忽视的风险。云计算带来便利的同时,也给数据完全带来了风险。
环境的复杂化
虚拟化的本质是应用只与虚拟层交互,而与真正的硬件隔离。在造成便利的同时,也造成了风险。软件和硬件之间被切断联系将导致安全人员看不到设备背后发生的风险,服务器环境变得更加不固定、复杂,安全人员最终失去硬件本身提供的稳定性。当应用出现故障时,需要精确定位是硬件还是软件故障,在虚拟化世界中,这将是一项复杂而冗长的工作。
1.1 云计算是大数据分析的灵魂
1.1.1 云计算的提出和概念
云计算的思想可以追溯到1961 年图灵奖得主John Mc-Carthy 提出计算能力将作为一种像水、电一样的公用事业提供给用户。2001 年,Google CEO Eric Schmidt 搜索引擎大会上首次提出“云计算”的概念: 用户可以利用终端设备接入互联网, 透明地访问“云端”的服务,“云”负责管理一切计算资源, 快速响应用户的各种请求、提供服务, 所需费用则是根据享受的服务进行计算。
目前,对于云计算的认识在不断地发展变化,云计算仍没有普遍一致的定义。从一般应用的观点来看,云计算是基于互联网的超级计算模式,包含互联网上的应用服务及在数据中心提供这些服务的软硬件设施,进行统一的管理和协同合作。云计算将 IT 相关的能力以服务的方式提供给用户,允许用户在不了解提供服务的技术、没有相关知识以及设备操作能力的情况下,通过Internet 获取需要的服务。
1.1.2 云计算的优势
云计算发展的首要问题就是标准化问题。云计算的标准化关乎云计算的规模应用和普及,例如云系统之间的互操作问题,用户需要将云计算应用程序迁移到另一家公司的云计算平台上等等,都需要统一的云计算公共标准,但由于云计算涉及 IT 领域较多,例如基础设施、平台、应用和服务,很难在短期内形成统一的标准。
此外,云计算的推广还依赖于有效的并行计算的解决方案,涉及到编程模型、开发语言和开发工具等多方面。大规模的集群计算系统支撑大容量计算和云存储,有效地进行系统配置、监控、管理、调度等需要可靠的系统技术。
云计算是一种新型业务交付模式,同时也是新型IT基础设施管理方法。通过新型的业务交付模式,用户将通过网络充分利用优化的硬件、软件和网络资源,并以此为基础提供创新的业务服务。新型IT基础设施管理方法让IT部门可以把海量资源作为一个统一的大资源进行管理,支持IT部门在大量增加资源的同时无需显著增加相应的人员进行维护和管理。
云计算通过简单的方式给业务服务和终端消费者服务快速提供计算资源,提供无限扩展和有保障的高品质服务,因此用户可以更加专注于服务本身的创新和决策。云计算是一种成本高效的模式,用于提供流程、应用和服务,并让IT管理更加简单,更快的响应业务需要。这些服务,如计算服务,存储服务,网络服务等,都通过一种简化的方式按需提供,无论用户及用户使用的设备是属于哪种类型。
虚拟化
虚拟化可以大幅度提高组织中资源和应用程序的效率和可用性。虚拟化把物理资源和最终呈现给用户的资源进行了分离,实际是一个替代过程,在具有统一良好架构设计的物理资源上创建出多个替代资源(也就是虚拟资源),替代资源和物理资源具有相同的接口和功能,对于用户来说虚拟资源具备与物理资源相同的使用功能,同时还可以有着不同的属性,如价格,容量,可调整性等。下图是虚拟化的示意图。
图1 虚拟化
自动化部署
云计算的一个核心思想是通过自动化的方式尽可能地简化任务,使得用户可以通过自助服务方式快捷地获取所需的资源和能力。部署是基础设施管理中十分重要,也是需要花费很大工作量的一部分,包括操作系统、中间件和应用等不同层次的部署。自动化部署提供简化流程,用户提出申请后由自动化部署平台根据调度和预约自动完成相应的部署,因此用户只需花十几分钟,甚至几分钟就可以得到一个完整的环境,极大地提高了工作效率。
应用规模扩展
云计算提供了一个巨大的资源池,而应用的使用又有不同的负载周期,根据负载对应用的资源进行动态伸缩将可以显著提高资源的有效利用率,即高负载时动态扩展资源,低负载时释放多余的资源,这就是应用规模扩展技术所解决的问题。该技术以应用为基本单位,为不同的应用架构设定不同的集群类型,每一种集群类型都有特定的扩展方式,然后通过监控负载的动态变化,自动为应用集群增加或者减少资源。
分布式文件系统
分布式存储的目标是利用云环境中多台服务器的存储资源来满足单台服务器所不能满足的存储需求。其特征是,存储资源能够被抽象表示和统一管理,并且能够保证数据读写与操作的安全性、可靠性、性能等各方面要求。
云计算催生了一些优秀的分布式文件系统和云存储服务。最典型的云平台分布式文件系统是Google的GFS(Google File System)和开源的Hadoop。这两种可伸缩的分布式文件系统利用容错和故障恢复机制,有效的克服单节点故障导致的系统故障;实现了大规模海量级的文件存储。
以Hadoop文件系统为例,Hadoop文件系统(HDFS)是一个运行在普通的硬件之上的分布式文件系统,它和现有的分布式文件系统有着很多的相似性,然而和其他的分布式文件系统 的区别也是很明显的:HDFS是高容错性的,可以部署在低成本的硬件之上,HDFS提供高吞吐量地对应用程序数据访问,它适合大数据集的应用程 序,HDFS放开一些POSIX的需求去实现流式地访问文件数据。一个HDFS集群由一个管理文件系统元数据的Name Node,和存储实际数据的一些Data Node组成。
分布式数据库与非结构化数据存储
在分布式文件系统之上,是存储海量结构化数据的分布式存储系统。典型包括,Google的BigTable,开源的HBase等。这些系统可将非结构化数据,例如网页等,存储为分布式的、多维的、有序的图。
以HBase为例。HBase是一个分布式的、面向列的开源数据库。HBase是Apache的Hadoop 项目的子项目,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库.另一个不同的是,HBase基于列的而不是基于行的模式。 HBase使用和Bigtable非常相同的数据模型。用户存储数据行在一个表里。一个数据行拥有一个可选择的键和任意数量的列。表是疏松的存储的,因此 用户可以给行定义各种不同的列。HBase主要用于需要随机访问,实时读写大数据。在系统架构上,HBase 分成 Master 与 Region Server 两部份。Master负责告知 client对一个表访问时,应该转向哪台 Region Server;而 Region Server 就是实际上提供数据的节点。
分布式计算
基于云平台的最典型的分布式计算模式是MapReduce编程模型。MapReduce将大型任务分成很多细粒度的子任务,这些子任务分布式的在多个计算节点上进行调度和计算,从而在云平台上获得对海量数据的处理能力。概念"Map(映射)"和"Reduce(化简)",和他们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(化简)函数,用来保证所有映射的键值对中的每一个共享相同的键组。简单说来,一个映射函数就是对一些独立元素组成的概念上的列表的每一个元素进行指定的操作。事实上,每个元素都是被独立操作的,而原始列表没有被更改,因 为这里创建了一个新的列表来保存新的答案。这就是说,Map操作是可以高度并行的,这对高性能要求的应用以及并行计算领域的需求非常有用。而Reduce操作指的是对一个列表的元素进行适当的合并。虽然他不如映射函数那么并行,但是因为化简总是有一个简单的答案,大规模的运算相对独立,所以化简函数在高度并行环境下也很有用。
企业实现数据云之后,可以实现快速搭建一个数据分析云计算平台,这个过程将通过管理平台自动化实现。数据分析云的扩展性,保证各类平台都可以参与到云计算中。参与平台的机器可以是资源池的闲置机器,也可扩展到非生产环境的机器,如开发测试资源池,甚至办公机器。数据分析云具有灵活弹性,因此各类机器可选择空闲时段加入云平台,例如办公机器可在夜间空闲时段加入云分析,而白天仍进行各自任务。灵活的加入与退出并不中断云计算本身。数据分析云具有高可靠性,即使出现一些机器的临时故障,云平台能够自动检测和适应,并不中断云平台分析与计算。
1.2 云计算的分布式技术模型
数据分析和商业智能云平台的技术架构由如下四层结构组成:
数据分析与商业智能的应用
数据分析中间件(算法库和工具)
云模式分布式并行计算框架
云模式分布式文件系统和特定主题的数据模型
前述功能模型中的四个具体分析应用,归属于应用层。平台未来将要支持的各种应用层业务逻辑也在这层定制化开发。
图2 技术模型
数据分析中间件
这层中间件是架构在Hadoop之上,遵照MapReduce计算模型开发而来的一系列的算法库和工具。为支持现有各种数据分析和商业智能应用,本层应至少包含统计查询、社会网络分析、数据挖掘、机器学习的算法库和工具。此外,随着云模式数据分析与商业智能平台及其应用的发展,本层的算法库和工具也将不断丰富和完善。
下图展现了一个典型的数据分析和商业智能应用的流程,包括:问题定义、数据收集、数据分析、决策、行动/监控/学习,及其迭代过程。
云模式数据分析与商业智能平台所提供的算法库和工具将为应用提供数据分析和决策两个环节的支持。依托下层的Hadoop MapReduce分布式并行计算框架和Hadoop分布式文件系统,本层中间件适合处理满足下列特征的数据:
非结构化 或 半结构化源数据,例如CDR,短信日志等。
大规模数据集;
快速增长的数据集(例如,每日更新的手机用户的通话日志)
本层中间件与传统数据分析与商业智能中间件相比,其特点在于:
针对海量数据提供高性价比的计算分析;
依附于最通用的云计算平台(Hadoop)之上,可有效地与其他云计算中间件进行协调整合;
快捷地支持各种类型的商业智能解决方案的开发和部署;
依托MapReduce编程模型,可以有效建立协作式的分析知识库
1.3 云模式分布式并行计算框架
基于云平台的最典型的分布式计算模型就是MapReduce编程模型,这也是本平台首选的分布式并行计算模型。MapReduce将大型任务分成很多细粒度的子任务,这些子任务分布式且并行地在多个计算节点上进行调度和计算,从而在云平台上获得对海量数据的处理能力。概念"Map(映射)"和"Reduce(化简)",和他们的主要思想,都是从函数式编程语言里借鉴来的。
遵照MapReduce编程模型,数据分析与商业智能算法库的开发者可以编写一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,还可以编写一个Reduce(化简)函数,用来处理Map函数产生的键值对中的共享相同的键的所有键值对。简单说来,一个映射函数就是对一些独立元素组成的概念上的列表的每一个元素进行指定的操作。事实上,每个元素都是被独立操作的,而原始列表没有被更改,因为这里将创建一个新的列表来保存操作的结果。因此,Map操作是可以高度并行的,这对有高性能要求的应用以及并行计算领域的需求非常有用。而Reduce操作则是是对一个列表的元素进行适当的合并。虽然不如Map函数那么并行,但是因为有许多的运算中用到的化简都有简单的输入和化简结果,所以Reduce函数在高度并行环境下往往也很有用。
目前存在的MapReduce分布式并行计算框架实现有几种,其中最主要的是Apache Hadoop MapReduce,已经形成了成熟活跃的开发和用户社群。这也是本平台首选的依托方案。在Apache Hadoop MapReduce中,Map操作和Reduce操作的执行被包裹为任务(task),而任务又以Map-Reduce对的形式被包裹为作业(job)。负责在Hadoop集群节点上安排任务执行的软件被称作TaskTracker,通常在每个计算节点上部署一个。负责在集群范围内调度作业和任务执行的软件被称作JobTracker,通常在Hadoop集群内挑选独立的机器来部署。
尽管MapReduce分布式并行编程模型对底层数据存储并无硬性的要求,但是,为了最好地利用该模型带来的伸缩性优势,往往需要采用分布式文件系统作为输入数据,中间结果以及输出数据的载体。
在Apache Hadoop套件中,这样的分布式文件系统就是Hadoop分布式文件系统(Hadoop Distributed File System,HDFS),这也是本平台首选的分布式文件系统方案之一。该系统利用Hadoop 集群中各个节点的本地磁盘来存放数据文件,可以在普通的硬件平台上实现可靠的数据存储。
对外部客户机而言,HDFS 就像一个传统的分级文件系统。可以创建、删除、移动或重命名文件,等等。但是 HDFS 的架构是基于一组特定的节点构建的(参见下图 ,这是由它自身的特点决定的。这些节点包括 NameNode,负责在 HDFS 内部提供元数据服务;DataNode,负责为 HDFS 提供存储块。Hadoop 集群往往包含一个 NameNode 和大量 DataNode
DataNode 通常以机架的形式组织,机架之间通过交换机实现连接。Hadoop HDFS和Hadoop MapReduce的一个假设是:机架内部节点之间的传输速度和延迟都好于机架间。
1.4 云计算的分布式技术模型实现方式
从传统的数据分析与商业智能分析模式向基于云计算的数据分析云的进化是企业数据分析的终级目标。转型过程应该从资源整合与平台虚拟化着手,分步引入虚拟化高级功能和云计算概念。
资源整合与点应用
以现有的数据分析与商业智能分析系统为基础,进行资源整合,实现物理资源的虚拟化,通过虚拟化技术实现资源池化和资源动态扩展等功能,实现基础平台与应用平台的扩展。目前实现虚拟化的产品有很多,其中以Vmware,微软,ctrix的虚拟化产品为主流。
依托基础平台与应用扩展平台,实现数据分析和商业智能平台的快速部署和资源动态扩展。
在此基础上,借助平台快速部署功能和系统无缝移置功能,选择性地开发和部署一批数据分析和商业智能应用。
平台扩展和应用推广
在基础整合的基础上扩展平台,开发和部署更多的云模式数据分析和商业智能应用。同EDW、ODS和其他现有BI平台的集成。
平台开放和自主演化
这个阶段的平台建设目标是标准化云模式数据分析和商业智能应用的开发接口和运行时接口;提供较为完善的开发套件。鼓励和吸引企业及合作伙伴共同丰富平台和应用的功能。
1.5 云计算的难度和潜在风险
在数据分析与商业智能分析中应用云计算技术,能提高数据分析的效率,让企业更加能适应快速变化的市场,为快速推出新的产品提供数据依据,但是云计算也存在一些难点和风险。
产品选择问题
服务器虚拟化技术和产品没有统一的标准平台和开放协议,业界内服务器虚拟化产品良莠不齐,不合适的产品选择会带来严重的投资风险。而且服务器虚拟化软件价格不菲,短期、小范围内的应用难见效益。
可靠性问题
由于在一台服务器上运行多个重要应用程序和数据库,虚拟化的IT环境比大型计算机和微型计算机环境更容易遭到灾难性崩溃的破坏,因为它们有同样集中的资源,但是,硬件的可靠性不同。
数据安全问题
数据是企业的生命,数据的丢失和泄露对企业来说是不容忽视的风险。云计算带来便利的同时,也给数据完全带来了风险。
环境的复杂化
虚拟化的本质是应用只与虚拟层交互,而与真正的硬件隔离。在造成便利的同时,也造成了风险。软件和硬件之间被切断联系将导致安全人员看不到设备背后发生的风险,服务器环境变得更加不固定、复杂,安全人员最终失去硬件本身提供的稳定性。当应用出现故障时,需要精确定位是硬件还是软件故障,在虚拟化世界中,这将是一项复杂而冗长的工作。
1.1 云计算是大数据分析的灵魂
1.1.1 云计算的提出和概念
云计算的思想可以追溯到1961 年图灵奖得主John Mc-Carthy 提出计算能力将作为一种像水、电一样的公用事业提供给用户。2001 年,Google CEO Eric Schmidt 搜索引擎大会上首次提出“云计算”的概念: 用户可以利用终端设备接入互联网, 透明地访问“云端”的服务,“云”负责管理一切计算资源, 快速响应用户的各种请求、提供服务, 所需费用则是根据享受的服务进行计算。
目前,对于云计算的认识在不断地发展变化,云计算仍没有普遍一致的定义。从一般应用的观点来看,云计算是基于互联网的超级计算模式,包含互联网上的应用服务及在数据中心提供这些服务的软硬件设施,进行统一的管理和协同合作。云计算将 IT 相关的能力以服务的方式提供给用户,允许用户在不了解提供服务的技术、没有相关知识以及设备操作能力的情况下,通过Internet 获取需要的服务。
1.1.2 云计算的优势
云计算发展的首要问题就是标准化问题。云计算的标准化关乎云计算的规模应用和普及,例如云系统之间的互操作问题,用户需要将云计算应用程序迁移到另一家公司的云计算平台上等等,都需要统一的云计算公共标准,但由于云计算涉及 IT 领域较多,例如基础设施、平台、应用和服务,很难在短期内形成统一的标准。
此外,云计算的推广还依赖于有效的并行计算的解决方案,涉及到编程模型、开发语言和开发工具等多方面。大规模的集群计算系统支撑大容量计算和云存储,有效地进行系统配置、监控、管理、调度等需要可靠的系统技术。
云计算是一种新型业务交付模式,同时也是新型IT基础设施管理方法。通过新型的业务交付模式,用户将通过网络充分利用优化的硬件、软件和网络资源,并以此为基础提供创新的业务服务。新型IT基础设施管理方法让IT部门可以把海量资源作为一个统一的大资源进行管理,支持IT部门在大量增加资源的同时无需显著增加相应的人员进行维护和管理。
云计算通过简单的方式给业务服务和终端消费者服务快速提供计算资源,提供无限扩展和有保障的高品质服务,因此用户可以更加专注于服务本身的创新和决策。云计算是一种成本高效的模式,用于提供流程、应用和服务,并让IT管理更加简单,更快的响应业务需要。这些服务,如计算服务,存储服务,网络服务等,都通过一种简化的方式按需提供,无论用户及用户使用的设备是属于哪种类型。
虚拟化
虚拟化可以大幅度提高组织中资源和应用程序的效率和可用性。虚拟化把物理资源和最终呈现给用户的资源进行了分离,实际是一个替代过程,在具有统一良好架构设计的物理资源上创建出多个替代资源(也就是虚拟资源),替代资源和物理资源具有相同的接口和功能,对于用户来说虚拟资源具备与物理资源相同的使用功能,同时还可以有着不同的属性,如价格,容量,可调整性等。下图是虚拟化的示意图。
图1 虚拟化
自动化部署
云计算的一个核心思想是通过自动化的方式尽可能地简化任务,使得用户可以通过自助服务方式快捷地获取所需的资源和能力。部署是基础设施管理中十分重要,也是需要花费很大工作量的一部分,包括操作系统、中间件和应用等不同层次的部署。自动化部署提供简化流程,用户提出申请后由自动化部署平台根据调度和预约自动完成相应的部署,因此用户只需花十几分钟,甚至几分钟就可以得到一个完整的环境,极大地提高了工作效率。
应用规模扩展
云计算提供了一个巨大的资源池,而应用的使用又有不同的负载周期,根据负载对应用的资源进行动态伸缩将可以显著提高资源的有效利用率,即高负载时动态扩展资源,低负载时释放多余的资源,这就是应用规模扩展技术所解决的问题。该技术以应用为基本单位,为不同的应用架构设定不同的集群类型,每一种集群类型都有特定的扩展方式,然后通过监控负载的动态变化,自动为应用集群增加或者减少资源。
分布式文件系统
分布式存储的目标是利用云环境中多台服务器的存储资源来满足单台服务器所不能满足的存储需求。其特征是,存储资源能够被抽象表示和统一管理,并且能够保证数据读写与操作的安全性、可靠性、性能等各方面要求。
云计算催生了一些优秀的分布式文件系统和云存储服务。最典型的云平台分布式文件系统是Google的GFS(Google File System)和开源的Hadoop。这两种可伸缩的分布式文件系统利用容错和故障恢复机制,有效的克服单节点故障导致的系统故障;实现了大规模海量级的文件存储。
以Hadoop文件系统为例,Hadoop文件系统(HDFS)是一个运行在普通的硬件之上的分布式文件系统,它和现有的分布式文件系统有着很多的相似性,然而和其他的分布式文件系统 的区别也是很明显的:HDFS是高容错性的,可以部署在低成本的硬件之上,HDFS提供高吞吐量地对应用程序数据访问,它适合大数据集的应用程 序,HDFS放开一些POSIX的需求去实现流式地访问文件数据。一个HDFS集群由一个管理文件系统元数据的Name Node,和存储实际数据的一些Data Node组成。
分布式数据库与非结构化数据存储
在分布式文件系统之上,是存储海量结构化数据的分布式存储系统。典型包括,Google的BigTable,开源的HBase等。这些系统可将非结构化数据,例如网页等,存储为分布式的、多维的、有序的图。
以HBase为例。HBase是一个分布式的、面向列的开源数据库。HBase是Apache的Hadoop 项目的子项目,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库.另一个不同的是,HBase基于列的而不是基于行的模式。 HBase使用和Bigtable非常相同的数据模型。用户存储数据行在一个表里。一个数据行拥有一个可选择的键和任意数量的列。表是疏松的存储的,因此 用户可以给行定义各种不同的列。HBase主要用于需要随机访问,实时读写大数据。在系统架构上,HBase 分成 Master 与 Region Server 两部份。Master负责告知 client对一个表访问时,应该转向哪台 Region Server;而 Region Server 就是实际上提供数据的节点。
分布式计算
基于云平台的最典型的分布式计算模式是MapReduce编程模型。MapReduce将大型任务分成很多细粒度的子任务,这些子任务分布式的在多个计算节点上进行调度和计算,从而在云平台上获得对海量数据的处理能力。概念"Map(映射)"和"Reduce(化简)",和他们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(化简)函数,用来保证所有映射的键值对中的每一个共享相同的键组。简单说来,一个映射函数就是对一些独立元素组成的概念上的列表的每一个元素进行指定的操作。事实上,每个元素都是被独立操作的,而原始列表没有被更改,因 为这里创建了一个新的列表来保存新的答案。这就是说,Map操作是可以高度并行的,这对高性能要求的应用以及并行计算领域的需求非常有用。而Reduce操作指的是对一个列表的元素进行适当的合并。虽然他不如映射函数那么并行,但是因为化简总是有一个简单的答案,大规模的运算相对独立,所以化简函数在高度并行环境下也很有用。
企业实现数据云之后,可以实现快速搭建一个数据分析云计算平台,这个过程将通过管理平台自动化实现。数据分析云的扩展性,保证各类平台都可以参与到云计算中。参与平台的机器可以是资源池的闲置机器,也可扩展到非生产环境的机器,如开发测试资源池,甚至办公机器。数据分析云具有灵活弹性,因此各类机器可选择空闲时段加入云平台,例如办公机器可在夜间空闲时段加入云分析,而白天仍进行各自任务。灵活的加入与退出并不中断云计算本身。数据分析云具有高可靠性,即使出现一些机器的临时故障,云平台能够自动检测和适应,并不中断云平台分析与计算。
1.2 云计算的分布式技术模型
数据分析和商业智能云平台的技术架构由如下四层结构组成:
数据分析与商业智能的应用
数据分析中间件(算法库和工具)
云模式分布式并行计算框架
云模式分布式文件系统和特定主题的数据模型
前述功能模型中的四个具体分析应用,归属于应用层。平台未来将要支持的各种应用层业务逻辑也在这层定制化开发。
图2 技术模型
数据分析中间件
这层中间件是架构在Hadoop之上,遵照MapReduce计算模型开发而来的一系列的算法库和工具。为支持现有各种数据分析和商业智能应用,本层应至少包含统计查询、社会网络分析、数据挖掘、机器学习的算法库和工具。此外,随着云模式数据分析与商业智能平台及其应用的发展,本层的算法库和工具也将不断丰富和完善。
下图展现了一个典型的数据分析和商业智能应用的流程,包括:问题定义、数据收集、数据分析、决策、行动/监控/学习,及其迭代过程。
云模式数据分析与商业智能平台所提供的算法库和工具将为应用提供数据分析和决策两个环节的支持。依托下层的Hadoop MapReduce分布式并行计算框架和Hadoop分布式文件系统,本层中间件适合处理满足下列特征的数据:
非结构化 或 半结构化源数据,例如CDR,短信日志等。
大规模数据集;
快速增长的数据集(例如,每日更新的手机用户的通话日志)
本层中间件与传统数据分析与商业智能中间件相比,其特点在于:
针对海量数据提供高性价比的计算分析;
依附于最通用的云计算平台(Hadoop)之上,可有效地与其他云计算中间件进行协调整合;
快捷地支持各种类型的商业智能解决方案的开发和部署;
依托MapReduce编程模型,可以有效建立协作式的分析知识库
1.3 云模式分布式并行计算框架
基于云平台的最典型的分布式计算模型就是MapReduce编程模型,这也是本平台首选的分布式并行计算模型。MapReduce将大型任务分成很多细粒度的子任务,这些子任务分布式且并行地在多个计算节点上进行调度和计算,从而在云平台上获得对海量数据的处理能力。概念"Map(映射)"和"Reduce(化简)",和他们的主要思想,都是从函数式编程语言里借鉴来的。
遵照MapReduce编程模型,数据分析与商业智能算法库的开发者可以编写一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,还可以编写一个Reduce(化简)函数,用来处理Map函数产生的键值对中的共享相同的键的所有键值对。简单说来,一个映射函数就是对一些独立元素组成的概念上的列表的每一个元素进行指定的操作。事实上,每个元素都是被独立操作的,而原始列表没有被更改,因为这里将创建一个新的列表来保存操作的结果。因此,Map操作是可以高度并行的,这对有高性能要求的应用以及并行计算领域的需求非常有用。而Reduce操作则是是对一个列表的元素进行适当的合并。虽然不如Map函数那么并行,但是因为有许多的运算中用到的化简都有简单的输入和化简结果,所以Reduce函数在高度并行环境下往往也很有用。
目前存在的MapReduce分布式并行计算框架实现有几种,其中最主要的是Apache Hadoop MapReduce,已经形成了成熟活跃的开发和用户社群。这也是本平台首选的依托方案。在Apache Hadoop MapReduce中,Map操作和Reduce操作的执行被包裹为任务(task),而任务又以Map-Reduce对的形式被包裹为作业(job)。负责在Hadoop集群节点上安排任务执行的软件被称作TaskTracker,通常在每个计算节点上部署一个。负责在集群范围内调度作业和任务执行的软件被称作JobTracker,通常在Hadoop集群内挑选独立的机器来部署。
尽管MapReduce分布式并行编程模型对底层数据存储并无硬性的要求,但是,为了最好地利用该模型带来的伸缩性优势,往往需要采用分布式文件系统作为输入数据,中间结果以及输出数据的载体。
在Apache Hadoop套件中,这样的分布式文件系统就是Hadoop分布式文件系统(Hadoop Distributed File System,HDFS),这也是本平台首选的分布式文件系统方案之一。该系统利用Hadoop 集群中各个节点的本地磁盘来存放数据文件,可以在普通的硬件平台上实现可靠的数据存储。
对外部客户机而言,HDFS 就像一个传统的分级文件系统。可以创建、删除、移动或重命名文件,等等。但是 HDFS 的架构是基于一组特定的节点构建的(参见下图 ,这是由它自身的特点决定的。这些节点包括 NameNode,负责在 HDFS 内部提供元数据服务;DataNode,负责为 HDFS 提供存储块。Hadoop 集群往往包含一个 NameNode 和大量 DataNode
DataNode 通常以机架的形式组织,机架之间通过交换机实现连接。Hadoop HDFS和Hadoop MapReduce的一个假设是:机架内部节点之间的传输速度和延迟都好于机架间。
1.4 云计算的分布式技术模型实现方式
从传统的数据分析与商业智能分析模式向基于云计算的数据分析云的进化是企业数据分析的终级目标。转型过程应该从资源整合与平台虚拟化着手,分步引入虚拟化高级功能和云计算概念。
资源整合与点应用
以现有的数据分析与商业智能分析系统为基础,进行资源整合,实现物理资源的虚拟化,通过虚拟化技术实现资源池化和资源动态扩展等功能,实现基础平台与应用平台的扩展。目前实现虚拟化的产品有很多,其中以Vmware,微软,ctrix的虚拟化产品为主流。
依托基础平台与应用扩展平台,实现数据分析和商业智能平台的快速部署和资源动态扩展。
在此基础上,借助平台快速部署功能和系统无缝移置功能,选择性地开发和部署一批数据分析和商业智能应用。
平台扩展和应用推广
在基础整合的基础上扩展平台,开发和部署更多的云模式数据分析和商业智能应用。同EDW、ODS和其他现有BI平台的集成。
平台开放和自主演化
这个阶段的平台建设目标是标准化云模式数据分析和商业智能应用的开发接口和运行时接口;提供较为完善的开发套件。鼓励和吸引企业及合作伙伴共同丰富平台和应用的功能。
1.5 云计算的难度和潜在风险
在数据分析与商业智能分析中应用云计算技术,能提高数据分析的效率,让企业更加能适应快速变化的市场,为快速推出新的产品提供数据依据,但是云计算也存在一些难点和风险。
产品选择问题
服务器虚拟化技术和产品没有统一的标准平台和开放协议,业界内服务器虚拟化产品良莠不齐,不合适的产品选择会带来严重的投资风险。而且服务器虚拟化软件价格不菲,短期、小范围内的应用难见效益。
可靠性问题
由于在一台服务器上运行多个重要应用程序和数据库,虚拟化的IT环境比大型计算机和微型计算机环境更容易遭到灾难性崩溃的破坏,因为它们有同样集中的资源,但是,硬件的可靠性不同。
数据安全问题
数据是企业的生命,数据的丢失和泄露对企业来说是不容忽视的风险。云计算带来便利的同时,也给数据完全带来了风险。
环境的复杂化
虚拟化的本质是应用只与虚拟层交互,而与真正的硬件隔离。在造成便利的同时,也造成了风险。软件和硬件之间被切断联系将导致安全人员看不到设备背后发生的风险,服务器环境变得更加不固定、复杂,安全人员最终失去硬件本身提供的稳定性。当应用出现故障时,需要精确定位是硬件还是软件故障,在虚拟化世界中,这将是一项复杂而冗长的工作。
|
|