1700432398
4.6.2 MapReduce优缺点
1700432399
1700432400
MapReduce可以在普通硬件上运行。因此,建立和运行一个MapReduce系统的成本很低,扩容也非常便宜。你只需要购买更多的机器,把它们部署在环境中,系统的能力就自然地得到了扩充,而这些很容易实现。
1700432401
1700432402
前面我们已经讨论过,某些关系型数据库做起来很费劲的事情,MapReduce能做得非常好,如文本解析、网络日志扫描,或者读取一个很大的原始数据。当一个巨大的数据集被导入系统,并且这个数据集中的大部分数据都不需要进行分析,那么MapReduce将是你的最佳选择。如果只有部分数据是非常重要的,但是我们还不清楚哪些数据会成为重要的数据,MapReduce也可以发挥作用。扫描海量的数据,并从中抽取出部分重要数据,这是MapReduce最适合做的事情。
1700432403
1700432404
从水管中啜水
1700432405
1700432406
许多大型的数据流,如网络日志,都包含了大量没有长期价值的信息。MapReduce让你可以从数据流中抽取你想要的数据,让其他没用的数据流走,这就像从水管中吸水,你只喝了一小部分,大部分水都流走了。
1700432407
1700432408
事实上,如果在数据处理的最后阶段大部分数据都要被丢弃,那么耗费大量的时间和存储空间,把全部的原始数据都加载到企业级数据仓库中是完全没有意义的。如果只在一个很短的时间内需要这些数据,那么,把这些数据加载到一些长期保留信息的地方,如数据仓库,就完全没必要。在这种情况下,最适合使用MapReduce,在进入数据库之前,把数据中的多余部分剔除掉。
1700432409
1700432410
在许多场景下,MapReduce的使用方式与ETL工具有一些相近。ETL工具读取源数据的数据集,进行一系列的格式转换与重组处理,然后把结果输出到最终的数据源中。为了支持分析,ETL工具要从生产系统中抽取数据,然后把它们输出到一个关系型数据库中,以便人们可以访问并使用这些数据。MapReduce也会对某个巨大的数据源进行处理,它用一些具有业务意义的方式进行汇总,然后把结果输出到数据库或某个分析流程中。在前面这个例子中,初始的大段文本被转换成了可被分析词语的出现次数。处理的结果可以导入数据库中,然后与已有的信息进行整合分析,从而获得额外的信息。
1700432411
1700432412
MapReduce并不是数据库,它没有内置的安全机制,没有索引,没有查询或处理过程的优化机制,没有其他已完成任务的历史信息,也不知道其他节点拥有的数据内容。MapReduce提供了一种灵活处理各类数据的方式,同时,它也有责任去准确地定义或描述每一个处理过程中产生的数据。所有的一切都或多或少需要用户进行编程,包括数据结构。每一个任务都是一个孤立的实体,它并不了解其他可能正在执行的任务。
1700432413
1700432414
MapReduce还不是非常成熟。知道如何恰当地使用和配置MapReduce的人并不多,也没有很多人懂得开发MapReduce所需要的代码程序。所以在今天,给定一些资源约束条件,打造MapReduce方向的强大优势并不容易。这种情况未来一定会发生改变,因为随着MapReduce的发展,越来越多的人会了解并掌握MapReduce。这也是本书写作时的一大考虑因素。
1700432415
1700432417
4.6.3 MapReduce小结
1700432418
1700432419
随着大数据成为企业需要应对的一大问题,MapReduce也得到了越来越多的使用,影响力也在不断增长。当处理海量数据时,由于其中大部分的数据长期来看都没有价值,MapReduce这种使用普通硬件进行并行处理的能力就变得很有吸引力。通过把大型任务分解成小型任务,MapReduce可以比其他方式更快、更便宜的完成各类数据处理的任务。
1700432420
1700432421
MapReduce不是数据库,它也不会取代数据库,但是MapReduce的确可以给企业的数据库增加巨大的价值。一旦MapReduce被部署完成,并开始从大数据流中抽取部分重要的数据,这些数据就可以被其他传统的数据库使用,并进行深入分析,也可以提供各种类型的查询和分析报表。在某些方面,MapReduce有点类似于ETL。
1700432422
1700432423
在本节的最后,让我们再来看一个简单的例子。网络日志是非常大的,包含了很多无用的信息。就像大海捞针,MapReduce可以从大数据的海洋中找到有价值的针。想象一个MapReduce的处理流程,它对网络日志进行实时扫描,并识别出需要执行的动作。例如,MapReduce可以发现哪些客户浏览了某个产品但是最终却没有购买,这些信息立刻被传递给电子邮件生成流程,企业就可以给这些客户发送后续的促销邮件。这所有的一切都发生在把原始数据导入关系型数据库并执行查询语句之前。
1700432424
1700432425
一旦这个实时扫描任务执行完了,最重要的信息就可以导入数据库了。这些信息可以和其他重要的客户历史记录关联起来,更多跨时间、跨部门的战略型分析就可以进行了。在这个例子里,被识别出来的客户名单会被导入数据库,并记录企业给他们发送过的促销邮件。企业随后可以进行跟踪分析,研究邮件营销的历史记录,就像每一次邮件营销活动中做的事情一样。
1700432426
1700432428
4.7 这不是一个单选题
1700432429
1700432430
在驾驭大数据的分析生态环境中,海量并行关系型数据库、云计算、MapReduce都可以发挥重要的作用。可以将这3项技术整合起来使用,并从大数据中获得最大的价值。有许多方式可以把这些不同的技术整合起来。
1700432431
1700432432
■ 数据库可以运行在云里。
1700432433
1700432434
■ 数据库可以内置MapReduce功能。例如,Teradata公司的Aster平台拥有一项SQL MapReduce相关的专利技术,能把MapReduce的处理过程转换为SQL查询的一部分。
1700432435
1700432436
■ 还有一种同时使用数据库和MapReduce的方法,MapReduce可以对数据库内的数据进行处理,也可以把自身的处理结果导入数据库。
1700432437
1700432438
■ MapReduce也可以直接处理云计算环境内的数据。
1700432439
1700432440
■ 更进一步,MapReduce可以对部署在云内的数据库的库内数据进行处理!
1700432441
1700432442
这3种技术可以相互影响并协同工作。每一项技术都能加强其他技术,只要被正确地使用。你完全可以同时使用这些技术,这并不是一个单选题。分析环境内可以同时包含这些不同的技术与方案,许多企业已经开始努力实现这3类技术的整合和协作了。此外,在刚才提到的各种分析场景下,还可以同时部署并配置网格计算方案。
1700432443
1700432445
4.8 本章小结
1700432446
[
上一页 ]
[ :1.700432397e+09 ]
[
下一页 ]