Spark Streaming保存计算状态

⚠申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计3829字,阅读大概需要10分钟
🌈更多学习内容, 欢迎👏关注👀【文末】我的个人微信公众号:不懂开发的程序猿
⏰个人网站:https://jerry-jy.co/

❗❗❗知识付费,🈲止白嫖,有需要请后台私信或【文末】个人微信公众号联系我

一、实验目的

掌握 DStream数据累加函数updateStateByKey。
  掌握 DStream数据累加函数mapWithState。

二、实验内容

1、每5秒钟计算一次每个单词出现的累加数量。(使用Socket数据源)

三、实验原理

在DStream中支持跨批次数据执行计算时保持任意状态。在Spark第一代流处理(Spark Streaming)中,这需要手工实现。

四、实验环境

硬件:x86_64 ubuntu 16.04服务器
  软件:JDK 1.8,Spark-2.3.2,Hadoop-2.7.3

五、实验步骤

5.1 启动Spark集群

1、在终端窗口下,输入如下命令,启动Spark集群:

1.	$ start-dfs.sh
2.	$ cd /opt/spark
3.	$ ./sbin/start-all.sh

2、启动spark-shell。在终端窗口下,输入如下命令(注意:以下命令中的localhost,请换成你自己虚拟机实际的机器名):

1.	$ spark-shell --master spark://localhost:7077

3、另打开一个终端窗口,键入以下命令,启动Socket服务器:

1.	$ nc -lp 9999

5.2 使用updateStateByKey函数,每5秒钟计算一次每个单词出现的累加数量

1、updateStateByKey 解释:
  以DStream中的数据进行按key做reduce操作,然后对各个批次的数据进行累加。在有新的数据信息进入或更新时。能够让用户保持想要的不论什么状。使用这个函数需要两步:
  1) 定义状态:可以是随意数据类型;
  2) 定义状态更新函数:用一个函数指定怎样使用先前的状态。从输入流中的新值更新状态。
  下面的实验代码使用updateStateByKey(newUpdateFunc)函数计算每5秒钟单词出现的累加数量。
  请在spark-shell的paste模式下,输入以下代码:</

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不懂开发的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值