第99课:使用Spark Streaming+Kafka实战对论坛网站动态行为的多维度分析及java.lang.NoClassDefFoundError问题解决完整内幕版本解密
来源:互联网 发布:华道数据有限公司 编辑:程序博客网 时间:2024/06/14 10:16
第99课:使用Spark Streaming 实战对论坛网站动态行为的多维度分析
/* 王家林老师授课http://weibo.com/ilovepains 每天晚上20:00YY频道现场授课频道68917580*/
/**
* *第99课:使用Spark Streaming 实战对论坛网站动态行为的多维度分析
* 论坛数据自动生成代码,该生成的数据会作为Producer的方式发送给Kafka,然后SparkStreaming程序会从
* Kafka中在线Pull到论坛或者网站的用户在线行为信息,进而进行多维度的在线分析
* 数据格式如下:
* date:日期,格式为yyyy-MM-dd
* timestamp:时间戳
* userID:用户ID
* pageID:页面ID
* chanelID:板块的ID
* action:点击和注册 */
生成的用户点击模拟数据如下:
生成模拟数据关键步骤:
启用一个线程,模拟producer生成 的用户点击行为的数据,发送给kakfa
二:我们计算在线不同模块的PV
三:启动hadoop、spark、zookeeper、kafka集群
1.启动hadoop
2.启动spark 集群
3.启动zookeeper
4.将 SparkStreamingDataManuallyProducerForKafka达成jar包文件,使用winscp从本地传到虚拟机
5.启动kafka集群
6.在linux上运行,运行SparkStreamingDataManuallyProducerForKafka的jar包,将生成的数据加载到kafka集群,测试验证kafka上生产者消费者的情况
第一步:kafka建立 topic
kafka-topics.sh --create --zookeeper master:2181,worker1:2181,worker2:2181 --replication-factor 1 --partitions 1 --topic UserLogs
kafka查看 topic
kafka-topics.sh --describe --zookeeper master:2181,worker1:2181,worker2:2181
第二步:运行SparkStreamingDataManuallyProducerForKafka,java.lang.NoClassDefFoundError的解决办法
在linux上运行,运行SparkStreamingDataManuallyProducerForKafka的jar包
当用java -jar SparkStreamingDataManuallyProducerForKafka.jar来运行一个应用程序时,会找不到第三方的jar包。 当使用-jar参数运行时,JVM会屏蔽所有的外部classpath,而只以内部的class作为类的寻找范围。
解决方法:BootStrap class扩展方案
7.kafka消费 topic
在master生产数据:
root@master:/usr/local/IMF_testdata# java -Xbootclasspath/a:/usr/local/kafka_2.10-0.8.2.1/libs/kafka_2.10-0.8.2.1.jar:/usrocal/scala-2.10.4/lib/scala-library.jar:/usr/local/kafka_2.10-0.8.2.1/libs/log4j-1.2.16.jar:/usr/local/kafka_2.10-0.8.2.1/libs/metrics-core-2.2.0.jar:/usr/local/spark-1.6.1-bin-hadoop2.6/lib/spark-streaming_2.10-1.6.1.jar:/usr/local/kafka_2.10-0.8.2.1/libs/kafka-clients-0.8.2.1.jar:/usr/local/kafka_2.10-0.8.2.1/libs/slf4j-log4j12-1.6.1.jar:/usr/local/kafka_2.10-0.8.2.1/libs/slf4j-api-1.7.6.jar -jar SparkStreamingDataManuallyProducerForKafka.jar
在work1上启动消费
root@worker1:~# kafka-console-consumer.sh --zookeeper master:2181,worker1:2181,worker2:2181 --from-beginning --topic UserLogs
8.将OnlineBBSUserLogs达成jar包文件,使用winscp从本地传到虚拟机
9. 为避免敲入命令写错了,写个脚本来执行数据的产生
root@master:/usr/local/IMF_testdata# cat ProducerForKafka.sh
java -Xbootclasspath/a:/usr/local/kafka_2.10-0.8.2.1/libs/kafka_2.10-0.8.2.1.jar:/usr/local/scala-2.10.4/lib/scala-library.jar:/usr/local/kafka_2.10-0.8.2.1/libs/log4j-1.2.16.jar:/usr/local/kafka_2.10-0.8.2.1/libs/metrics-core-2.2.0.jar:/usr/local/spark-1.6.1-bin-hadoop2.6/lib/spark-streaming_2.10-1.6.1.jar:/usr/local/kafka_2.10-0.8.2.1/libs/kafka-clients-0.8.2.1.jar:/usr/local/kafka_2.10-0.8.2.1/libs/slf4j-log4j12-1.6.1.jar:/usr/local/kafka_2.10-0.8.2.1/libs/slf4j-api-1.7.6.jar -jar /usr/local/IMF_testdata/SparkStreamingDataManuallyProducerForKafka.jar
root@master:/usr/local/IMF_testdata#
10.OnlineBBSUserLogs成功消费数据,并统计出数值,实验成功
附:
OnlineBBSUserLogs的源代码
知识点:
1、创建kafka的createDirectStream,返回JavaPairInputDStream类型的line值
org.apache.spark.streaming.kafka.createDirectStream 源代码
2、读取kafka的数据流的值以后,进行相关mapToPair、reduceByKey的操作
mapToPair-reduceByKey-PairFunction-Function2的源代码
附录生成模拟数据的源代码:
王家林老师 :DT大数据梦工厂创始人和首席专家。
联系邮箱:18610086859@126.com 电话:18610086859 QQ:1740415547
微信号:18610086859 微博:http://weibo.com/ilovepains/
每天晚上20:00YY频道现场授课频道68917580
IMF Spark源代码版本定制班学员 :
上海-段智华 QQ:1036179833 mail:duanzhihua@189.cn 微信 18918561505
- 第99课:使用Spark Streaming+Kafka实战对论坛网站动态行为的多维度分析及java.lang.NoClassDefFoundError问题解决完整内幕版本解密
- 第98课: 使用Spark Streaming实战对论坛网站动态行为的多维度分析(上)
- 第98讲 使用Spark Streaming实战对论坛网站动态行为的多维度分析(上)
- 大数据IMF传奇行动绝密课程第98-99课:使用Spark Streaming实战对论坛网站动态行为的多维度分析
- 第99讲:使用sparkStreaming实战对论坛网站动态行为的多维度分析下
- 使用Spark Streaming实战对网站动态行为的多维度分析
- Spark Streaming实战对论坛网站动态行为pv,uv,注册人数,跳出率的多维度分析
- 第91课:SparkStreaming基于Kafka Direct案例实战和内幕源码解密 java.lang.ClassNotFoundException 踩坑解决问题详细内幕版本
- 第39课:spark streaming中direct kafka 内幕实现彻底解密
- IMF传奇行动第85课:Spark Streaming第四课:基于HDFS的Spark Streaming案例实战和内幕源码解密
- 第93课:Spark Streaming updateStateByKey案例实战和内幕源码解密
- 第42课:Spark Streaming中checkpoint内幕实现彻底解密(源代码提问:checkpoint源代码修改,适用场景:spark的版本升级,数据恢复。。)
- 39:Spark Streaming中Direct Kafka内幕实现彻底解密
- Spark定制班第1课:通过案例对Spark Streaming透彻理解三板斧之一:解密Spark Streaming另类实验及Spark Streaming本质解析
- Spark定制班第1课:通过案例对Spark Streaming透彻理解三板斧之一:解密Spark Streaming另类实验及Spark Streaming本质解析
- 第97课: 使用Spark Streaming+Spark SQL+mysql 实现在线动态计算出特定时间窗口下的不同种类商品中的热门商品排名(详细内幕版本)
- Spark Streaming updateStateByKey案例实战和内幕源码解密
- Spark定制班第16课:Spark Streaming源码解读之数据清理内幕彻底解密
- Linux硬链接与软连接
- 批处理导出完整路径以及文件名
- 设计模式--简单工厂应用 java
- Linux设备驱动(2)字符设备
- 最近心境
- 第99课:使用Spark Streaming+Kafka实战对论坛网站动态行为的多维度分析及java.lang.NoClassDefFoundError问题解决完整内幕版本解密
- Kafka设计解析(一)- Kafka背景及架构介绍
- idea新手学习系列之创建maven web项目
- 对照Java学习Swift--自动引用计数(Automatic Reference Counting)
- kmeans理解
- Kafka设计解析(二)- Kafka High Availability (上)
- GDOI2016
- MyBatis源码分析
- Android利用Fragment实现新闻客户端界面切换(addBackStack,popBackStack)