首页 理论教育 流数据挖掘-基于云计算的大数据处理技术发展与应用

流数据挖掘-基于云计算的大数据处理技术发展与应用

时间:2023-10-17 理论教育 版权反馈
【摘要】:流数据处理平台主要是针对需要接受大量的、不间断的数据,并可以迅速完成数据处理并响应的系统。当前最为流行的流数据处理平台有:Storm、S4和Spark Streaming。Spark Streaming是Spark的子项目,是设计用来应对实时数据流的数据处理场景。Spark Streaming是在Spark的基础上进一步开发的流式处理框架,其将流式计算任务离散化成一系列短小的Dstream数据窗口,DStream上提供了类似RDD的函数式操作接口,并且保证每个窗口的exactly-once事件语义,能从HDFS、Flume、Twitter和ZeroMQ等平台中读取流数据。

流数据挖掘-基于云计算的大数据处理技术发展与应用

数据处理平台主要是针对需要接受大量的、不间断的数据(称为流式数据),并可以迅速完成数据处理并响应的系统。当前最为流行的流数据处理平台有:Storm、S4和Spark Streaming。

Storm最初是由BackType开发的实时处理系统,后来被Twitter收购作为Twitter的消息系统,用来处理高度动态的实时信息,于200X开源后,提交至Apache软件基金会,成为Apache的孵化项目,现最新版本为2013年发布的0.9.0。1.它主要用来处理实时数据分析、在线机器学习、连续计算等场景,目前已被Twitter,Yahoo!,Alibaba等大公司使用。S4是由Yahoo!于2010年首次发布,在2011成为Apache的孵化项目,目前最新为2012年发布的0.6.0版本。S4作为一个通用分布式流处理引擎,开发者可以在之上方便地开发不间断的流处理应用,最初在Yahoo!的实时广告系统平台中处理用户反馈。Spark Streaming是Spark的子项目,是设计用来应对实时数据流的数据处理场景。在Spark Streaming中,数据流被抽象成Discretized Streams,再在其上提供了高层的函数式API接口,保持了充分的一致性和错误冗余功能。

这三者都是当前流行的分布式流处理平台,运行于之上,工作机制与类似,都将部件分成两种:控制节点(Master Node)和工作节点(Worker Node),都是由客户端向提交,由分配工作给各个并监控运行状态。而与Hadoop关键不同的是,MapReduce Job在执行完成会结束,而流计算平台中的将会一直运行。

Storm提供了简单的编程模型,定义Stream是被处理的数据,Sprout是数据源,Blot处理数据。Task是运行于Spout或Bolt中的线程,而Worker是运行这些线程的进程,Stream Grouping则规定了接收输入数据的规范。Storm可支持各种编程语言,其数据流程上采用了pull模型,每个bolt从事件来源(可以是spout或bolt来接取数据,这可以免于数据的丢失,有可靠的消息处理机制。而在架构上,Storm依赖Zookeeper、ZeroMQ等组件工作,具有很好的容错能力和水平扩展能力,所提供的“本地”模式也能方便地进行快速开发和单元测试。(www.xing528.com)

S4则提供了更为简便的Actor编程范式,只需要为执行单元(Processing Elements,PEs)编写简单的逻辑,框架会自动在流上运行这样的PEs,这如同MapReduce程序一样。但S4并不保证消息的发送,所采用的push模型,当发送到PEs的事件填满了其接收缓冲区时,事件将会被丢弃。为提高容错性,S4提供了很强的状态恢复机制,这对于大多数机器学习程序来说非常重要。但相比于S4,Strom的社区更加活跃和成熟,性能更好,最小延迟能达到100ms左右。

Spark在内部将数据抽象为RDD(Resilent Distributed Dataset),提供函数式的编程范型接口,支持分布式的函数式编程算子,如map、flatMap、join、reduce(有别于mapreduce)等,充分发挥多节点的计算性能,使得Spark可以替代MapReduce进行批处理任务。Spark利用基于内存计算的特点,通过Scala语言特性实现的Lineage Graph抽象,简化了容错机制,特别适合迭代式和交互式数据处理。Spark Streaming是在Spark的基础上进一步开发的流式处理框架,其将流式计算任务离散化成一系列短小的Dstream(Discretized Stream)数据窗口,DStream上提供了类似RDD的函数式操作接口,并且保证每个窗口的exactly-once事件语义,能从HDFS、Flume、Twitter和ZeroMQ等平台中读取流数据。当前最新版本的最小窗口选择在0.5~2秒钟之间,这已经能够满足大多数(如实时推荐、广告系统等)的准实时计算场景。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈