Kafka是一个快速、可扩展的、高吞吐、可容错的分布式发布订阅消息系统,是由Apache软件基金会开发的一个开源流处理]平台,由Scala和Java编写。
APP流行起来之后,企业就有了大量用户的行为数据,怎么有效的利用这些数据成了企业的重中之重。利用数据的第一步就是高效的采集数据,Kafka就是企业传输收集用户行为数据的常用系统。
程序员开发的算法都是部署在服务器上,要想在本地测试就得自己在本地搭建Kafka环境。通过模拟用户行为数据来营造真实环境,这样可以更方便地对代码进行调试。
mac上安装Kafka
采用mac下的安装利器homebrew,在终端输入即可,homebrew会自动安装kafka的依赖zookeeper。
使用brew安装后,kafka和zookeeper的配置文件路径如下,通常情况下我们也不需要做任何修改。
安装完之后,终端会显示启动提示消息:
使用下面两个命令快速启动zookeeper和kafka:
模拟真实环境生产Kafka消息
虽然可以在终端生产消息,但要生产真实环境下的json格式的数据确很麻烦,所以写了脚本自动模拟真实环境下的数据。
先在idea上增加mavern-kafka依赖
下面的代码创建了两个topic,每200毫秒随机产生一些用户在电商APP上的行为数据。
在终端输入以下命令,接收topic-impression的消息.
spark streaming消费消息
Spark streaming是Spark核心API的一个扩展,它对实时流式数据的处理具有可扩展性、高吞吐量、可容错性等特点。
下面的程序实现spark streaming每6秒打印一次从kafka收集到数据。
参考资料
不停游动的鱼, mac 本地安装kafka)
lusecond,mac环境下使用brew安装kafka
spark, Spark Streaming + Kafka Integration Guide (Kafka broker version 0.10.0 or higher)
wiki, kafka
Andi Ai, Spark编程指南 - 简体中文版
领取专属 10元无门槛券
私享最新 技术干货