前言
本文利用SparkStreaming+Kafka实现实时的统计uv,即独立访客,一个用户一天内访问多次算一次,这个看起来要对用户去重,其实只要按照WordCount的思路,最后输出key的数量即可,所以可以利用SparkStreaming+Kafka 实现基于缓存的实时wordcount程序,这里稍加改动,如果uv数量增加的话就打印uv的数量(key的数量)。
1、数据
数据是我随机在kafka里生产的几条,用户以空格区分开(因为用的之前单词统计的程序)
2、kafka topic
首先在kafka建一个程序用到topic:KafkaUV1
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic KafkaUV
3、创建checkpoint的hdfs目录
我的目录为:/spark/dkl/kafka/UV_checkpoint1
hadoop fs -mkdir -p /spark/dkl/kafka/UV_checkpoint