1700432320
私有云的一个缺陷是,当你为用户提供服务前,你必须购买并拥有一整套的云计算设备,这在短期内可能会给公司的成本支出带来不利的影响。与公有云相比,公司在第一年花费的钱可能一下子增长了很多,但是随后的那些年,假如公司的大部分任务都在云内进行,私有云的成本反而会比较低。长期来看,如果有大量的用户持续使用云环境提供的服务,私有云的成本会比公有云低得多。
1700432321
1700432322
长期成本与短期成本
1700432323
1700432324
长期来看,如果有大量用户,私有云的成本会比公有云低得多。然而,由于需要启动资金与建设成本,实施私有云在短期内可能会给企业带来更高的费用支出。随着时间推移,这种情况就会逆转过来。
1700432325
1700432326
在概念上,私有云与我们将在第5章中讨论的分析沙箱没有很大的差异。两者的主要区别在于,一个真正的私有云会为用户提供充分的自助服务功能,而分析沙箱则要求系统具有更强的管理能力。这两个概念的确有些相近,在某些使用方面甚至是相同的。对于支持高级分析,可以说两者或多或少是在做同一件事情。其中一个区别是,如果使用私有云,并完全遵循云的规则与定义,系统负载会持续动态地发生变化,这可能会给系统管理带来不小的麻烦,用户可能不得不互相争夺资源。而在分析沙箱的环境中,当需要资源时,系统可以为团队分配一些确定的系统资源。系统资源确定的对立面是,如果你想得到额外的新资源,分析沙箱的用户要付出比私有云用户更多的努力。
1700432327
1700432329
4.4.3 云计算小结
1700432330
1700432331
这些日子云计算获得了很多的关注,也被大肆地炒作,但云计算的架构体系确实有很多的亮点。和其他新事物一样,企业必须理解不同的云的使用方式,以及不同使用方式的优缺点。
1700432332
1700432333
在近期和中期,公有云将主要用于那些数据不太敏感的开发任务。私有云,以及私有云的孪生兄弟分析沙箱,都将得到越来越广泛的应用,并对各种类型的分析工作产生巨大的影响。
1700432334
1700432335
一个基础观点是,在企业内建立一个更加灵活、结构多变、控制更少的分析环境,以支持各种研究、创新与探索性工作,这是完全正确的,而云计算恰恰就能提供这样的环境。
1700432336
1700432338
4.5 网格计算
1700432339
1700432340
某些计算过程与算法无法全部转换成SQL,或者难以嵌入数据库的某个自定义函数中。在这种情况下,必须要把数据从传统的分析环境中抽取出来,然后用传统的分析工具和软件进行分析。在很长的一段时间里,为了完成这个艰巨的任务,人们常使用一些大型服务器。问题是,随着分析师越来越多,以及分析任务越来越繁重,人们不得不对这些服务器进行扩容,或者增加更多的服务器,而这些都是相当昂贵的。即使这样,分析师还是经常把所有可用资源全部用完。
1700432341
1700432342
网格配置可以降低系统成本并提高性能。网格计算通常属于一种“高性能计算环境”。网格计算会使用大量的低成本计算机,而不是一台或几台高性能的服务器。网格计算不使用一台大型服务器来管理执行不同任务的CPU和资源,相反地,不同任务被独立地分配给不同的计算机,并让每一台计算机并发执行。每一台计算机也许都会承担原有服务器的某一部分任务,同一时间一台计算机通常只能执行一项任务。总体来看,网格计算可以承担相当多的工作。因此,网格计算这种系统机制在提升系统性能和容量的同时,可以显著地降低系统的总体成本。同时,网格计算还可以帮助企业平衡系统负载,管理任务的优先级,并为分析任务提供更高的可用性。
1700432343
1700432344
使用网格计算架构,分析专家可以在保持低价与高性能的同时,提升分析系统的可扩展性。当然,网格计算并不适合所有的场景。网格计算可能并不适合同时执行很多非常紧急的任务。因为每项任务都是由一台计算机独立完成的,如果同时有许多的超大型任务,网格计算环境下低成本计算机的表现将低于一台大型服务器。但是,假如一个大型企业内有很多的任务需要执行,而且大部分任务都是中小型的,那么使用网格计算环境将带来极大的提升。
1700432345
1700432346
网格计算还有一个刚出现不久的创新,即高性能的分析架构。在这个创新架构中,网格计算环境下的不同计算机都知道其他计算机的存在,并且不同计算机可以共享信息。这种协作方式,在同一时间充分使用了网格计算环境下的所有计算资源,使得某些大型任务可以更快地完成。这解决了我们之前提到的网格计算缺陷,即网格计算环境下每台独立的计算机只能承担一定复杂度的任务。这种新的网格计算技术被越来越多的人所接受,前景一片光明。在本书的写作过程中,还出现了一种更新颖的创新技术,它让网格环境直接连接到某一个数据库系统,使网格的系统性能得到进一步的提升。SAS公司的高性能分析解决方案就是这样的一个实例。
1700432347
1700432348
建模的理念与方法一直都在发展和进步,我们将在第6章中讨论的简易建模方法也获得了越来越广泛的使用,网格计算可以成为一种处理额外建模工作负载的有效方法。
1700432349
1700432351
4.6 MapReduce
1700432352
1700432353
MapReduce是一种并行的编程架构。它不是数据库,更不是数据库的竞争对手。有人宣称,MapReduce将取代数据库以及天底下的任何事物。事实上,MapReduce是对现有技术的补充。很多MapReduce能干的事情,关系型数据库也可以完成。归根到底人们需要确定哪个环境更适合解决手头上的问题。某个工具或技术可以执行某个任务,并不代表它是执行这个任务的最佳选择。我们不应该纠结于理论上MapReduce可以做什么,而应该专注于它最适合做什么,这样才可能将使用MapReduce的利益最大化。
1700432354
1700432355
MapReduce里程序员们内置了两个主要的处理过程:映射过程“map”以及归纳过程“reduce”。这就是MapReduce名字的来源。MapReduce会在一系列的工作结点上并发执行这些处理过程。这让我们联想起了MPP架构的数据库系统,数据被分配到不同节点以进行快速查询。类似于MPP系统,MapReduce也会把数据分配到不同通用设备上运行处理。每一个MapReduce节点都会使用同样的代码对自己管理的那部分数据进行处理。区别在于,MapReduce里的节点之间不会发生信息交互,甚至不知道彼此的存在。
1700432356
1700432357
假如系统有一个巨大且持续的网站日志数据流,这个数据流必须按块分割,然后分配到不同的节点上。当数据流持续不断地进入系统时,一个处理这些数据的简单方法就是建立一个循环运行的程序,或者某种形式的散列(hashing)。在这种情况下,数据在分配至不同节点前,要经过一些数学公式的加工处理,以确保相似的数据能分配到同一个节点上。例如,对顾客ID进行散列处理,就能把某一个顾客的所有记录全部分配到同一个节点上。如果计划使用顾客ID进行分析,这么处理就非常重要。
1700432358
1700432359
Mapreduce.org网站把MapReduce定义为Google发明并推广的一种编程框架。这个框架最初用于简化超大数据集的处理任务。Hadoop是MapReduce一种流行的开源版本,开发者是Apache团队。Hadoop是最出名的MapReduce实施版本。在这一节里,我们会专注于MapReduce的通用概念,这些概念适用于你所使用的任何MapReduce实施版本。
1700432360
1700432361
今天的企业已经发现,对持续生成的海量数据进行快速分析以支持科学决策是非常重要的。MapReduce是帮助企业管理半结构化或非结构化数据的一种工具,而这些数据使用传统的技术和工具是很难进行分析的。大多数企业在使用数据库管理关系型数据之外,也在使用各种方式处理其他类型的数据,包括文本以及机器自动生成的各种数据,如网络日志、传感器数据、图像等。为了获得有意义的启示,企业必须快速并高效地处理各种类型的数据。在MapReduce环境下,计算过程直接发生在存储数据的文件系统中,而无需首先把这些数据导入数据库。这是一项极为重要的特性,我们随后会进行详细阐述。
1700432362
1700432363
MapReduce环境的一个突出特点是处理各种非结构化文本的能力。在关系型数据库中,所有数据都存储在数据表以及数据表里的行与列中。数据内部的关系已经被清晰地定义,而原始数据往往不是这样。这就是MapReduce可以发挥威力的地方。我们确实可以把大段的文本导入数据库内作为一个二进制对象字段,但这并不是处理这类数据的最佳方案。这种情况下应该考虑使用MapReduce。
1700432364
1700432366
4.6.1 MapReduce工作原理
1700432367
1700432368
假设在某个项目中我们有20T的数据,以及20台MapReduce服务器。
1700432369
[
上一页 ]
[ :1.70043232e+09 ]
[
下一页 ]