spark大数据分析实战案列1学习 (lamda架构日志分析流水线)
日志实例格式当数据量较小(10MB,100MB,10GB)可以通过Shell Python单机解决Linux Shell命令 : cat access.log.10 |awk '{a[$1]++} END {for(b in a) print b"\t"a[b]}'| sort -k2 -r |head -n 10 日志
日志实例格式
当数据量较小(10MB,100MB,10GB)可以通过Shell Python单机解决
Linux Shell命令 : cat access.log.10 |awk '{a[$1]++} END {for(b in a) print b"\t"a[b]}
'| sort -k2 -r |head -n 10
日志分析指标:
1:PV
2:UV
3:PVUV (平均每位用户访问页面数)
4:转化率 (完成当前事件的用户中出发下一个依赖事件的用户所占的比例)
5:留存率
6:用户属性
Lamda架构
Flume flume.conf配置文件
启动Flume Agent
# cd flume的安装目录
#nohup bin/flume -ng agent -n agent1 -c conf -f conf/flume-conf.properties &
flume采集的数据收集到HDFS和Kafka上了
Kafka 创建Topic
bin/Kafka-topics.sh -create --zookeeper (zookeeperIP地址,多个用 , 隔开):2181 -partitions 1 --topic
KafkaTopic(Topic Name)
整合Kafka与SparkStreaming
KafkaUtils.createStream()源码
为了方便分析 将记录转化为PView对象
统计过去15s的访客流量,每隔2s计算一次
实时百分比统计每个用户中段访问量的页面
结果输出到Mysql
sparkSQL 离线分析
日志格式
查询条件为 select * from pages where rating >1
返回的SchemaRDD已经过时 相等于DataFrame
ETL(. . .)是指通过SparkSql过滤返回的DataFrame类型的数据
在进行实时日志分析的过程中,存在很多分类问题 贝叶斯分类是一种常见分类算法
分类算法:从数学角度做一下定义 已知类别集合C=(y1,y2 , ... ,yn) 和待分类的物体集合I=(x1,x2 , ... ,xm)
确定映射规则 y=f(x)
filteredSessions.print()
更多推荐
所有评论(0)