我们在上一篇文章中给大家介绍了批处理系统以及迭代计算系统。这两种方法都是比较抽象的,我们在这篇文章中给大家介绍一种Facebook经常使用的流式计算系统,希望这篇文章能够给大家带来帮助。
流式计算系统就是因为流式计算具有很强的实时性,需要对应用源源不断产生的数据实时进行处理,使数据不积压、不丢失,常用于处理电信、电力等行业应用以及互联网行业的访问日志等。在Facebook 的 Scribe、 Apache的 Flume、 Twitter的 Storm、 Yahoo的S4、UCBerkeley的Spark Streaming是常用的流式计算系统。下面我们分别说说scribe、flume、Storm、S4以及Spark Streaming。
首先说说Flume。Flume其功能与Scribe相似,主要用于实时收集在海量节点上产生的日志信息,存储到类似于HDFS的网络文件系统中,并根据用户的需求进行相应的数据分析。而Scribe用于从海量服务器实时收集日志信息, 对日志信息进行实时的统计分析处理,应用在Facebook内部。Storm是基于拓扑的分布式流数据实时计算系统,现已经开放源代码,并应用于淘宝、百度、支付宝、Groupon、Facebook等平台,是主要的流数据计算平台之一。而S4:全称是Simple Scalable Streaming System,是由Yahoo开发的通用、分布式、可扩展、部分容错、具备可插拔功能的平台,s4其设计目的是根据用户的搜索内容计算得到相应的推荐广告,现已经开源,是重要的大数据计算平台。最后说一下Spark Streaming,这是构建在Spark上的流数据处理框架,将流式计算分解成一系列短小的批处理任务进行处理。
网站流量统计是Spark Streaming的一种典型的使用场景,这种应用既需要具有实时性,还需要进行聚合、去重、连接等统计计算操作。如果使用Hadoop MapReduce框架,则可以很容易地实现统计需求,但无法保证实时性;如果使用Storm这种流式框架则可以保证实时性,但实现难度较大。Spark Streaming可以以准实时的方式方便地实现复杂的统计需求。这句需要我们掌握好这些内容。
我们在这篇文章中给大家介绍了流式计算系统的内容,具体内容就是scribe、flume、Storm、S4以及Spark Streaming。这些内容都在全球的大公司中都有应用,由此可见这些方法还是比较实用的,大家要好好学习起来,利用好这些资源。