sparkStremingx项目实战(python定时日志生成器+flume+kafka+ spark+ hbase+ springBoot)

数据清洗一定是对Log4j熟悉操作

用户行为访问日志:1.网站页面的访问量

                             2.网站的粘性

                             3.推荐

用户行为日志分析的意义:眼睛, 神经

通过定时调度工具每一分种产生的一批数据

网站+ Linux croutab 

项目实战:构建定时日志产生器----对接--》flume 构建conf*2----》zk   -kafka

flume与kafka通道测试:kafka-customer对于的topic测试

                                   flume对应流向的kafka  broker list 日志是否更新

 kafka 与sparkStreaming 通道测试: 构建sparkStreaming消息处理类,运行查看控制台的输出

                                                        实质 是flume与sparkStreaming间测试(保证flume与kafka的互通性)

数据清洗操作:构建日期处理类

功能1: 今天到现在为止 实战课程的访问量

 条件参数分析: yyyyMMdd     courseId       count

数据存储:关系型数据库, 非关系型数据库、

关系型算法原理: 20171111 +1 ===>click count +下一批次统计结果

Hbase: 一个API就能搞定, 非常方便

             Hbase表设计     RowKey 设计(核心)

                                        day_courseId

如何使用scala (spark)操作Hbase? 

步骤一:dao层设计和实现

创建CourseClickCount (bean) name,value 

       CourseClickCountDao  数据访问层,构建常见方法

测试habase每个方法的连通性,测试是否可以正常实现数据的操作


步骤二:dao层结合spark业务实现层

实现清洗后的日志到hbase中(通过sparkStreaming处理)


清洗算法设计: 从搜索引擎来的课程的访问量,对于网络地址的处理

https://www.sogou.com/web?query=sparkSql 

 思路总结: 

   如果现在要以“/”来分离,name对于"//",如何来处理

   常见思路: split("//"),再结合成一个新的数组或者集合-->split("/")

   新思路:先替换再split      replaceAll("//","/") -->split("/")

  filter(_._1)代表第2个元素,其中"_"类似于this 

  filter的使用是一种排除思想

  map(x=>(_,1))这里的"_"代表传入进来的"x",   =>()可以理解为转成了一个新的对象,

所以每次一定要清楚传入来的x 是什么,否则无法进行正确的处理




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值