自己实践成功后的代码放在以下百度网盘账号下:
链接:https://pan.baidu.com/share/init?surl=WD1Kjfw5GOpdmQIk3KnyaA
提取码:4g8c
这个项目主题思路是:
手机客户端会收集用户的行为事件(我们以点击事件为例),将数据发送到数据服务器,
我们假设这里直接进入到Kafka消息队列
后端的实时服务会从Kafka消费数据,将数据读出来并进行实时分析,
这里选择Spark Streaming,因为Spark Streaming提供了与Kafka整合的内置支持
经过Spark Streaming实时计算程序分析,将结果写入Redis,
可以实时获取用户的行为数据,并可以导出进行离线综合统计分析
需要用到的工具:
安装zookeer:
http://blog.csdn.net/w3045872817/article/category/7231592
安装redis:
http://blog.csdn.net/w3045872817/article/details/78728946
安装kafka:
http://blog.csdn.net/w3045872817/article/category/7231591
安装spark:
http://blog.csdn.net/w3045872817/article/details/78289805
redis客户端管理工具:
https://redisdesktop.com/
kafka客户端管理工具:
http://www.kafkatool.com/download.html
项目的github路径:https://github.com/Ericjeff/kafka-sparkStreaming-redis
原文地址:https://blog.csdn.net/w3045872817/article/details/78729085
扩展:上面的Spark Streaming的分析代码,是在本地执行的( .setMaster("local[*]"))。如何将代码部署到Spark 集群中作为一个Application执行呢?
(1) val conf = new SparkConf().setAppName("UserClikAnalysis")
//在spark集群上跑的时候注释掉!!!!
// .setMaster("local[*]")
(2)把pom.xml中依赖的jar都打进Export的jar包中。在pom.xml中加入
maven-assembly-plugin
package
single
jar-with-dependencies
加入以上代码后,在项目上右键=》export =》jar,
(3)spark上执行jar包命令:./bin/spark-submit --class com.imooc.streaming.UserClikAnalysis --master spark://master:7077 --deploy-mode cluster --supervise --executor-memory 1G --total-executor-cores 1 /usr/local/spark-2.1.2//myjars/kafka_sparkStreaming_redis-1.0-SNAPSHOT-jar-with-dependencies.jar 100