Web应用、网络监控、传感监测、电信金融、生产制造等领域,对数据实时处理的需求不断增强,而Spark中的SparkStreaming实时计算框架就是为了实现对数据实时处理的需求而设计的。在电子商务中,淘宝、京东等网站从用户点击的行为(如加入购物车)和浏览的历史记录中发现用户的购买意图和兴趣,然后通过Sparkstreaming实时计算框架分析处理,为之推荐相关商品,从而有效地提高商品的销售量,同时也增加了用户的满意度,可谓是“一举两得”。
那么什么是大数据实时计算?
传统的数据处理流程(离线计算),先收集数据,然后将数据存储到数据库中。当需要某些数据时,通过对数据库中的数据做操作得到所需要的数据,再进行其他相关的处理。这样的处理流程会造成结果数据密集,结果数据密集则数据反馈不及时。在实时搜索的应用场景中,需要实时数据做决策,而传统的数据处理并不能很好地解决问题,这就引出了一种新的数据计算实时计算,针对海量数据进行实时计算,无论是在数据采集还是数据处理中都可以达到秒级别的处理要求。
常用的大数据实计算框架:
目前业内已经衍生出许多实时计算数据的框架,如 Apache Spark Streaming、ApacheStorn、Apache Flink以及 Yahoo! S4。
一、Apache Spark Streaming
Apache Spark Streaming即Apache公司免费、开源的实时计算框架。它主要是把输入的数据按时间进行切分,并对切分的数据块进行并行计算处理,处理的速度可以达到秒级别。Netflix公司通过Kaka和SparkStreaming构建了实时引擎,对每天从各种数据源接收到的数十亿数据进行分析,从而完成电影的推荐功能。
二、Apache Storm
Apache Storm即Twitter公司免费、开源贡献给Apache的一个分布式实时计算系统。它可以简单、高效、可靠地实时处理海量数据,处理数据的速度达到毫秒级别,并可将处理后的结果数据保存到持久化介质中(如数据库、HDFS)。阿里巴巴公司的Jstorm,就是参考ApacheStorn开发的实时计算框架,可以说是Stom的增强版本,在网络IO、线程模型、资源调度、可用性及稳定性上都做了极大的改进供很多企业使用。
三、Apache Flink
Apache Flink即Apache公司开源的计算框架。它不仅可以支持离线处理,还可以支持实时处理。由于离线处理和实时处理所提供的SLA(服务等级协议)是完全不相同的,所以离线处理一般需要支持低延迟的保证,而实时处理则需要支持高吞吐、高效率的处理。
四、Yahoo! S4(Simple Scalable Streaming System)
Yahoo! S4即Yahoo公司开源的实时计算平台,通用的、分布式的、可扩展的,并且还具有容错和可插拔能力,供开发者轻松地处理源源不断产生的数据。大数据框架