大数据的应用类型很多,主要的处理模式可以分为流处理模式和批处理模式两种。批处理是先存储后处理,而流处理则是直接处理。
(一)批处理模式
Google公司在2004年提出的MapReduce编程模型是最具代表性的批处理模式。
MapReduce模型首先将用户的原始数据源进行分块,然后分别交给不同的Map任务去处理。
Map任务从输入中解析出key/value对集合,然后对这些集合执行用户自行定义的Map函数以得到中间结果,并将该结果写入本地硬盘。
Reduce任务从硬盘上读取数据之后,会根据key值进行排序,将具有相同key值的数据组织在一起。最后,用户自定义的Reduce函数会作用于这些排好序的结果并输出最终结果。
MapReduce的核心设计思想有两点:
(1)将问题分而治之,把待处理的数据分成多个模块分别交给多个Map任务去并发处理。(www.xing528.com)
(2)把计算推到数据而不是把数据推到计算,从而有效地避免数据传输过程中产生的大量通信开销。
(二)流处理模式
流处理模式的基本理念是,数据的价值会随着时间的流逝而不断减少。因此,尽可能快地对最新的数据做出分析并给出结果是所有流处理模式的主要目标。
需要采用流处理模式的大数据应用场景主要有网页点击数的实时统计,传感器网络,金融中的高频交易等。
流处理模式将数据视为流,把源源不断的数据组成数据流。当新的数据到来时就立刻处理并返回所需的结果。
数据的实时处理是一个很有挑战性的工作,数据流本身具有持续到达、速度快、规模巨大等特点,因此,通常不会对所有的数据进行永久化存储,同时,由于数据环境处在不断变化之中,系统很难准确掌握整个数据的全貌。
由于响应时间的要求,流处理的过程基本在内存中完成,其处理方式更多地依赖于在内存中设计巧妙的概要数据结构。内存容量是限制流处理模式的一个主要瓶颈。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。