第103课:动手实战联合使用Spark Streaming、Broadcast、Accumulator实现在线黑名单过滤和计数

来源:互联网 发布:汽车找不到导航软件 编辑:程序博客网 时间:2024/05/27 10:43

第103课:动手实战联合使用Spark Streaming、Broadcast、Accumulator实现在线黑名单过滤和计数

/* 王家林老师授课http://weibo.com/ilovepains  每天晚上20:00YY频道现场授课频道68917580*/

Spark Streaming实时流处理,对于nc 输入的数据流进行黑名单过滤,并对黑名单输入的次数进行计数。


我们使用广播变量定义黑名单,使用Broadcast广播黑名单到每个Executor中

broadcastList = jsc.sparkContext().broadcast(Arrays.asList("Hadoop","Mahout","Hive"));


全局计数器,用于通知在线过滤了多少各黑名单

accumulator = jsc.sparkContext().accumulator(0, "OnlineBlacklistCounter");


实验步骤:

1、之前好用的的Tcpudp工具报错了,折腾这个浪费了一点时间



2、重新下载一个windows的nc.exe,java代码中使用hostname pc

在windows cmd命令行中使用nc -l -p 9999 -v,解决了socket 测试数据输入的问题



3、java代码运行,进行黑名单统计计数,结果如下:





























源代码如下:

定义了2个receive,分别接收9999、8888两个端口的数据,9999端口统计黑名单,8888的端口不用做什么。




0 0
原创粉丝点击