赞
踩
导读:大数据计算发展至今,已经形成了一个百花齐放的大数据生态,通用计算、定制开发,批量处理、实时计算,关系查询、图遍历以及机器学习等等,我们都可以找到各种对应的计算引擎来协助我们处理这些任务。本系列文章拟以大数据平台从低到高的层次为主线,梳理整个大数据计算生态组件及其功能。
在[大数据计算生态之数据存储]中介绍了存储层中的各个存储组件的分类及功能。有了数据之后,各个应用就可以利用这些数据进行不同维度或角度的分析,从而形成不同的数据价值产品。支撑这一过程最重要的就是计算引擎。计算层是整个大数据计算生态的核心,计算引擎为各个数据任务提供算力支持。本文将详细介绍计算层的各个计算引擎。
本文经授权转自公众号DLab数据实验室
作者 | 小舰
出品 | DLab数据实验室(ID:rucdlab)
大数据计算引擎大致可分为批处理、流处理和即席(Ad-Hoc)查询和图查询四类。批处理指的是大规模复杂的数据处理过程,通常的时间跨度在几分钟到数小时甚至数日;流处理指的是实时的数据处理和查询,通常的时间跨度在数百毫秒到数秒之间;即席(Ad-Hoc)查询指的是介于实时和批处理之间的一种查询处理,如一些交互式的数据探查任务,需要秒级或分钟级的较快的响应时间。图查询是基于图模型进行的数据查询,图查询涉及到更多的是迭代类的操作,常见的图算法如路径搜索算法、中心性算法以及社群发现算法等,这些算法在公安系统和银行金融领域中的打击犯罪团伙、金融欺诈、信用卡盗刷等领域有着重要的应用。
批处理计算
目前,在批处理领域,使用最多的计算引擎当属HadoopMR和Spark两者。HadoopMR是最早的批处理引擎,是根据Google的”三驾马车“实现的开源计算框架,主要是解决海量数据的计算问题。由于HadoopMR在处理效率上的一系列问题,Spark应运而生,Spark 针对Hadoop MR2.0存在的问题,对MapReduce做了大量优化。
1.MapReduce(Hadoop)
MapReduce就是指我们常说的Hadoop MapReduce,它是一个批处理计算引擎。每个MapReduce任务都包含两个过程:Map过程和Reduce过程。
MapReduce的计算模型:Map和Reduce两个计算过程(中间用Shuffle串联),MapReduce程序。
- - Map阶段:多台机器同时读取一个文件的各个部分,分别统计词频,产生多个Map集合;
- - Reduce阶段:接收所对应的Map集合结果,将相同键的集合汇总,进而得到整个文件的词频结果;
MapReduce的缺点是每个map阶段结束时
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。