Scala实现网站流量实时分析
之前已经完成zookeeper集群、Hadoop集群、HBase集群、Flume、Kafka集群、Spark集群的搭建:使用Docker搭建Spark集群(用于实现网站流量实时分析模块),且离线分析模块已经在之前的模块中实现(网站日志流量分析系统之数据清洗处理(离线分析)),这次基于Docker搭建的spark集群,本地编写Scala代码实现网站日志流量实时分析模块,最终提交于spark集群。
一、本机环境
系统:win10 64位
Scala版本:2.13
JDK版本:1.8
IDE工具:IDEA2018
Maven版本:3.6.1
二、实时分析模块实现
之前已经完成zookeeper集群、Hadoop集群、HBase集群、Flume、Kafka集群、Spark集群的搭建:使用Docker搭建Spark集群(用于实现网站流量实时分析模块),且离线分析模块已经在之前的模块中实现(网站日志流量分析系统之数据清洗处理(离线分析)),这次基于Docker搭建的spark集群,本地编写Scala代码实现网站日志流量实时分析模块,最终提交于spark集群。
一、本机环境
系统:win10 64位
Scala版本:2.13
JDK版本:1.8
IDE工具:IDEA2018
Maven版本:3.6.1
二、目前状况
基于之前搭建的Spark集群:使用Docker搭建Spark集群(用于实现网站流量实时分析模块),目前集群运行环境如下:
1、hadoop0、hadoop1、hadoop2容器角色
2、spark0、spark1、spark2容器
3、测试
app应用服务器通过js采集用户信息,发送至日志服务器,日志服务器分发至flume,flume分别落地至HDFS与Kafka,Kafka目前是以console模式消费消息,并未与spark对接
flume写入kafka的同时也落地至HDFS,供以离线分析
二、实时分析模块实现
以上部分,数据已经写入kafka,只需spark消费其中数据,进行清洗,落地至Mysql即可,最终以echarts展现
代码地址:https://github.com/Simple-Coder/log-demo
1、Maven代码
2、实现效果
用户通过点击页面,JS代码采集信息,发送至日志服务器,日志服务器转而发送至Flume,Flume分别落地HDFS(离线分析)与Kafka(实时分析),SparkStreaming消费Kafka消息,对数据进行清洗,HBase用于存放中间数据,最终落地至Mysql(基于Docker容器启动)
至此、架构图内容已经全部实现,最后一步:数据可视化--------网站日志流量分析系统之数据可视化展示
三、数据可视化
Scala实现网站流量实时分析的更多相关文章
- 使用Docker搭建Spark集群(用于实现网站流量实时分析模块)
上一篇使用Docker搭建了Hadoop的完全分布式:使用Docker搭建Hadoop集群(伪分布式与完全分布式),本次记录搭建spark集群,使用两者同时来实现之前一直未完成的项目:网站日志流量分析 ...
- 网站日志实时分析工具GoAccess使用
网站日志实时分析工具GoAccess使用 系统环境CentOS release 5.5 (Final) GoAccess是一款开源的网站日志实时分析工具. GoAccess 的工作方式就是读取和解析 ...
- Linux-某电商网站流量劫持案例分析与思考
[前言] 自腾讯与京东建立了战略合作关系之后,笔者网上购物就首选京东了.某天在家里访问京东首页的时候突然吃惊地发现浏览器突然跳到了第三方网站再回到京东,心里第一个反应就是中木马了. 竟然有这样的事,一 ...
- 网站流量统计系统 phpMyVisites
phpMyVisites是一个网站流量统计系统,它能够提供非常详细的统计报告和高级图形报表.phpMyVisites不是一个Apache log分析工具,它建有自己的log.它的特点包括: 安装部署: ...
- cnzz友盟怎么安装网站统计代码监控网站流量
做网站的都知道cnzz统计,它是用来统计网站流量的,可以分析网站数据,进行更好的对网站优化,下面我教大家怎么添加统计代码 工具/原料 cnzz 方法/步骤 打开百度搜索"cnzz友盟&quo ...
- Kaggle网站流量预测任务第一名解决方案:从模型到代码详解时序预测
Kaggle网站流量预测任务第一名解决方案:从模型到代码详解时序预测 2017年12月13日 17:39:11 机器之心V 阅读数:5931 近日,Artur Suilin 等人发布了 Kaggl ...
- 教程 | Kaggle网站流量预测任务第一名解决方案:从模型到代码详解时序预测
https://mp.weixin.qq.com/s/JwRXBNmXBaQM2GK6BDRqMw 选自GitHub 作者:Artur Suilin 机器之心编译 参与:蒋思源.路雪.黄小天 近日,A ...
- 网站流量分析指标-PV/UV/PR/ip分析及区别
1.什么是pv? PV(page view),即页面浏览量,或点击量;通常是衡量一个网络新闻频道或网站甚至一条网络新闻的主要指标. 高手对pv的解释是,一个访问者在24小时(0点到24点)内到底看了你 ...
- 网站流量统计之PV和UV
转自:http://blog.csdn.NET/webdesman/article/details/4062069 如果您是一个站长,或是一个SEO,您一定对于网站统计系统不会陌生,对于SEO新手来说 ...
随机推荐
- navicat异常 - 1130-host ... is not allowed to connect to this MySql server
错误描述 用navicat连接数据库报错:1130-host ... is not allowed to connect to this MySql server如何处理 解决方案 1.连接服务器: ...
- centos7下自动备份mysql数据库
环境:centos7 .mysql5.7 第一步:创建自动备份脚本文件 mkdir backup cd backup touch backup.sh 第二步:在备份脚本文件中写入备份脚本 vim ba ...
- CI系列之配置sonar
基于GO项目 1.在jenkins新建sonar任务,设置2个变量用于接收代码分支和pipline的workspace[两个变量的作用在CI之Jenkinsfile中会讲到] A.添加构建参数 B.选 ...
- JDBC——ResultSet结果集对象
ResultSet结果集对象,封装结果.它是怎么做到封装结果的呢? 游标,类似指针索引最初指在“列名”上,要取到数据就需要让游标向下移动移动后就指向了第一行数据,然后通过一些方法把第一行的每一列都取出 ...
- ubuntu18+caffe+cuda
昨天安装caffe,因为用的是cuda10.2,遇到各种问题,最终也没有安装成功.使用cmake配置成功.生成成功.编译的时候报错. /usr/local/cuda/include/cuda_runt ...
- docker-部署zabbix4
一.安装docker环境 安装依赖 yum install -y yum-utils device-mapper-persistent-data lvm2 设置yum源 yum-config-mana ...
- Atcoder Beginner Contest 156E(隔板法,组合数学)
#define HAVE_STRUCT_TIMESPEC #include<bits/stdc++.h> using namespace std; ; ; long long fac[N] ...
- Gin_入门
1. 创建路由 1.1 Restful风格的API gin支持Restful风格的API 即Representational State Transfer的缩写.直接翻译的意思是"表现层状态 ...
- Java中的IO、NIO、File、BIO、AIO详解
java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类? Java中的流分为两种,一种是字节流,另一种是字符流,分别由四个抽象类来表示(每种流包 ...
- 当要打开PDB时为何会有Warning: PDB altered with errors.
对PDB执行 alter pluggable database pdbprod2 open; 操作后提示:Warning: PDB altered with errors. 来自AskScuti博客园 ...