打字猴:1.70043233e+09
1700432330
1700432331 这些日子云计算获得了很多的关注,也被大肆地炒作,但云计算的架构体系确实有很多的亮点。和其他新事物一样,企业必须理解不同的云的使用方式,以及不同使用方式的优缺点。
1700432332
1700432333 在近期和中期,公有云将主要用于那些数据不太敏感的开发任务。私有云,以及私有云的孪生兄弟分析沙箱,都将得到越来越广泛的应用,并对各种类型的分析工作产生巨大的影响。
1700432334
1700432335 一个基础观点是,在企业内建立一个更加灵活、结构多变、控制更少的分析环境,以支持各种研究、创新与探索性工作,这是完全正确的,而云计算恰恰就能提供这样的环境。
1700432336
1700432337 驾驭大数据 [:1700430571]
1700432338 4.5 网格计算
1700432339
1700432340 某些计算过程与算法无法全部转换成SQL,或者难以嵌入数据库的某个自定义函数中。在这种情况下,必须要把数据从传统的分析环境中抽取出来,然后用传统的分析工具和软件进行分析。在很长的一段时间里,为了完成这个艰巨的任务,人们常使用一些大型服务器。问题是,随着分析师越来越多,以及分析任务越来越繁重,人们不得不对这些服务器进行扩容,或者增加更多的服务器,而这些都是相当昂贵的。即使这样,分析师还是经常把所有可用资源全部用完。
1700432341
1700432342 网格配置可以降低系统成本并提高性能。网格计算通常属于一种“高性能计算环境”。网格计算会使用大量的低成本计算机,而不是一台或几台高性能的服务器。网格计算不使用一台大型服务器来管理执行不同任务的CPU和资源,相反地,不同任务被独立地分配给不同的计算机,并让每一台计算机并发执行。每一台计算机也许都会承担原有服务器的某一部分任务,同一时间一台计算机通常只能执行一项任务。总体来看,网格计算可以承担相当多的工作。因此,网格计算这种系统机制在提升系统性能和容量的同时,可以显著地降低系统的总体成本。同时,网格计算还可以帮助企业平衡系统负载,管理任务的优先级,并为分析任务提供更高的可用性。
1700432343
1700432344 使用网格计算架构,分析专家可以在保持低价与高性能的同时,提升分析系统的可扩展性。当然,网格计算并不适合所有的场景。网格计算可能并不适合同时执行很多非常紧急的任务。因为每项任务都是由一台计算机独立完成的,如果同时有许多的超大型任务,网格计算环境下低成本计算机的表现将低于一台大型服务器。但是,假如一个大型企业内有很多的任务需要执行,而且大部分任务都是中小型的,那么使用网格计算环境将带来极大的提升。
1700432345
1700432346 网格计算还有一个刚出现不久的创新,即高性能的分析架构。在这个创新架构中,网格计算环境下的不同计算机都知道其他计算机的存在,并且不同计算机可以共享信息。这种协作方式,在同一时间充分使用了网格计算环境下的所有计算资源,使得某些大型任务可以更快地完成。这解决了我们之前提到的网格计算缺陷,即网格计算环境下每台独立的计算机只能承担一定复杂度的任务。这种新的网格计算技术被越来越多的人所接受,前景一片光明。在本书的写作过程中,还出现了一种更新颖的创新技术,它让网格环境直接连接到某一个数据库系统,使网格的系统性能得到进一步的提升。SAS公司的高性能分析解决方案就是这样的一个实例。
1700432347
1700432348 建模的理念与方法一直都在发展和进步,我们将在第6章中讨论的简易建模方法也获得了越来越广泛的使用,网格计算可以成为一种处理额外建模工作负载的有效方法。
1700432349
1700432350 驾驭大数据 [:1700430572]
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
1700432365 驾驭大数据 [:1700430573]
1700432366 4.6.1 MapReduce工作原理
1700432367
1700432368 假设在某个项目中我们有20T的数据,以及20台MapReduce服务器。
1700432369
1700432370 首先,通过简单的文件复制过程将数据均匀分布到20台服务器中,每一台服务器拥有1T的数据。注意,数据分布发生在MapReduce对数据进行处理之前。还需注意的是,数据是以某种用户选择的文件格式保存,而不是关系型数据库那样的标准格式。
1700432371
1700432372 然后,程序员提交了2个程序给调度程序。第一个是映射(Map)程序,另外一个是归纳(Reduce)程序。在这两阶段的处理过程中,映射程序寻找磁盘上的数据,并执行内部的处理逻辑,其在这20台服务器上彼此独立运行,所有处理结果将交给归纳程序进行汇总处理,以获得最终的结果。图4-6说明了这个处理流程。
1700432373
1700432374
1700432375
1700432376
1700432377 图4-6 MapReduce处理过程
1700432378
1700432379 举个例子,企业网站的在线客服人员与客户交流的大量文本记录被不断地导入系统中。分析师可以创建一个映射程序来分析文本记录中的每一个词语。映射程序在文本中简单地搜索每一个词语,并将这些词语从段落中解析出来,然后标上与其相关的计数。映射程序的输出结果是词语与计数的组合,如“<我,1>,”“<产品,1>,”“<坏了,1>,”等。当每个工作节点都执行完映射程序,调度程序会得到通知。
[ 上一页 ]  [ :1.70043233e+09 ]  [ 下一页 ]