加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

大数据处理框架的类型、比较和选择

发布时间:2018-04-10 15:35:47 所属栏目:大数据 来源:站长网
导读:副标题#e# 前言 说起大数据处理,一切都起源于Google公司的经典论文:《MapReduce:Simplied Data Processing on Large Clusters》。在当时(2000年左右),由于网页数量急剧增加,Google公司内部平时要编写很多的程序来处理大量的原始数据:爬虫爬到的网页、

由于批处理系统在处理海量的持久数据方面表现出色,所以它通常被用来处理历史数据,很多OLAP(在线分析处理)系统的底层计算框架就是使用的批处理系统。但是由于海量数据的处理需要耗费很多时间,所以批处理系统一般不适合用于对延时要求较高的场景。

Apache Hadoop

说起大数据处理框架,永远也绕不开Hadoop。Hadoop是首个在开源社区获得极大关注的大数据处理框架,在很长一段时间内,它几乎可以作为大数据技术的代名词。在2.0版本以后,Hadoop由以下组件组成:

Hadoop分布式文件系统HDFS:HDFS是一种分布式文件系统,它具有很高的容错性,适合部署在廉价的机器集群上。HDFS能提供高吞吐量的数据访问,非常适合在大规模数据集上使用。它可以用于存储数据源,也可以存储计算的最终结果。

资源管理器YARN:YARN可以为上层应用提供统一的资源管理和调度,它可以管理服务器的资源(主要是CPU和内存),并负责调度作业的运行。在Hadoop中,它被设计用来管理MapReduce的计算服务。但现在很多其他的大数据处理框架也可以将YARN作为资源管理器,比如Spark。

MapReduce:即为Hadoop中默认的数据处理引擎,也是Google的MapReduce论文思想的开源实现。使用HDFS作为数据源,使用YARN进行资源管理。

从今天的眼光来看,MapReduce作为Hadoop默认的数据处理引擎,存在着很多的不足。比如:编程模型抽象程度较低,仅支持Map和Reduce两种操作,需要手工编写大量的代码;Map的中间结果需要写入磁盘,多个MR之间需要使用HDFS交换数据,因此不适合迭代计算(机器学习、图计算);任务的启动和调度开销较大等。随着更多高性能处理引擎的发展,目前在企业中使用MapReduce进行计算的应用已经呈下降趋势(HDFS及YARN仍然被广泛使用),但虽然如此,MapReduce作为最早的大数据处理引擎,仍然值得被我们铭记。

四、流处理系统

批处理系统好理解,那什么是流处理系统呢?小学的时候我们都做过这么一道数学题:一个水池有一个进水管和一个出水管,只打开进水管8个小时充满水,只打开出水管6个小时流光水,那么同时打开进水管和出水管,水池多长时间充满水?

好吧,这道题的答案是永远也充不满……因为出水管出水比较快嘛。流处理系统就相当于这个水池,把流进来的水(数据)进行加工,比如加盐让它变成盐水,然后再把加工过的水(数据)从出水管放出去。这样,数据就像水流一样永不停止,而且在水池中就被处理过了。所以,这种处理永不停止的接入数据的系统就叫做流处理系统。

流处理系统与批处理系统所处理的数据不同之处在于,流处理系统并不对已经存在的数据集进行操作,而是对从外部系统接入的的数据进行处理。流处理系统可以分为两种:

逐项处理: 每次处理一条数据,是真正意义上的流处理。

微批处理: 这种处理方式把一小段时间内的数据当作一个微批次,对这个微批次内的数据进行处理。

不论是哪种处理方式,其实时性都要远远好于批处理系统。因此,流处理系统非常适合应用于对实时性要求较高的场景,比如日志分析,设备监控、网站实时流量变化等等。由于很多情况下,我们想要尽快看到计算结果,所以近些年流处理系统的应用越来越广泛。下面我们来了解两种流处理系统。

Apache Storm

Apache Storm是一种侧重于低延迟的流处理框架,它可以处理海量的接入数据,以近实时方式处理数据。Storm延时可以达到亚秒级。Storm含有如下关键概念:

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读