SparkStreaming中的wordcount文本分词实时统计

SparkStreaming中的wordcount文本分词实时统计

Spark Streaming从数据源接收实时数据流并将数据分成若干批,然后由spark引擎进行处理,最终批量生成结果流。

终端A中

启动spark
($SPARK_HOME/sbin下操作,即spark解缩包下的sbin目录里)

注:如果你不想每次都进入这个目录去执行这个文件,那你可以选择设置临时环境或永久性环境。设置方法请看Ubuntu中设置PATH变量值

start-spark.sh

在这里插入图片描述
查看进程(输入jps查看是否有Worker和Master进程)
在这里插入图片描述
启动pyspark
($SPARK_HOME/sbin下操作,即spark解压目录下的bin中启动)

注:如果你不想每次都进入这个目录去执行这个文件,那你可以选择设置临时环境或永久性环境。设置方法请看Ubuntu中设置PATH变量值

// syan改为相应的主机名
pyspark --master spark://syan:7077

在这里插入图片描述
在pyspark控制台上导入相应的包

from pyspark import SparkContext
from pyspark.streaming import StreamingContext

在这里插入图片描述
创建SparkContext对象
注:要是这边创建报错了,可以试试sc.stop()再重新创建sc

// syan改为相应的主机名,SparkStreaming是自定义的程序名字
sc = SparkContext('spark://syan:7077','SparkStreaming')

在这里插入图片描述
生成流计算上下文,30秒计算/批处理一次

ssc = StreamingContext(sc,30)

在这里插入图片描述
绑定数据端口9999(从socker中获取数据,即获取数据)

// IP对应自己的地址,9999是监听端口
lines = ssc.socketTextStream("IP地址",9999)

在这里插入图片描述
解析单词出现的频率

counts = lines.flatMap(lambda line:line.split(" ")).map(lambda word:(word,1)).reduceByKey(lambda a,b:a+b)

在这里插入图片描述
打印输出到控制台

counts.pprint()

在这里插入图片描述
执行程序

ssc.start();ssc.awaitTermination()

在这里插入图片描述

终端B中

开另一个终端安装netcat(在没有安装netcat的前提下)
$ sudo apt-get -y install netcat-traditional

安装完成后启动netcat(在终端shell中运行)

// 这个9999是刚才设置的监听端口
nc -l -p 9999

直接回车后从键盘中随意输入数据即可(每次回车就会提交)

// 这是我随意输入的文本
we are introduced to the narrator, a pilot, and his ideas about grown-ups
Once when I was six years old I saw a magnificent picture on a book
hellow
word
spark
course

在这里插入图片描述
然后你可以每输一段回终端A中看看

输入相应的测试文本后按回车键就会将数据发送到spark应用的监听端口中,spark流每30秒执行一次计算,计算结果和日志打印如下图(转回到pyspark执行界面,即终端A)
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值