前言
本文利用SparkStreaming和Kafka实现基于缓存的实时wordcount程序,什么意思呢,因为一般的SparkStreaming的wordcount程序比如官网上的,只能统计最新时间间隔内的每个单词的数量,而不能将历史的累加起来,本文是看了教程之后,自己实现了一下kafka的程序,记录在这里。其实没什么难度,只是用了一个updateStateByKey算子就能实现,因为第一次用这个算子,所以正好学习一下。
1、数据
数据是我随机在kafka里生产的几条,单词以空格区分开
2、kafka topic
首先在kafka建一个程序用到topic:UpdateStateBykeyWordCount1
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic UpdateStateBykeyWordCount
3、创建checkpoint的hdfs目录
我的目录为:/spark/dkl/kafka/wordcount_checkpoint1
hadoop fs -mkdir -p /spark/dkl/kafka/wordcount_checkpoint