## 基于spark Streaming的实时日志统计分析项目
**需求说明**
* 当天到目前为止课程的访问量
* 当天到目前为止从搜索引擎引流过来的课程访问量
**项目环境要求**:spark、flume、kafka、hbase
**开发步骤:** \
1、使用Python脚本实时产生数据 \
见resources文件夹下的generate_log.py文件
2、使用定时调度工具每一分钟产生一批数据 \
使用linux的crontab \
从网站 www.tool.lu/crontab 学习使用 \
每一分钟执行一次的crontab表达式:*/1 * * * * <command>
command为generate.sh的全路径
3、使用Flume实时收集日志信息,输出到kafka \
采集方案resources文件夹下的streaming_project2.conf
启动flume:
```
flume-ng agent \
--name exec-memory-kafka \
--conf $FLUME_HOME/conf \
--conf-file /opt/spark_streaming_project/streaming_project2.conf \
-Dflume.root.logger=INFO,console
```
可以启动kafka消费者查看是否接受到数据:
`kafka-console-consumer.sh --zookeeper node1:2181 --topic streamingtopic`
4、使用Spark Streaming完成数据清洗和数据分析统计操作 \
从原始日志数据提取需要的字段信息,再对清洗数据进行各指标的分析统计 \
详细代码见cn.njupt.spark.ImoocStatStreamApp
5、设计hbase表,将统计结果保存到hbase中
* 功能一:统计今天到现在为止实战课程的访问量
字段:day course_id click_count
使用数据库存储统计结果
选择什么数据库存储统计结果?
关系型数据库更新统计结果,需要将之前的结果取出来,加上新的统计结果,再写回数据表
HBase:提供了一个API搞定
HBase表设计 \
创建表
`create 'imooc_course_clickcount','info'`
Rowkey设计
`day_course`
表对应实体类设计
```
case class CourseClickCount(day_course: String, click_count: Int)
```
* 功能二:统计今天到现在为止从搜索引擎引流过来的实战课程的访问量
HBase表设计
创建表 \
`create 'imooc_course_search_clickcount','info'`
Rowkey设计:根据业务需求 \
`day_search_course` 如:20171111_www.baidu.com_8
表对应实体类设计
```
case class CourseSearchClickCount(day_search_course:String, click_count:Int)
```
## 补充:
### 项目运行到服务器环境
1、编译打包
`mvn clean package -DskipTests`
报错:
```
E:\IdeaProjects\bigdata\spark_streaming_project\src\main\scala\cn\njupt\spark\dao\CourseClickCountDAO.scala:4: error: object HBaseUtils is not a member of package
cn.njupt.spark.utils
```
原因:HBaseUtils是一个java类
解决:在pom文件中,注释掉
```xml
<!--<sourceDirectory>src/main/scala</sourceDirectory>
<testSourceDirectory>src/test/scala</testSourceDirectory>-->
```
2、上传jar包执行
```
spark-submit \
--master yarn \
--class cn.njupt.spark.ImoocStatStreamApp \
/opt/spark_streaming_project/spark_streaming_project-1.0.jar \
node1:2181 test sparkstreamingtopic 1
```
报错:
原因:缺少spark-streaming-kafka-0-8_2.11依赖
解决:加--packages org.apache.spark:spark-streaming-kafka-0-8_2.11:2.2.1
注意事项:
1)--packages的使用
2)--jars的使用
没有合适的资源?快使用搜索试试~ 我知道了~
这是一个基于spark streaming实时日志流处理的简单学习项目+源代码+文档说明
共14个文件
scala:7个
xml:1个
sh:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 108 浏览量
2024-04-12
16:07:50
上传
评论
收藏 15KB ZIP 举报
温馨提示
- 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! <项目介绍> 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------
资源推荐
资源详情
资源评论
收起资源包目录
spark_streaming_project-master.zip (14个子文件)
spark_streaming_project-master
pom.xml 6KB
src
main
resources
generate_log.py 2KB
generate_log.sh 65B
streaming_project2.conf 822B
java
cn
njupt
spark
utils
HBaseUtils.java 3KB
scala
cn
njupt
spark
ImoocStatStreamApp.scala 3KB
utils
DateUtils.scala 823B
dao
CourseSearchClickCountDAO.scala 2KB
CourseClickCountDAO.scala 2KB
domain
CourseClickCount.scala 271B
CourseSearchClickCount.scala 228B
ClickLog.scala 378B
.gitignore 409B
README.md 3KB
共 14 条
- 1
资源评论
机器学习的喵
- 粉丝: 518
- 资源: 1269
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功