天天看点

Spark Streaming 实现数据实时统计案例

Spark 是一个基于内存式的分布式计算框架。具有高性能,高效可扩展,容错等优点。

今天讲解一下spark的流计算,其实它也不完全是实时的流计算,算是一种准实时的流计算。

上图讲解

<a href="https://s3.51cto.com/wyfs02/M00/9D/8A/wKioL1mBkdWgOSwnAALuUoHNwWU764.png-wh_500x0-wm_3-wmp_4-s_2048984090.png" target="_blank"></a>

运行环境:需要linux环境下的spark环境

本例用的centOS 6.5x64 因为需要使用TCP协议传输数据,所以需要安装一个nc插件。

安装方式: yum  install ncxxx 或者挂载光盘安装

安装后启动nc -lk 9999 端口可以随便指定,最好是1024以上的就可以。

下面贴出代码

java版本的

程序测试: 从linux端的nc 下输入任意字符串,spark streaming会实时对输入的数据做出统计。类似于wordcount. 除非手动kill这个进程,否则会一直运行下去。因为它的原理就是和自来水的水流一样,是一连串的数据流。

运行结果展示:

<a href="https://s5.51cto.com/wyfs02/M00/9D/8A/wKiom1mBk-LCML2DAACguUayFE4171.png-wh_500x0-wm_3-wmp_4-s_2452299115.png" target="_blank"></a>

也可以用scala写出同样的程序,代码量更少。

需要深入理解spark streaming的架构原理。

本文转自  ChinaUnicom110  51CTO博客,原文链接:http://blog.51cto.com/xingyue2011/1953031